NGINX 使用 proxy_set_header Host $host; 将我发送到 404

NGINX 使用 proxy_set_header Host $host; 将我发送到 404
server {
    listen  80;
    server_name _;

    location /test/ {
    proxy_pass http://example.com/page.php;
    }
}

目前,当我使用此 Nginx 反向代理时,当我从 访问时test.com/test/,它会为我提供服务https://example.com/page.php,但 URL 保持不变。当我调用 时$_SERVER['http_host'],它返回 example.com 的主机名,而不是我从中发出请求的主机名(域中的 URL)。

我尝试使用:proxy_set_header Host $host;然而运行之后却导致我进入 404 页面。

简而言之,

我想参观test.com/test并接受服务http://example.com/page.phpbut have thePHP 中的主机名oftest.com/test when I call$_SERVER`

编辑:

events {
    worker_connections 1024;
}

http {
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    server {
        listen  80;
        server_name _;

        location / {
                proxy_set_header Host $host; #works without this
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_intercept_errors on;

        proxy_pass http://example.com;
        }
    }
}

相关内容