Raj*_*Raj 16 apache reverse-proxy proxypass
伙计们,我们正在尝试为以下场景设置Apache反向代理:
http://foo.com/APP/v1/main.htmlhttp://foo.com/APP/v2/main.html/APP/v1/main.htmlhttp://localhost:8080/AppContext/main.html,不论在URL版本片段(V1,V2等).我一直试图这样做:
ProxyPassMatch ^/.*?/APP.*?/(.*)$ http://localhost:8080/AppContext/$1
ProxyPassReverse /APP http://localhost:8080/AppContext
Run Code Online (Sandbox Code Playgroud)
我的问题是:
ProxyPassMatch正确吗?ProxyPassReverse是"静态的".如何让它意识到之后可能变化的东西/APP?感谢您的任何见解.
-Raj
你很接近,尝试稍微更改正则表达式以考虑版本片段:
ProxyPassMatch ^/.*?/APP.*?/v[0-9]+/(.*)$ http://localhost:8080/AppContext/$1
Run Code Online (Sandbox Code Playgroud)
在ProxyPassReverse大多以确保即时在被代理的应用程序提供的响应位置标头字段的改写.因此,当它返回301重定向时,例如,http://localhost:8080/AppContext/somethingapache知道将其更改为,/APP/v1/something因此代理背后的信息不会暴露.因为您在反向代理中使用了动态URL,所以此处有一些选择.您可以将它发送到HAProxy负载均衡器(不确定它在哪里),或者您可以选择一个并希望获得最佳效果.举例来说,如果你有一个负载平衡器/APP/balancer/,然后将请求发送到/APP/v1/,/APP/v2/,/APP/v3/,等等,那么你可以这样做:
ProxyPassReverse /APP/balancer http://localhost:8080/AppContext
Run Code Online (Sandbox Code Playgroud)
否则,您可以将其指向一个并希望获得最佳效果:
ProxyPassReverse /APP/v1 http://localhost:8080/AppContext
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40261 次 |
| 最近记录: |