Nginx位置代理通过主页一个地方,所有其他路线,另一个地方

时间:2016-09-04 14:28:20

标签: nginx proxypass nginx-location

我需要你的帮助,我找不到确切的方法来做到这一点。

我想将我的主页仅发送到一个代理通行证位置

    location / {
        proxy_pass http://website;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    } 

然后发送每个其他路由(我将不知道它们将是什么,它将是动态的)到另一个代理传递。

    location /* {
        proxy_pass http://interaction;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    
    } 

我知道*是错的(因为它不起作用),但它只是代表/任何或/或任何或/ idontknowyet

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您不清楚哪些URI构成了您的主页(除了/)。

假设不需要资源文件,并且不进行重定向,可以使用完全匹配位置块来匹配主页,使用默认位置块匹配其他所有内容:

biggest_plus_1

有关详细信息,请参阅this document

但是可能还有其他URI(例如css和js文件)组成了主页。您还需要为这些添加位置块,或者使用匹配主页所需的所有URI的正则表达式位置块。