我有一台正在运行的虚拟机Ubuntu 16.04
,LAMP
目前正在托管一些 WordPress 网站。
我在本地实现了一个在服务器上运行的 Web 项目Tomcat
,我想将其部署到虚拟机中。我计划安装Apache Tomcat 8然后在那里部署我的项目的 war 文件。
我的问题是:
在虚拟机中安装后
Tomcat 8
,我是否应该进行额外设置?在 Apache WebServer 还是其他地方?要将我的 web 应用程序与域名连接,在文件中设置虚拟主机时
.conf
,DocumentRoot
我将添加 web 应用程序的路径吗?
.conf 文件:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName test.com
ServerAlias www.test.com
DocumentRoot /opt/tomcat/webapps/webApplication
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
答案1
有几种方法可以做到这一点,要么使用mod_jk
连接器向应用程序提供请求,要么通过将 apache 配置为反向代理mod_proxy
并将请求发送到 tomcat Web 服务器。两者都将作为子域或目录或别名指令工作,因此设置将遵循以下方式:
这是 mod_jk 的一个简单配置(来自https://tomcat.apache.org/connectors-doc/webserver_howto/apache.html)
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Add the module (activate this lne for Apache 1.3)
# AddModule mod_jk.c
# Where to find workers.properties
JkWorkersFile /etc/httpd/conf/workers.properties
# Where to put jk shared memory
JkShmFile /var/log/httpd/mod_jk.shm
# Where to put jk logs
JkLogFile /var/log/httpd/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Send requests for context /examples to worker named worker1
JkMount /examples/* worker1
这是一个简单的反向代理设置,可以添加到VirtualHost
或Directory
(官方文档:https://tomcat.apache.org/connectors-doc/common_howto/proxy.html)
ProxyRequests off
ProxyPass / http://localhost:8082/
ProxyPassReverse / http://localhost:8082/