我有一个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; }
在Apache Htaccess中正确使用KeepAlive
GCC在编译时在/ usr / local / include中查找头文件,但在链接时不在/ usr / local / lib中查找库文件。 为什么?
包含Windows上可能存在或不存在的标头
摄像头,video源对话框出现
C ++:平台相关types – 最佳模式
将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] 举报,一经查实,本站将立刻删除。