# Nginx 反向代理 # 反向代理模块是由ngx_http_proxy_module进行解析的 # proxy_pass指令:用来设置被代理服务器地址,可以是主机名称、IP地址加端口号形式。 # 位置:location # 语法:proxy_pass URL; server { listen 8080; server_name localhost; location /server { # proxy_pass http://192.168.1.100; proxy_pass http://192.168.1.100/; # 地址后面的斜杠加和不加的区别 # 当客户端访问 http://192.168.1.100/server/index.html # 不加斜杠,就变成了 http://192.168.1.100/server/index.html # 加斜杠,就变成http://192.168.1.100/index.html # 也就是加了斜杠就是替换location中的/server为访问的uri。 } } # proxy_set_header指令:该指令可以更改Nginx服务器接收到客户端请求头信息,然后将新的请求头发送给代理的服务器。 # 语法:proxy_set_header field value; # 默认值:proxy_set_header Host $proxy_host; # proxy_set_header Connection close; # 位置:http、server、location proxy_set_header username TOM; # proxy_redirect指令:该指令是用来重置头信息中的"location"和"Refresh"的值的。 # 具体说明:假设192.168.1.100是代理服务器,192.168.1.200是服务器地址 # 当浏览器输入http://192.168.1.100/index.html访问服务器的时候,访问的是代理服务器,而实际上页面的内容是在服务器上 # 所以代理服务器需要代理访问http://192.168.1.200/index.html, # 而http://192.168.1.200/index.html这时候处理结果是重定向到http://192.168.1.200/other.html # 如果代理服务将192.168.1.200服务器返回的内容原封不动的返回到浏览器的话,那么浏览器的URL就会重定向到http://192.168.1.200/other.html了 # 这样就暴露了我们服务器的真实地址了 # proxy_redirect就是通过重置头信息中的"location"和"Refresh"的值来处理这个问题的。 # 语法:proxy_redirect redirect replacement; # proxy_redirect default; # proxy_redirect off; # 位置:http、server、location # 参数说明:redirect为目标location的值,replacement是要替换的值 # default:就是location块的uri变量的值。 # off:关闭proxy_redirect功能。 # 例子: server { listen 8081; server_name 192.168.1.100; location / { proxy_pass http://192.168.1.200/ proxy_redirect http://192.168.1.200/ http://192.168.1.100/; } } server { listen 80; server_name 192.168.1.100; location / { proxy_pass http://192.168.1.200:8080/ } }