任务:安装Apache作为Tomcat服务器的反向代理
设置方案
Tomcat正在端口8080上运行,我已经配置了两个示例应用程序,使用下列URL运行。
- http://localhost:8080/sample
- http://localhost:8080/calendar
在端口80上运行同一台主机,我将使用Apache服务器获取用户的请求和这些请求传送到后端的Tomcat服务器上运行的端口8080,我需要配置Apache传递请求相应的应用程序,现在我已经安装了Apache Tomcat服务器,像下面这样:
- http://example.com >> http://localhost:8080/demo1/
- http://example.net >> http://localhost:8080/demo2/
- http://domain.com/demo1/ >> http://localhost:8080/demo1/
- http://domain.com/demo2/ >> http://localhost:8080/demo2/
让我们开始配置
1. 启用 Mod Proxy (Apache模块)
使用RPM软件包安装的用户,默认情况下此模块在Apache中已启用。如果没有启用,编辑Apache配置
/etc/httpd/conf/httpd.conf 或 针对Apache 2.4
/etc/httpd/conf.modules.d/00-proxy.conf文件,取消以下行。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
2. 配置Apache虚拟主机
现在虚拟主机开始工作。我们下面创建三个虚拟主机。您只需创建一个需要具有必要的修改。配置Apache的主配置文件并启动。
配置虚拟主机-1:
要转发到example.com到后端相应的应用,如Tomcat服务器的所有请求:
- http://example.com >> http://localhost:8080/demo1/
这样配置虚拟主机。
<VirtualHost *:80>
ServerName example.com
ProxyRequests On
ProxyPass / http://localhost:8080/demo1/
ProxyPassReverse / http://localhost:8080/demo1/
<Location "/sample">
Order allow,deny
Allow from all
</Location>
</VirtualHost>
配置虚拟主机-2:
要转发到example.net站到后端相应的应用,如Tomcat服务器的所有请求:
- http://example.net >> http://localhost:8080/demo2/
这样配置虚拟主机。
<VirtualHost *:80>
ServerName example.net
ProxyRequests On
ProxyPass / http://localhost:8080/demo2/
ProxyPassReverse / http://localhost:8080/demo2/
<Location "/">
Order allow,deny
Allow from all
</Location>
</VirtualHost>
配置虚拟主机-3:
要转发到子目录 /demo1/或/demo2 所有请求http://domain.com到后端tomcat的相应的应用程序,如:
- http://domain.com/demo1/ >> http://localhost:8080/demo1/
- http://domain.com/demo2/ >> http://localhost:8080/demo2/
这样配置虚拟主机。
<VirtualHost *:80>
ServerName domain.com
ProxyRequests On
ProxyPass /demo1 http://localhost:8080/demo1/
ProxyPassReverse /demo1 http://localhost:8080/demo1/
ProxyPass /demo2 http://localhost:8080/demo2/
ProxyPassReverse /demo2 http://localhost:8080/demo2/
<Location "/demo1">
Order allow,deny
Allow from all
</Location>
<Location "/demo2">
Order allow,deny
Allow from all
</Location>
</VirtualHost>
3. 重新启动Apache和测试
完成所有必要的更改后,使用下面的命令重新启动Apache服务,并在网页浏览器中访问您的网站。请确保您从Tomcat看到正常的页面。
# service httpd restart