歡迎您光臨本站 註冊首頁

linux apache反向代理 tomcat

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
公司添加項目,需要架設環境,當時考慮用的nginx轉發tomcat,可是分公司那邊不會用nignx,只有用apache

反向代理
tomcat 虛擬主機,由於是頭一次用 apache 做反向,tomcat集群,特留下過程,方便他人 在網上找了好多文章,其中為經典的我都摘抄了 Apache HTTP server

Tomcat server 整合,一般是希望對於用戶只公布 Apache HTTP server 的網址,而 Tomcat 的網址則不公布,扮演一個幕後英雄的角色.訪問 Tomcat HTTP

請求,通過
Apache 轉發給 Tomcat,Tomcat 處理完后,將 HTTP 回應返回給 Apache,然後 Apache HTTP

回應發回給用戶端瀏覽器. Apache HTTP server Tomcat server 直接的 HTTP 數據傳輸,有很多種方法. 方法一,使用 mod_jk

.很多網站上介紹到
Apache HTTP server Tomcat server 整合的時候,都是在介紹 mod_jk.so 的使用,這是一種比較老的方法,並且需要額外下載 mod_jk.Apache

Tomcat
的默認配置文件都需要改動. 方法二, URL rewrite,也就是對於指定格式的 URL,轉發給某個 Tomcat 的網址.這裡所說的指定格式,是指 Apache 所使用的正則表達式,通俗地將,是一種類似

* 的一種比較高級通配符.這種方法不需要下在額外的文件,只需要配置 Apache. 方法三,mod_proxy_ajp,僅在 Apache 2.1 及以後的版本中可用,Apache

自帶的一個新功能模塊.這時
Apache 使用 Apache JServ Protocol Tomcat 通訊.不需要下在額外的文件,需要改動Apache Tomcat 的默認配置文件都需要改動.

方法四,
mod_proxy.其實 mod_proxy 既可以做類似於 Wingate 一樣的公司區域網共享上網代理,也可以做反向代理(Reverse proxy).這裡使用的是反向代理功能,用戶端瀏覽器不需要把代理伺服器改成這裡的 Apache 地址.

mod_proxy Apache 自帶功能,並且配置比較簡單.

yum install gcc –y

wget http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.2.17.tar.gz

wget http://www.oracle.com/technetwork/indexes/downloads/index.html

wget http://labs.renren.com/apache-mirror/tomcat/tomcat-7/v7.0.8/bin/apache-tomcat-7.0.8.tar.gz

我是用一台伺服器 做的 環境如下

Centos 5.5 64

16cpu 32G 內存

Apache tomcat (開啟四個埠)

#ar zxvf http-2.2.17.tar.gz #d httpd-2.2.17

#/configure --prefix=/usr/local/apache --enable-modules=so --enable-mods-shared=all --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer --enable-rewrite #make ; make install #cp support/apachectl /etc/init.d/httpd #chmod 755 /etc/init.d/httpd #vim /etc/init.d/httpd #chconfig –add httpd #chkconfig –level 345 httpd on cd .. chmod x jdk-x64.bin #

添加執行許可權
./jdk-x64.bin #安裝jdk mv jdk1.6.0_23/ /usr/java vim /etc/profile # 添加java環境變數

#Java Environment
JAVA_HOME=/usr/java JAVA_BIN=/usr/java/bin PATH=$PATH:$JAVA_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME JAVA_BIN PATH CLASSPATH source /etc/profile #java –version java version "1.6.0_23" Java(TM) SE Runtime Environment (build 1.6.0_23-b05) Java HotSpot(TM) 64-Bit Server VM (build 19.0-b09, mixed mode)

#tar zxvf apache-tomcat-7.0.8.tar.gz #mv apache-tomcat-7.0.8 /usr/local/tomcat73 #vim /etc/profile # 添加tomcat 環境變數 TOMCAT_HOME=/usr/local/tomcat73 CATALINA_HOME=/usr/local/tomcat73 CATLINA_BASE=/usr/local/tomcat73

/usr/local/tomcat73/bin/catalina.sh start #添加啟動腳本 export TOMCAT_HOME CATALINA_HOME CATALINA_BASH TOMCAT_BIN #source /etc/profile

LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule rewrite_module modules/mod_rewrite.so apache 虛擬主機前邊的# 去掉 Include conf/extra/httpd-vhosts.conf

