nginx 反向代理常用设置说明

nginx 反向代理常用设置说明

根据不同的后缀名访问不同的服务器地址

例如:

server {
    listen       80;
    server_name  aaa.com.cn;# 服务器地址或绑定域名
  
    # ^~/api 表示匹配前缀为api的请求
    location ^~ /api/ {  
        # proxy_pass的结尾有/, -> 效果:会在请求时将/api/*后面的路径直接拼接到后面
        proxy_pass  http://www.x.com:9528/api/;
  
    }

    location ^~ /blog/ {
        # ^~/blog/ 表示匹配前缀为blog/后的请求
        proxy_pass  http:/www.y.com/blog/; 
    }
}

proxy_set_header说明

proxy_set_header说明要配置反向代理服务器传递给其他服务器的标头,我们可以在之前创建的配置文件中定义它们。使用 proxy_set_header 指令调整标头。 它们可以在server, location 或 http 块中配置。例如

proxy_set_header Host $proxy_host;
proxy_set_header Connection close;

配置说明

项目 说明
Host $http_host 服务器本身IP
X-Real-IP X-Real-IP $remote_addr,前一节点IP(非用户真实IP)
X-Forwarded-For $proxy_add_x_forwarded_for $proxy_add_x_forwarded_for,前一节点X-Forwarded-For值
X-Forwarded-Proto $scheme 浏览器在访问时的实际协议

X-Forwarded-For: 简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。 它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍。
标准格式:X-Forwarded-For: client1, proxy1, proxy2。值通过一个“逗号+空格”把多个IP地址区分开, 最左边(client1)是最原始客户端的IP地址, 代理服务器每成功收到一个请求,就把请求来源IP地址添加到右边。

$host$http_host, $proxy_host 说明

变量名 是否显示端口
$host 不显示端口 浏览器请求的ip
$http_host 端口存在则显示 被代理服务的ip和端口号
$proxy_host 默认80端口不显示,其它显示 被代理服务的ip和端口号

标准配置示例

server {
    listen 80;
    server_name www.xxx.com;

    location /
    {
        proxy_pass http://xxx.com;
        proxy_set_header host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
posted @ 2024-08-12 15:33  zakun  阅读(32)  评论(0编辑  收藏  举报
返回顶部