我有一个在 Tomcat 上完美运行的 Web 应用程序,但在重定向和其他安全改进之前,我必须运行连接到 tomcat 的 httpd。
httpd 正在运行,但我实际上不知道它是否正在运行超过Tomcat。我的意思是,我首先要配置的是重定向,但我不知道是我配置错了还是 httpd 没有生效。
答案1
每次只能将一个应用程序绑定到特定端口。您可以使用类似工具ss
来确定哪个进程正在监听您感兴趣的端口。
答案2
如果你想跑Apache 连接到 Tomcat并且设置是为了安全改进,我们谈论的不是一个重定向但反向代理。
你应该有 Tomcat 的HTTP 连接器(或者急性日照)监听除 之外的其他端口
80
并将其绑定到localhost
,例如,您可以在TOMCAT_HOME/conf/server.xml
:<Connector port="8080" protocol="HTTP/1.1" address="127.0.0.1" connectionTimeout="20000" />
如果有端口连接器,
80
则应将其删除,因为您现在在 Apache 上使用它。否则,无论哪个先启动,都会绑定到端口80
,从而阻止另一个启动。这是不可接受的。阿帕奇的
mod_proxy
需要安装并启用sudo a2enmod proxy
。将代理添加到您的 Apache 配置中,可能在一些
<VirtualHost>
指示例如<VirtualHost *:80> ServerName host.example.com ProxyPass /myapp http://localhost:8080/myapp ProxyPassReverse /myapp http://localhost:8080/myapp </VirtualHost>