nginx 配置的几个重要参数
proxy_pass
location /api {
proxy_pass http://127.0.0.1:2333;
}
表示所有 /api 的请求都会发送到 http://127.0.0.1:2333 去获取资源
可以用来解决跨越问题
默认使用的是 http 1.0,可以通过 proxy_http_version 指令让它使用 http 1.1,以便开启 keepalive 之类的功能
location /api {
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:8080;
}
proxy_redirect
指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
proxy_set_header
允许重新定义或添加字段传递给代理服务器的请求头。该值可以包含文本、变量和它们的组合。在没有定义proxy_set_header时会继承之前定义的值。
Host
请求的主机名
$host 与 $http_host的区别在于当使用非80/443端口的时候,$http_host = $host:$port
X-Real_IP
表示连接反向代理服务器的 IP 地址(这个地址不能伪造)
X-Forwarded-For
本作为 http 扩展头部,用来表示 http 请求是谁发出的
X-Forwarded-For: client, proxy1, proxy2
注意:
注意最后一个代理服务器请求 Web 服务器的时候是不会将自己的 IP 附加到 X-Forwarded-For 头上的,最后一个代理服务器的 IP 地址应该通过$_SERVER['REMOTE_ADDR']获取
举例说明:
用户的 IP 为(A),分别经过两个代理服务器(B,C),最后到达 Web 服务器,那么Web 服务器接收到的 X-Forwarded-For 就是 A,B。
Comments