1. 程式人生 > 其它 >nginx location proxy_pass詳解

nginx location proxy_pass詳解

在nginx中配置proxy_pass時,如果在proxy_pass後面的url加/,相當於是絕對根路徑,則nginx不會把location中匹配的路徑部分代理走;如果沒有/,則會把匹配的路徑部分給代理走。

下面四種情況分別用http://106.12.74.123/abc/index.html進行訪問。

# 第一種
location  /abc
    {
        proxy_pass http://106.12.74.123:83/;
        proxy_set_header Host   $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X
-Forwarded-For $proxy_add_x_forwarded_for; } # 結論:會被代理到http://106.12.74.123/index.html 這個url # 第二種(相對於第一種,最後少一個 /) location /abc { proxy_pass http://106.12.74.123:83; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X
-Forwarded-For $proxy_add_x_forwarded_for; } # 結論:會被代理到http://106.12.74.123/abc/index.html 這個url 第三種: location /abc { proxy_pass http://106.12.74.123:83/linux/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 結論:會被代理到http:
//106.12.74.123/linux/index.html 這個url。 # 第四種(相對於第三種,最後少一個 / ): location /abc { proxy_pass http://106.12.74.123:83/linux; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 結論:會被代理到http://106.12.74.123/linuxindex.html 這個url