我需要运行 Web 服务器,因为有些人使用 PHP,有些人使用在 Tomcat 上运行的 Groovy 和 Grails。我公司只允许80端口通过。
在这种情况下,我能否获得有关如何同时支持这两种情况的详细说明?
通过 Apache、Nginx 或 Lighttp 等专用 Web 服务器代理您的 Grails 应用程序。
对于 Apache,启用 mod_proxy 并让它侦听端口 80。在 Tomcat 中运行您的 Grails 应用程序,侦听另一个端口,例如 8080。然后将 Apache 配置为代理到您的 Grails 应用程序:
# ensure these modules get loaded
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ProxyRequests Off
<Proxy *>
Order deny,allow
Deny from all
Allow from localhost
</Proxy>
ProxyPass /mygrailsapp http://localhost:8080/mygrailsapp
ProxyPassReverse /mygrailsapp http://localhost:8080/mygrailsapp
然后,您可以将 Apache 配置为直接提供 PHP 或代理到另一台服务器。
使用 nginx 作为代理服务器,监听 80 端口。为 php 和 tomcat 定义不同的上游。
安装和配置mod_jk模块,以便 Apache 在侦听端口 80 时将请求转发到 Tomcat 以获取特定路径。
请参阅mod_jk的文档。
阿帕奇配置:
# send all requests to "/grails" to Tomcat
JkMount /grails/* worker
Tomcat server.xml(取消注释 AJP 连接器)
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
您可以将 Apache 服务器配置为侦听特定端口...编辑 http.conf 文件...添加:
Listen 8080
应该这样做,如果您需要添加服务器的 IP 地址:172.x.x.x:80