首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用nginx通过proxy_pass转发查询字符串参数?

如何使用nginx通过proxy_pass转发查询字符串参数?
EN

Stack Overflow用户
提问于 2011-11-15 10:13:23
回答 6查看 231.4K关注 0票数 149
代码语言:javascript
运行
复制
upstream apache {
   server 127.0.0.1:8080;
}
server{
   location ~* ^/service/(.*)$ {
      proxy_pass http://apache/$1;
      proxy_redirect off;
   }
 }

上面的代码片段会将url包含字符串"service“的请求重定向到另一个服务器,但不包含查询参数。

EN

回答 6

Stack Overflow用户

发布于 2013-07-25 21:48:28

我使用~而不是~*对kolbyjack的第二种方法进行了略微修改。

代码语言:javascript
运行
复制
location ~ ^/service/ {
  proxy_pass http://apache/$uri$is_args$args;
}
票数 36
EN

Stack Overflow用户

发布于 2016-05-24 15:30:40

您必须使用重写来使用proxy_pass传递参数。下面是我为s3部署angularjs应用程序所做的示例

S3 Static Website Hosting Route All Paths to Index.html

适应你的需求将会是这样的

代码语言:javascript
运行
复制
location /service/ {
    rewrite ^\/service\/(.*) /$1 break;
    proxy_pass http://apache;
}

如果你想在http://127.0.0.1:8080/query/params/中结束

如果你想在http://127.0.0.1:8080/service/query/params/中结束,你需要类似这样的东西

代码语言:javascript
运行
复制
location /service/ {
    rewrite ^\/(.*) /$1 break;
    proxy_pass http://apache;
}
票数 13
EN

Stack Overflow用户

发布于 2015-09-25 05:09:53

我修改了@kolbyjack代码,使其适用于

代码语言:javascript
运行
复制
http://website1/service
http://website1/service/

带参数

代码语言:javascript
运行
复制
location ~ ^/service/?(.*) {
    return 301 http://service_url/$1$is_args$args;
}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8130692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档