Nginx 反向代理

2025-08-22 18:13:00
丁国栋
原创 5
摘要:本文记录 Nginx 在反向代理方面的一些常见配置和常见问题。

这一个非常典型和通用的 Nginx 代理配置:


    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass_request_headers on;
        proxy_pass http://127.0.0.1:8080;
    }

其中:

  • Host 主机头是为了让后端服务能正确处理该请求,根据 Host 来判断应该路由给哪一个虚拟主机或者服务。
  • X-Real-IP 和 X-Forwarded-For 的目的是一样的,都是为了让后端服务获取真实的IP地址。
  • X-Forwarded-Proto 则是为了让后端服务识别到用户使用的协议,是 HTTPS 还是 HTTP。值得注意的是目前市面上还有不少服务会根据这个主机头判断请求是否合法,例如 HTTP Referer 和 X-Forwarded-Proto 的协议以及Host如果不一致会中断请求或者拒绝服务,在一定程度上可以抵御部分 CSRF 攻击(Cross-Site Request Forgery “跨站请求伪造”)。

--


发表评论
博客分类