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
Write a Comment