我有一个使用 Tomcat6 在 Linux 机器上运行的 Web 应用程序。
我已经设置了端口转发,以便端口 80 上的任何请求都会重定向到端口 8080,这样就可以正常工作。
我遇到的问题是,Web 应用程序使用 HTTP(在端口 80 上)调用 API,因此无法发送任何请求或接收任何请求,因为所有内容都定向到端口 8080 上的 Web 应用程序。
有什么方法可以允许服务器在端口 80 上发送/接收,但连接到服务器的外部主机(即 Web 应用程序的用户)被定向到 8080。
谢谢
答案1
您可能能够使用 ProxyPass 和 ProxyPassReverse 将某些 url 代理到 8080,而不进行端口转发。
摆脱端口转发,并在 /etc/httpd/conf.d 中创建一个文件(假设基于 redhat 的 Linux 发行版带有 apache):
ProxyPass /myapp/ http://localhost:8080/
ProxyPassReverse /myapp/ http://localhost:8080/
如果需要,您还可以在上面的 http 行后面添加路径。
这基本上设置了一个反向代理,因此任何与 ProxyPass{,Reverse} 条目匹配的内容都将转到 localhost:8080,其他所有内容都将由本地 apache 实例提供服务。
显然,如果您有不同的发行版、操作系统或网络服务器,则必须更改上述内容,但概念是相同的。