如何安装Apache作为Tomcat服务器的反向代理

配置Apache作为反向代理步骤为基于Java的应用程序的Tomcat Web服务器。

任务:安装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/
Apache作为反向代理 让我们开始配置

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