柯林wap建站,培训机构网站源码,怎么用ftp修改网站,做五金的有哪些外贸网站问题背景
因为网络环境受限#xff0c;应用服务器无法直接访问外网#xff0c;需要前置机上中转一下#xff0c;这种情况可在应用服务器修改/etc/hosts文件指向前置机#xff0c;在前置机上的nginx设置四层代理#xff0c;从而出站。
方案
根据How to Use NGINX as an …问题背景
因为网络环境受限应用服务器无法直接访问外网需要前置机上中转一下这种情况可在应用服务器修改/etc/hosts文件指向前置机在前置机上的nginx设置四层代理从而出站。
方案
根据How to Use NGINX as an HTTPS Forward Proxy Servernginx支持正向代理https有L7应用层使用http connect和L4传输层两种方式L7和L4对客户端是有感知的L7代理需要显式设置客户端的代理L4要修改DNS解析(linux上/etc/hosts文件)因为我的nginx支持L4代理使用nginx -V查看加载的模块,加载了以下几个模块即可
–with-stream–with-stream_ssl_module–with-stream_ssl_preread_module
博客中的写法
stream {resolver 114.114.114.114;server {listen 443;ssl_preread on;proxy_connect_timeout 5s;proxy_pass $ssl_preread_server_name:$server_port;}
}但我使用此种方式不行怀疑$ssl_preread_server_name、$server_port这俩变量有问题写死域名和端口后就好了。注意stream块与http块是平级的切勿嵌套。
http{//something else
}
stream {server {listen 443;ssl_preread on;proxy_pass www.baiducom:443;}
}测试SSL时可使用openssl s_client详情可参考openssl s_client工具详解
openssl s_client -connect www.baidu.com:443 -debug或者
openssl s_client -connect www.baidu.com:443 -msg或者curl https://some.domain.com/some/path -v
上述解决方案只访问一个域名可以写死如果访问多个域名该怎么办老海给出了答案也可参考官方文档Module ngx_stream_ssl_preread_module样例
stream {map $ssl_preread_server_name $target {a.com a-network;b.com b-network;}upstream a-network {server a.com:443;}upstream b-network {server b.com:443;}server {listen 443;ssl_preread on;proxy_pass $target;}客户端访问a.com最终会代理到upstream a-network块中的 a.com:443
思考
经同事提醒同一个nginx不能同时正向和反向代理443端口想想为什么