月度归档:2015年07月

Apache反向代理。

作用,意义,Nginx反向代理配置 见 https://www.sgfblog.com/archives/363

1、将以下2行中的注释去掉

#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_http_module modules/mod_proxy_http.so

2、配置内容

<VirtualHost *:80>    
       ServerName test.sgfblog.com
       ProxyRequests Off  
  <Proxy *>  
       Order deny,allow  
       Allow from all  
   </Proxy>  
       ProxyPass / http://127.0.0.1:8080/ 
       ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>  

使用Nginx反向代理,多进程共享80端口

如果你需要不同的进程使用80端口(nginx与iis共同使用80)怎么办?
如果不想在你本地调试微信平台(微信非API要80端口,但是电信把80禁用了)怎么办?
如果你需要做均衡负载 怎么做?

名词解释:反向代理
总之就是你请求这个服务器,它负责帮你去请求别的服务器,把返回的结果再返回给你,在中间当传话筒。

nginx配置:

server { 
listen       80; 
#nginx绑定的的访问域名
server_name  test.sgfblog.com;   /
location / { 
#实际请求的地址
 proxy_pass http://sungfeng21.vicp.net:8088; 
 proxy_set_header   Host    host; 
 proxy_set_header   X-Real-IPremote_addr; 
 proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
 }
} 

利用这个原理,同样都是80端口,可以把指定的站点转发到别的服务(端口)上,你的IIS换个别的端口对内网访问就OK啦~

php使用google authenticator动态密码认证

IMG_3028未命名-2

 

1、google authenticator和我们要干嘛?
不多说,总之就是一个开放给大家使用的第三方动态密码校验软件。原来  根据二维码或者自定义输入一串密钥,authenticator就会根据当前的时间戳和这个密钥算出一个动态密码,每30秒变化一次。这个计算是本地进行的,不需要依赖网络,算法也是公开的,所以你的后端也可以算一次 做校验。

2、代码:

以下用到的Token 和 qrcode2个类,下文章底部附件可以下载到。
校验动态密码。

<?php 

include "Token.php"; 
//key 是需要保存下来的密钥,每次需要基于这个进行认证
//token 是需要校验的6位动态密码
//ALLOW_MFA_TIME 是允许用户手机时间和服务器时间的前后时间差,因为这个动态密码是基于时间生成的。时间差的原来其实很简单, 帮你生成前后这个时间的所有token 跟你输入的有一个是一样的 就算OK。


tr = Token::verify_key(key, token, ALLOW_MFA_TIME , Token::get_timestamp() );
 
 if(tr!==true)
 {
 echo "ok";
 }
else
{
 echo "failed";
}

生成密钥和二维码

1、密钥不要自己随便去生成几个字符,不是所有字符都能用的Token中有写好的静态方法可以生成

2、二维码的生成方式很多,可以依赖第3方的或者自己生成,甚至引入一张外部图片参数中传入内容也成。   二维码的内容在以下代码注释中介绍吧:

继续阅读