Skip to content

反向代理

如果你使用了反向代理,请修改Nginx或者Apache的配置文件,否则将错误识别客户端的IP

在Nginx的配置文件中,使用 proxy_set_header 指令来添加Forwarded头:

js
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:5120;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

在Apache的配置文件中,使用 RequestHeader 指令来添加Forwarded头:

xml
<VirtualHost *:80>
    ServerName example.com

    ProxyPreserveHost On
    ProxyPass        "/" "http://127.0.0.1:5120/"
    ProxyPassReverse "/" "http://127.0.0.1:5120/"

    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} websocket [NC]
    RewriteCond %{HTTP:Connection} upgrade [NC]
    RewriteRule ^/(.*) "ws://127.0.0.1:5120/$1" [P,L]

    RequestHeader set Host              "%{HTTP_HOST}s"
    RequestHeader set X-Real-IP         "%{REMOTE_ADDR}s"
    RequestHeader set X-Forwarded-For   "%{REMOTE_ADDR}s"
</VirtualHost>