常見的nginx,apache反代用戶請求至tomcat主機的實現方法

一、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

spacer.gif

二、Apache+tomcat主機實現

  1. 主機規劃

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
















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章