我有一些 servlet 正在侦听无法从外部访问的内部端口。我使用 ApacheProxyPass
和ProxyPassReverse
指令从端口 443 安全地为它们提供服务:
ProxyPass /media http://localhost:9002/
ProxyPassReverse /media http://localhost:9002/
这工作正常 -https://example.com/media
从http://localhost:9002/
.
当 URL 具有不同的部分时,就会出现问题。例如:
https://example.com/image/IMAGE_NAME_1
应从http://localhost:9002/image/IMAGE_NAME_1
.
并且https://example.com/image/IMAGE_NAME_2
应该从http://localhost:9002/image/IMAGE_NAME_1
.
我尝试了一些变化,包括:
RewriteEngine on
RewriteRule ^/image/(.*)$ http://localhost:9002/image/$1 [L,PT]
ProxyPass /image/ http://localhost:9002/image
ProxyPassReverse /image/ http://localhost:9002/image
但是这种配置会导致Bad Request
浏览器和
Invalid URI in request GET /image/1 HTTP/1.1
在日志中。
如何代理 URL 具有不同部分的内部 servlet?
你
ProxyPassMatch
改用:在Apache 在线文档中查找更多详细信息。