一.準備
a、安裝Aapche (httpd-2.2.22.tar.gz)
1.解壓
tar -xzf httpd-2.2.22.tar.gz
2.改變權限
chown root.root -R httpd-2.2.22
3.配置安裝路徑,安裝
cd httpd-2.2.22
./configure --prefix=/usr/local/apache
make && make install
注:(如果用高版本apache自帶的)有些LoadModules 模塊沒有的話
在安裝程序的/root/httpd-2.2.22/modules/proxy下找到 相應的*.c文件
進入$APACHE_HOME/bin,執行以下命令以生成mod_proxy.so和mod_proxy_http.so文件:
./apxs -aic /root/httpd-2.2.22/modules/proxy/mod_proxy.c /root/httpd-2.2.22/modules/proxy/proxy_util.c //生成mod_proxy.so
./apxs -aic /root/httpd-2.2.22/modules/proxy/mod_proxy_http.c //生成mod_proxy_http.so
備註:apxs是apache中一個編譯、安裝擴展模塊的工具,用於編譯一個或多個源程序或目標代碼文件爲動態共享對象,使之可以用LoadModule指令在運行時加載到apache服務器中。
/usr/local/apache/bin/apachectl start //啓動
/usr/local/apache/bin/apachectl stop //停止
/usr/local/apache/bin/apachectl restart //重啓
b.安裝mod_jk (tomcat-connectors-1.2.32-src.tar.gz)
1.解壓
tar xzf tomcat-connectors-1.2.32-src.tar.gz
2.配置安裝路徑,安裝
cd tomcat-connectors-1.2.32-src/native/
./configure --with-apxs=/usr/local/apache/bin/apxs
make && make install
ll /usr/local/apache/modules/mod_jk.so
二.配置
tomcat配置修改
server.xml文件
1.找到 <Engine name="Catalina" defaultHost="localhost"> 修改爲 <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker_1"> //jvmRoute="worker標記"
2.找到ajp端口配置(默認8009),apacheworker.worker_1.port=這個端口,端口不衝突可不改,
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
修改端口(測試改的8029)
<Connector port="8029" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
apache配置修改
a.修改/usr/local/apache/conf/httpd.conf,在httpd.conf文件的末尾添加如下內容:
Include conf/extra/mod_jk.conf
b.在Apache\conf\extra\目錄下新建文件:mod_jk.conf(touch mod_jk.conf),內容如下:
#load module mod_jk-1.2.31-httpd-2.2.3.so is for Apache 2.2.x.
LoadModule jk_module modules/mod_jk.so
#配置 mod_jk conf
#加載集羣中的workers
JkWorkersFile conf/workers.properties
#加載workers的請求處理分配文件
JkMountFile conf/uriworkermap.properties
#指定jk的日誌輸出文件
JkLogFile logs/mod_jk.log
#指定日誌級別
JkLogLevel info
c.在Apache\conf\目錄下新建文件:workers.properties,內容如下
#worker列表
worker.list=LB_worker,jkstatus
#worker.list=worker_1,worker_2
#第一個worker的配置,名爲worker_1
#tomcat的主機地址,如不爲本機,請填寫ip地址
worker.worker_1.host=222.73.250.222
#ajp13 端口號,對應tomcat配置文件server.xml中Connector port="8009",默認8009
worker.worker_1.port=8029
worker.worker_1.type=ajp13
#負載的權重值,越高表示負載越大
worker.worker_1.lbfactor=2
#第二個worker的配置,名爲worker_2
worker.worker_2.host=222.73.250.164
#ajp13 端口號,對應tomcat配置文件server.xml中Connector port="9009"
worker.worker_2.port=8029
worker.worker_2.type=ajp13
worker.worker_2.lbfactor=1
#LB_worker,用於負載均衡分發的控制器
worker.LB_worker.type=lb
#重試次數
worker.LB_worker.retries=3
#指定負載的worker列表,用逗號分隔
worker.LB_worker.balance_workers=worker_1,worker_2
#配置session會話是否爲粘性
#這樣負載均衡器lb就會盡量保持一個session,也就是使用戶在一次會話中跟同一個Tomcat進行交互
worker.LB_worker.sticky_session=true
#如果sticky_session設爲true時,此處一般設爲false
worker.LB_worker.sticky_session_force=false
#設置運行狀態的控制器
worker.jkstatus.type=status
d.Apache\conf\目錄下新建文件:uriworkermap.properties,內容如下:
#所有請求都由LB_worker這個worker處理
/*=LB_worker
#所有包含jkstatus請求的都由名稱叫jkstatus的這個worker處理
/jkstatus=jkstatus
#所有以.gif、.jpg等等結尾的請求都不經過名稱叫LB_worker的worker處理
# ! 表示 非 的意思
#!/*.jpg=LB_worker #tomcat不處理圖片,圖片由apache處理.靜態文件放在Apache2.2\htdocs\下,路徑一致就OK