server { resolver 114.114.114.114; #指定DNS服务器IP地址 listen 8080; location / { proxy_pass http://$http_host$request_uri; #设定代理服务器的协议和地址 } }
以上的配置只能访问80 端口的网站,而不能访问https443端口的网站,现在的网站基本上都是https的要解决技能访问http80端口也能访问https443端口的网站,需要置两个SERVER节点,一个处理HTTP转发,另一个处理HTTPS转发,而客户端都通过HTTP来访问代理,通过访问代理不同的端口,来区分HTTP和HTTPS请求。
server { resolver 114.114.114.114; #指定DNS服务器IP地址 listen 80; location / { proxy_pass http://$http_host$request_uri; #设定代理服务器的协议和地址 proxy_set_header HOST $http_host; proxy_buffers 256 4k; proxy_max_temp_file_size 0k; proxy_connect_timeout 30; proxy_send_timeout 60; proxy_read_timeout 60; proxy_next_upstream error timeout invalid_header http_502; } } server { resolver 114.114.114.114; #指定DNS服务器IP地址 listen 443; location / { proxy_pass https://$host$request_uri; #设定代理服务器的协议和地址 proxy_buffers 256 4k; proxy_max_temp_file_size 0k; proxy_connect_timeout 30; proxy_send_timeout 60; proxy_read_timeout 60; proxy_next_upstream error timeout invalid_header http_502; } }
这种方式修改了客户端环境变量http_proxy,会将所有客户端所有http请求都代理到proxy服务器。如果系统中涉及到存量的内网http请求,这样做的风险比较大
server{
listen 8081;
access_log /usr/local/nginx/8081.log;
error_log /usr/local/nginx/8081.log;
rewrite_log on;
location / {
#proxy_pass http://198.98.20.63;
resolver 114.114.114.114;
#proxy_pass http://${arg_HOSTNAME}/${document_uri};
proxy_pass http${arg_HOSTNAME}/${document_uri};
#proxy_pass http${arg_PTTP}://${arg_HOSTNAME}/${document_uri};
#set $HTNM $1;
#set $PTTP $2;
#proxy_pass http${PTTP}://${HTNM}/${document_uri};
#proxy_pass http://$HOSTNAME/$document_uri;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html{
root html;
}
}
附:curl常用命令
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178838.html原文链接:https://javaforall.net
