如何将 Nginx 设置为反向代理

如何将 Nginx 设置为反向代理

我正在尝试将 nginx 设置为监听我们控制的子域的反向代理。我按照网上找到的示例操作,它们大部分都有效,但有一个例外我不太清楚。

检查下面的服务器块:

server{
    listen *:80;
    server_name placehold.com;
    charset utf-8;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log error;

    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;
        client_max_body_size    10m;
        client_body_buffer_size 128k;
        proxy_connect_timeout   90;
        proxy_send_timeout      90;
        proxy_read_timeout      90;
        proxy_buffers           32 4k;

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

google.com 是本次测试的占位符。

如果我访问类似“http://placehold.com/test“这很完美,它会将我重定向到一些 google 错误页面,浏览器中的 url 保持原样。但如果我输入一个裸 url,例如“http://placehold.com/“然后它将我的浏览器重定向到谷歌主页,谷歌网址清楚地显示在浏览器中。

如何让反向代理正确屏蔽 '/' URL 以及 '/with/some/path' URL?

答案1

您的代理运行正常。Visitnghttp://google.com返回:

301 Moved Permanently
Location:https://www.google.com/

您的浏览器正在重定向至http://www.google.com

相关内容