一、nginx+tomcat主機實現
1.主機規劃
nginx主機 | 172.18.12.20 |
tomcat主機 | 172.18.12.21 |
2.安裝tomcat主機並部署一個簡單的測試頁面
# yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel # vim /etc/profile.d/java.sh
JAVA_HOME=/usr
export JAVA_HOME
# . /etc/profile.d/java.sh
3.安裝tomcat
# yum install -y tomcat tomcat-lib tomcat-webapps tomcat-admin-webapps
4..部署一個測試頁面
# mkdir /var/lib/tomcat/webapps/myapp # mkdir /var/lib/tomcat/webapps/myapp/{classes,lib,WEB-INF,META-INF} # mkdir /var/lib/tomcat/webapps/myapp/index.jsp # vim /var/lib/tomcat/webapps/myapp/index.jsp
<%@ page language="java" %>
<html>
<head><title>TomcatA</title></head>
<body>
<h1><font color="red">TomcatA.magedu.com</font></h1>
<table align="centre" border="1">
<tr>
<td>Session ID</td>
<% session.setAttribute("magedu.com","magedu.com"); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html>
5.啓動tomcat
# systemctl start tomcat
7.nginx主機安裝配置
# yum install -y nginx # vim /etc/nginx/nginx.conf
location ~* \.(jsp|do) {
proxy_pass http://172.18.12.21:8080;
}
# nginx -t # nginx
二、Apache+tomcat主機實現
主機規劃
Apache主機 | 172.18.12.20 |
TomcatA主機 | 172.18.12.21 |
爲了不讓nginx主機影響我們的實驗,我們先卸載nginx,再安裝Apache
#yum remove nginx # yum install -y httpd
Apache反代後端主機有三種實現我們分開來一一演示,注意此處我們都是基於虛擬主機實現
2.註釋中心主機
# vim /etc/httpd/conf/httpd.conf
#DocumentRoot "/var/www/html"
3.第一種實現方式
使用httpd自帶代理模塊proxy_http_module 基於http協議來實現
編寫httpd的配置文件
# vim /etc/httpd/conf.d/http_proxy.conf
<VirtualHost *:80>
ServerName dy.magedu.com
ProxyRequests Off 關閉正向代理
ProxyVia On 指明是從哪個主機代理指後端主機的
ProxyPreserveHost On 關閉其他重定向的主機名
<Proxy *>
Require all granted 授權代理所有的訪問請求
</Proxy>
ProxyPass / http://172.18.12.21:8080/
ProxyPa***everse / http://172.18.12.21:8080/
<Location />
Require all granted
</Location>
</VirtualHost>
測試語法並重載httpd令配置文件生效
#httpd -t #systemctl reload httpd
第二種方法使用httpd自帶的模塊 proxy_ajp_module 來實現
此種實現與第一種的區別在於所使用的協議不同,我們可以利用上一個配置文件只是修改協議和端口即可以實現
# mv /etc/httpd/conf.d/http_proxy.conf /etc/httpd/conf.d/ajp_proxy.conf
<VirtualHost *:80>
ServerName dy.magedu.com
ProxyRequests Off
ProxyVia On
ProxyPreserveHost On
<Proxy *>
Require all granted
</Proxy>
ProxyPass / ajp://172.18.12.21:8009/
ProxyPa***everse / ajp://172.18.12.21:8009/
<Location />
Require all granted
</Location>
</VirtualHost>
第三種使用第三方模塊mod_jk實現
爲防止原來的配置文件影響我們的實驗將原來的配置文件重命名
# mv /etc/httpd/conf.d/ajp_proxy.conf{,.bak}
1.編譯安裝mod_jk
# yum groupinstall -y "development tools" "server platform development" # yum install httpd-devel # tar -xf tomcat-connectors-1.2.40-src.tar.gz # cd tomcat-connectors-1.2.40-src/native/ # ./configure --with-apxs=/usr/bin/apxs #make && make install
2.提供mod_jk的配置文件
# vim /etc/httpd/conf.d/mod_jk.conf
LoadModule jk_module modules/mod_jk.so
JkWorkersFile /etc/httpd/conf.d/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
JkMount /* TomcatA
JkMount /jk_status StatA
# vim /etc/httpd/conf.d/workers.properties
worker.list=TomcatA,StatA
worker.TomcatA.host=172.18.12.21
worker.TomcatA.port=8009
worker.TomcatA.type=ajp13
worker.StatA.type=status
#httpd -t #systemctl restart httpd