我有一个名为 的站点http://example.com
,其中运行着一个应用程序,可以在http://example.com/app1
. app1 位于 nginx 反向代理后面,如下所示:
location /app1/ {
proxy_pass http://localhost:8080/;
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_pass
可以让我“删除”URL 的 /app1/ 部分,至少就应用程序而言。所以 app1 认为它正在获取对根 url 的请求(例如,我在 app1 中有一个路由,它位于'/'
,而不是'/app1'
)。
但是,我想让 nginx 不区分大小写。所以无论我去http://example.com/App1
还是http://example.com/APP1
,它仍然应该只是将请求转发给 app1,并删除 /app1/ 部分的 url。
当我尝试使用 nginx 的不区分大小写的规则时,它不会将 URI 的其余部分转发给 app1。
location ~* /app1/ {
proxy_pass http://localhost:8080/;
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;
}
这给了我一个nginx配置错误。
我的目标有两个:
/app1/
不区分大小写匹配/app1/
将网址“传递”到应用程序时删除网址的一部分
我已经尝试重写 url,但它不允许我将 URI 的其余部分添加到 proxy_pass。
任何帮助,将不胜感激!