添加 Include conf/extra/httpd-vhosts.conf 如下 <VirtualHost *80> ServerAdmin crazylinux@163.com ProxyRequests Off Proxypass / balancer://proxy/ <Proxy balancer://proxy>

Order Deny,Allow Allow from all BalancerMember http://127.0.0.1:8844 #tomcat (要用的埠,預設值的

可以隨便設置)
BalancerMember http://127.0.0.1:8855 #tomcat BalancerMember http://127.0.0.1:8866 #tomcat

BalancerMember http://127.0.0.1:8877 #tomcat
</Proxy> </VirtualHost> 保存修改 啟動apache

服務
#/usr/local/apache/bin/apachectl -k start 修改 tomcat ,添加虛擬主機 按埠走 8844 8855 8866 8877 按照預設值的

#vim /usr/local/tomcat73/conf/server.xml 只修改紅色字體 <Service name="Catalina0"> <Connector port="8044" protocol="AJP/1.3" redirectPort="8443" /> <Connector port="8844" /> <Engine name="Catalina0" defaultHost="localhost" jvmRoute="jvm1"> <Logger className="org.apache.catalina.logger.FileLogger" />

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase" /> <Host name="localhost" appBase="webapps0" /> </Engine> </Service> <Service name="Catalina1"> <Connector port="8055" protocol="AJP/1.3" redirectPort="8443" /> <Connector port="8855" />

<Engine name="Catalina1" defaultHost="localhost" jvmRoute="jvm2">
<Logger className="org.apache.catalina.logger.FileLogger" /> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" /> <Host name="localhost" appBase="webapps1" /> </Engine> </Service>

<Service name="Catalina2">
<Connector port="8066" protocol="AJP/1.3" redirectPort="8443" /> <Connector port="8866" /> <Engine name="Catalina2" defaultHost="localhost" jvmRoute="jvm3"> <Logger className="org.apache.catalina.logger.FileLogger" /> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" /> <Host name="localhost" appBase="

webapps2" />
</Engine> </Service> <Service name="Catalina3"> <Connector port="8077" protocol="AJP/1.3" redirectPort="8443" /> <Connector port="8877" /> <Engine name="Catalina3" defaultHost="localhost" jvmRoute="jvm4"> <Logger className="org.apache.catalina.logger.FileLogger" />

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase" /> <Host name="localhost" appBase="webapps3" /> </Engine> </Service> 然後 創建

tomcat web
目錄在/usr/local/tomcat73/ webapps0 webapps1 webapps2 webapps3 並在每個目錄裡面添加 index1.jsp 並添加 每個埠的對應號

啟動
tomcat #/usr/local/tomcat73/bin/start.sh #/usr/local/apache/bin/apachetl –k restart 查看埠 netsant –ntlp [root@localhost tomcat73]# netstat -ntlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:964 0.0.0.0:* LISTEN 2902/rpc.statd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2849/portmap tcp 0 0 127.0.0.1:631 0.0.0.0:*

LISTEN 3155/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3178/sendmail: acce tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 11977/1 tcp

0 0 :::8866 :::* LISTEN 15836/java
tcp 0 0 :::8066 :::* LISTEN 15836/java tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 15836/java

tcp 0 0 :::8009 :::* LISTEN 15836/java tcp 0 0 :::8844 :::* LISTEN 15836/java tcp 0 0 :::8044 :::*

LISTEN 15836/java
tcp 0 0 :::8877 :::* LISTEN 15836/java tcp 0 0 :::8077 :::* LISTEN 15836/java tcp

0 0 :::80 :::* LISTEN 15987/httpd
tcp 0 0 :::8080 :::* LISTEN 15836/java tcp 0 0 :::22 :::* LISTEN

25432/sshd
tcp 0 0 :::8855 :::* LISTEN 15836/java tcp 0 0 :::8055 :::* LISTEN 15836/java tcp 0 0 ::1:6010

:::* LISTEN 11977/1
看到了 80 8844 8855 8866 8877 tomcat

虛擬主機
apache都啟動了 訪問下試試吧

本文出自 「奮鬥的小子」 博客,請務必保留此出處http://crazyming.blog.51cto.com/1048571/503637


[火星人 ] linux apache反向代理 tomcat已經有721次圍觀

http://coctec.com/docs/linux/show-post-49245.html