我的 cent os 服务器上有一个 tomcat(运行在 8080 上)应用程序,我可以使用以下 URL 访问它:
SERVER_IP:8080/myapp
我的管理面板已打开
SERVER_IP:8080/myapp/admin
我有一个在端口 80 上运行的 Apache 服务器。
我有两个域名:
www.myapp.com
admin.myapp.com
我已经设法配置 tomcat、mod_jk 和 apache 服务器,以便 admin.myapp.com url 打开 tomcat 主页(SERVER_IP:8080)。
但我想要的是让 admin.myapp.com url 打开 SERVER_IP:8080/myapp/admin 以及让 www.myapp.com 打开 SERVER_IP:8080/myapp。
我需要让 apache 知道请求何时到达 admin.myapp.com,它应该知道将请求重定向到 SERVER_IP:8080/myapp/admin。显然缺少了一些东西。
这是我的配置:
httpd.conf(admin.myapp.com.conf 实际上是因为它是由 plesk 面板创建的,但我认为它无关紧要)
<VirtualHost SERVER_IP:80 >
ServerName "admin.myapp.com:80"
ServerAlias "www.admin.myapp.com"
ServerAlias "ipv4.admin.myapp.co"
ServerAdmin "[email protected]"
UseCanonicalName Off
JkMount / ajp13
JkMount /* ajp13
....
</VirtualHost>
mod_jk配置文件
# Load mod_jk module
# Update this path to match your modules location
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
# Update this path to match your conf directory location
JkWorkersFile /usr/local/tomcat7/conf/workers.properties
# Where to put jk logs
# Update this path to match your logs directory location
JkLogFile /usr/local/tomcat7/logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel debug
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
工人.属性
# Define 1 real worker named ajp13
worker.list=ajp13
# Set properties for worker named ajp13 to use ajp13 protocol,
# and run on port 8009
worker.ajp13.type=ajp13
worker.ajp13.host=localhost
worker.ajp13.port=8009
worker.ajp13.lbfactor=50
worker.ajp13.cachesize=10
worker.ajp13.cache_timeout=600
worker.ajp13.socket_keepalive=1
worker.ajp13.socket_timeout=300
提前致谢。
答案1
我已经弄清楚了使用 mod_proxy 而不是 mod_jk 并添加以下行:
ProxyPass / http:// SERVER_IP:8080/
ProxyPass /myapp/ http:// SERVER_IP:8080/myapp
以下行表示 cookie:
ProxyPassReverseCookiePath /myapp /"