【发布时间】:2020-06-10 07:04:39
【问题描述】:
我想在我的 NGINX 配置中执行以下操作:我想代理传递路径和查询参数,但不包括第一个路径参数 (path1)。
请求网址
https://my-domain.com/path1/path2?query1=some-query
我想把这个代理传递给
http://localhost:8000/path2?query1=some-query
我已尝试使用以下位置块
location /path1/path2/ {
proxy_pass http://localhost:8000$request_uri;
proxy_http_version 1.1;
}
但是,这并没有到达正确的端点,因为我认为它也包含path1 参数。我有几个不同的path2 路由,所以我希望能够轻松地捕获和重定向它们 - 无需像这样手动定义每一个:
location /path1/path2a/ {
proxy_pass http://localhost:8000/path2a?query1=some-query;
proxy_http_version 1.1;
}
location /path1/path2b/ {
proxy_pass http://localhost:8000/path2b?query1=some-query;
proxy_http_version 1.1;
}
location /path1/path2c/ {
proxy_pass http://localhost:8000/path2c?query1=some-query;
proxy_http_version 1.1;
}
附加编辑:
我也做不到
location /path1/ {
proxy_pass http://localhost:8000/;
proxy_http_version 1.1;
}
因为我已经有 location /path1/ 块升级到不同端点的 WebSocket 连接:
location /path1/ {
proxy_pass http://localhost:9000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
我在网上搜索了很多,但找不到适合我特定场景的配置。
【问题讨论】: