apache tomcat ajp mod jk

來源:互聯網
上載者:User

標籤:apache   mod_jk   tomcat


環境

系統:centos 7.3

Apache:2.4.27

Modjk:1.2.42

Tomcat:8.5

Jdk:1.8.92

Apr:1.6.2

Apr-util:1.6.0

 

關閉所有防火牆和selinux

systemctlstop firewalldserviceiptables stopsetenforce0


一、安裝Apache

1、     安裝依賴

yum -y install wget gcc gcc-c++ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2libxml2-devel curl-devel libjpeg* libpng* freetype* pcre-devel bzip2-devellibmcrypt-devel  libmhash  libexpat1 libexpat1-dev


2、     安裝apr

tar xzvf apr-1.6.2.tar.gz ;cdapr-1.6.2;./configure--prefix=/usr/local/aprmake && make install


3、     安裝apr-util

tar xzvf apr-util-1.6.0.tar.gz ;cdapr-util-1.6.0./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr/make && make install


4、     安裝apache2.4

tar xzvf httpd-2.4.27.tar.gz ;cdhttpd-2.4.27


編譯apache之前要把解壓後的apr和apr-util複製一分到apache解壓後的源碼目錄中的srclib子目錄一,不然會報錯。configure: error: BundledAPR requested but not found at ./srclib/. Download and unpack the correspondingapr and apr-util packages to ./srclib/.

cp -a apr-1.6.2httpd-2.4.27/srclib/aprcp -a apr-util-1.6.0httpd-2.4.27/srclib/apr-util./configure--prefix=/usr/local/apache --with-included-apr --enable-so--enable-deflate=shared --enable-expires=shared --enable-rewrite=shared--enable-static-support --with-mpm=worker --disable-userdir--enable-proxy-balancer --enable-proxy-http--enable-proxy-connect  --enable-proxy --enable-rewrite--enable-proxy-ajpmake && make install


 

5、     安裝mod jk

tar xzvftomcat-connectors-1.2.42-src.tar.gz ;cd tomcat-connectors-1.2.42-src/native./configure--with-apxs=/usr/local/apache/bin/apxsmake && make install


二、安裝Tomcat

1、   安裝jdk

rpm -ivhjdk-8u92-linux-x64.rpm


2、   安裝和配置tomcat

tar xzvfapache-tomcat-8.5.15.tar.gz -C /usr/local/


解壓兩個tomcat,分別命名為tomcat1  tomcat2

因為我們在同一台機上實驗,所以要修改第二個tomcat的http和ajp連接埠,避免連接埠衝突。這裡不再敘述

      修改server.xml如下幾個地方

  

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">


      這裡添加一個tomcat1,作為等下mod jk轉寄的路由,另一台為tomcat2

   

     <Host name="localhost" appBase=""           unpackWARs="true" autoDeploy="true"           xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="/www/1" debug="0"reloadable="false" crossContext="true" />

     這裡定義程式網站根目錄

 

         <ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs"       prefix="localhost_access_log."suffix=".txt" pattern="common"resolveHosts="false"/>


      這裡定義日誌和格式

 

3、   啟動tomcat

sh /usr/local/tomcat1/bin/catalina.sh startsh /usr/local/tomcat2/bin/catalina.sh start


測試兩個tomcat是否能正常訪問,返回200為正常,也可用瀏覽測試。根據自己改的連接埠來測試。

curl -I192.168.2.72:8080curl -I192.168.2.72:8180


三、配置Apache mod jk轉寄

1、在httpd.conf中找到LoadModule添加

LoadModule jk_module modules/mod_jk.so

 

開啟和添加如下兩行,開啟vhost和mod_jk的配置

Include conf/extra/httpd-vhosts.confInclude conf/mod_jk.conf

 

2、在apache的conf目錄下建立mod_jk.conf

#cat mod_jk.conf
JkWorkersFileconf/workers.propertiesJkLogFile/usr/local/apache/logs/jk.logJkShmFile/usr/local/apache/logs/jk-runtime-statusJkLogLevelerrorJkLogStampFormat"[%d %H:%M:%S] "JkOptions+ForwardKeySize +ForwardURICompat -ForwardDirectoriesJkRequestLogFormat"%w  %V  %U%q %s  %T"

3、建立workers.properties檔案

# cat workers.properties
worker.list=controller,tomcat1,tomcat2 # tomcat1worker.tomcat1.port=8009worker.tomcat1.host=127.0.0.1worker.tomcat1.type=ajp13worker.tomcat1.lbfactor=1worker.tomcat1.connection_pool_size=500worker.tomcat1.connection_pool_minsize=25worker.tomcat1.connection_pool_timeout=300worker.tomcat1.socket_timeout=20 worker.tomcat2.port=8109worker.tomcat2.host=127.0.0.1worker.tomcat2.type=ajp13worker.tomcat2.lbfactor=1worker.tomcat2.connection_pool_size=500worker.tomcat2.connection_pool_minsize=25worker.tomcat2.connection_pool_timeout=300worker.tomcat2.socket_timeout=20 #========controllertomcat online =======worker.controller.type=lbworker.controller.balanced_workers=tomcat1,tomcat2worker.controller.sticky_session=1worker.controller.connection_pool_size=1000worker.controller.connection_pool_minsize=50worker.controller.connection_pool_timeout=300worker.controller.socket_timeout=20

 

4、配置httpd-vhosts.conf

<VirtualHost*:80>        ServerName www.yy.com        DocumentRoot "/www/1"        ErrorLog "logs/yy-error_log"        CustomLog"logs/yy-access_log" common        JkMount /*.html*    controller        JkMount /*.tt*    controller        JkMount /*.index*    controller     <Directory />        AllowOverride none        Options -Indexes        AllowOverride All        Require all granted         </Directory></VirtualHost>

 

[[email protected] www]# ls1  2[[email protected] www]# ls *1:1.tt  index.html2:1.tt  index.html

      /www/1和/www/2分別是tomcat1 和tomcat2的根目錄。裡面放置一樣的檔案名稱,但內容不同。然後重新整理瀏覽器,看內容是否會不停變化,如果會就主明轉寄成功了。

 

        JkMount /*.html*    controller

這個是定義所有.html的請求都轉寄到tomcat處理,這裡是實驗,生產中應該把動太內容發給tomcat處理,如jsp等。

 


本文出自 “蒲公英的秘密” 部落格,請務必保留此出處http://yylinfan.blog.51cto.com/8670422/1953594

apache tomcat ajp mod jk

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.