1.首先来说,须要实现nginx免证书代理,必需要启用stream模块。steam模块只有在nginx1.9.0版本以后才支持。stream模块用来实现四层协议的转发、代理或者负载均衡等nginx
2.编辑nginx.cnf文件,在文件最后加入stream模块的配置,而且能够经过监听不通端口代理转发不一样的服务器或域名。服务器
stream模块用法和http模块差很少,关键的是语法几乎一致。负载均衡
例如:ide
stream{
server {
listen 0.0.0.0:443;
proxy_connect_timeout 20s;
proxy_timeout 6m;
proxy_pass sdk.xylink.com:443;
代理
}
server {
listen 0.0.0.0:8443;
proxy_connect_timeout 20s;
proxy_timeout 6m;
proxy_pass sina.cn:443;
server
}
server {
listen 0.0.0.0:9443;
proxy_connect_timeout 20s;
proxy_timeout 6m;
proxy_pass qq.com:443;
ip
}
}
域名
3.还须要说明的是,若是此时客户端经过访问nginx的IP去访问被代理的https服务器,是会出现证书不受信任的提示。解决办法就是在客户端的hosts文件上增长nginx _ip 被访问的域名(主机名)的解析,而且客户端采起的是域名访问的方式,而不是输入nginx代理的方式。由于实际上SSL证书与域名有强绑定的关系。it