微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用nginx proxy_pass修改位置标题

我有一个Nginx proxy_pass安装程序将/api上的每个请求传递给后端Tomcat REST服务。 这个服务在某些情况下会返回一个根据请求types而不同的Location标题,例如: Location: http://foo.bar/baz/api/search/1234567 – baz部分是由于它被托pipe在Tomcat 。

我当前的configuration正确地重写了foo.bar主机名,但保持baz部分完好无损。 我想删除这个,但proxy_pass选项似乎被限制为清除或设置一个新的头值。

有没有办法dynamic修改标题之前传递给客户端,使用正则expression式替代品,例如? 这是我的Nginxconfiguration:

location /api { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_max_temp_file_size 0; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffers 32 4k; proxy_redirect off; proxy_pass http://foo.bar:8080/baz/api; }

如何添加标题只有特定的文件Nginx

在Apache Htaccess中正确使用KeepAlive

GCC在编译时在/ usr / local / include中查找头文件,但在链接时不在/ usr / local / lib中查找库文件。 为什么?

包含Windows上可能存在或不存在的标头

Nginx – 我将如何为所有虚拟主机设置过期标题

摄像头,video源对话框出现

C ++:平台相关types – 最佳模式

Nginx标题响应

将Perl脚本输出pipe道打印为10行后,将会杀死脚本

在QT GUI应用程序中切换窗口

您可以使用regexp来修改它,但更好的方法是使用代理重定向

proxy_redirect http://foo.bar/baz/ /;

http://Nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect

foo.bar/baz/任何位置标题foo.bar/baz/将转到/

如果你只是想重定向/baz/api ,那也可以。

如果任何重定向添加端口,您还需要添加http://foo.bar:8080/baz/ (单独重定向)。

希望这可以帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