如何將 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「這工作得很好,它會將我重定向到一些谷歌錯誤頁面,並且瀏覽器中的網址保持為類型。但是如果我輸入一個像「這樣的裸網址http://placehold.com/「然後它將我的瀏覽器重定向到谷歌主頁,谷歌網址清楚地顯示在瀏覽器中。

如何讓反向代理正確屏蔽「/」網址以及「/with/some/path」網址?

答案1

您的代理工作正常。來訪http://google.com回報:

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

您的瀏覽器正在被重定向到http://www.google.com

相關內容