茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1730227 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
Fireball_0027.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

爪哇咖啡屋 : [分享]Servlet + JSP + mysql jdbc + chinese

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15773
[分享]採用 ajp 代理模式配置 Apache + tomcat 實現負載均衡
採用ajp代理模式配置Apache+tomcat實現負載均衡

這一種方法,配置簡單,性能也高。附AJP介紹:

AJP是Apache提供的完成與其它服務器通訊的一種協議。在Apache中通過mod_proxy_ajp模塊發送AJP數據,另外一端的服務器需要實現AJP協議,能夠接受mod_proxy_ajp模塊發送的AJP協議數據,在接受到AJP協議數據後做適當處理,並能夠將處理結果以AJP協議方式發送回給mod_proxy_ajp模塊。

當使用單獨的服務器,在Tomcat實例前端使用本地的Web服務器時,性能要比單獨使用Tomcat及其默認的HTTP連接糟得多,即使web應用程序本身相當一部分是由靜態文件構成。如果需要將Tomcat同本地的Web服務器集成,AJP連接優於代理HTTP,將提供更好的性能。從Tomcat角度來看,AJP是最有效的。它同時具有HTTP相同的功能(When using a single server, the performance when using a native webserver in front of the Tomcat instance is most of the time significantly worse than a standalone Tomcat with its default HTTP connector, even if a large part of the web application is made of static files. If integration with the native webserver is needed for any reason, an AJP connector will provide faster performance than proxied HTTP. AJP clustering is the most efficient from the Tomcat perspective. It is otherwise functionally equivalent to HTTP clustering.)

使用這種協議,具有更高的性能,因為它採用的是二進制傳輸。比HTTP的文本傳輸要有更高的效率。在Apache中要使用mod_proxy和mod_proxy_ajp,在Tomcat中則要開啟ajp服務。

一、前期準備工作:安裝用的程序(前提保證已安裝了JDK1.5以上的版本)
APAHCE 2.2.4

TOMCAT6.0
二、安裝過程
APAHCE安裝目錄:D:\Apache Group\Apache2。
l兩個TOMCAT目錄:自行解壓到(D:\Apache Group\集群服務器\)下。分別為 tomcat6_1,tomcat6_2,這幾個安裝過程就不詳細說明了。

三、配置
1、Apache配置
1.1、httpd.conf配置
修改APACHE的配置文件D:\Apache Group\Apache2\conf\httpd.conf
將以下Module的註釋去掉,這裡並沒有使用mod_jk.so進行apache和tomcat的鏈接,從2.X以後apache自身已集成了mod_jk.so的功能。只需簡單的把下面幾行去掉註釋,就相當於以前用mod_jk.so比較繁瑣的配置了。這裡主要採用了ajp代理的方法,就這麼簡單。

將下面的內容去掉註釋:(其實註釋掉前面三行也就行了,因為採用的是ajp代理)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

再找到加上index.jsp修改成
<IfModule dir_module>
DirectoryIndex index.html index.jsp
</IfModule>

1.1.1、 在最下面加入
ProxyRequests Off
<proxy balancer://cluster>
BalancerMember ajp://127.0.0.1:8109 loadfactor=1 route=jvm1
BalancerMember ajp:// 127.0.0.1:8209 loadfactor=1 route=jvm2
</proxy>

上面的兩個BalancerMember成員是我們配置的tomcat集群,注意上面紅色的端口號,要跟Tomcat1中的server.xml
<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" />

Tomcat2的為
<Connector port="8209" protocol="AJP/1.3" redirectPort="8443" />

1.2、httpd-vhosts.conf設置
接下來進行虛擬主機的設置。APACHE的虛擬主機設置如下:
首先要修改 conf/httpd.conf找到(#Include conf/extra/httpd-vhosts.conf)
把註釋去掉。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
在文件(extra/httpd-vhosts.conf)最下面加入
<VirtualHost *:80>
         ServerAdmin 979398098@qq.com
         ServerName localhost
         ServerAlias localhost
         ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
         ProxyPassReverse / balancer://cluster/
</VirtualHost>

其中的郵箱,域名和路徑根據你自己情況設置
然後再設置TOMCAT虛擬主機

2 配置 tomcat
2.1. 配置 server 的關閉
我們需要在一台機器上跑 2個不同的 tomcat ,需要修改不同的 tomcat 的關閉口,避免出現端口被佔用的情況。其中tomcat6.0用默認值,不修改。其他三個修改。在tomcat6_1\conf, tomcat6_2\conf下的 server.xml 中找到 server, 將:
<Server port="8005" shutdown="SHUTDOWN">
改為
<Server port="XXXX" shutdown="SHUTDOWN">

XXXX 在這裡表示不同的端口:我的兩個個 tomcat 分別使用 8105,8205。

2.2. 配置 Engine
把原來的配置註釋掉,把下面一句去掉註釋。並標明jvmRoute="jvm1".
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">

以下是原來的配置。
<!-- <Engine name="Catalina" defaultHost="localhost">  -->

Tomcat6_2也要同樣配置。注意:jvmRoute配置不要一樣。
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm2">

2.3. 配置 Connector
原來的默認配置。
<!-- Define an AJP 1.3 Connector on port 8009 -->

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

這裡是apache和tomcat鏈接的關鍵(前面有說過),前台apache就是通過AJP協議與tomcat進行通信的,以完成負載均衡的作用。也可以用HTTP協議。大家注意它們是如何連接通信的,上面的紅色部分(port="8009")就是連接的接口了。
我的兩個Tomcat分別設置為8109和8209.

注意 此端口 必須與 httpd.Conf 中相對應的 端口相同
BalancerMember ajp://127.0.0.1:8109 loadfactor=1 route=jvm1

2.5.配置Cluster(每個tomcat中都要修改)
原來的配置。
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

修改為以下的代碼:
<Receiver port=」XX」/>port也要保證唯一性。
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"  channelSendOptions="6">
<Manager className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"  #這裡的地址是D類組播地址,所有的Tomcat必須配置以一樣
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="5001"  #端口保持不能重複
selectorTimeout="100"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>

到這裡,配置完成了,需要測試的話,可採用
http://my.oschina.net/larch/blog/83807
這裡的測試方法,你會發現兩種方式會有所不同。

注意:一定要在工程的web.xml加上,確保Tomcat能夠將session複製。

原文出處:采用ajp代理模式配置Apache+tomcat实现负载均衡 - larch的个人页面
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15773
[分享]apache 使用 mod_proxy 反向代理 tomcat
apache使用mod_proxy反向代理tomcat
2016-12-28 09:01:54
標籤:apache tomcat mod
原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://10927734.blog.51cto.com/10917734/1886752

說明:所使用的操作系統為Centos6.3,準備三台虛擬機,202.207.178.8(做為前端安裝apache,作為代理),node1:202.207.178.6(已經安裝了Tomcat,並可以訪問到其默認頁面,作為後端),node2:202.207.178.7(已經安裝了Tomcat,並可以訪問到其默認頁面,作為後端)

Tomcat相關安裝配置詳見本人博客:http://10927734.blog.51cto.com/10917734/1874112

一、配置後端Tomcat(兩台配置基本相同,為了以示區別,將兩者顯示可設為不同)
1、編輯配置文件,自定義Host,並檢查有無語法錯誤
		# cd /usr/local/tomcat/conf/
		# vim server.xml
		#將引擎的默認主機改為自己定義的主機
			<Engine name="Catalina" defaultHost="www.fsy.com"
              jvmRoute="TomcatA">
		#自定義一個Host
			<Host name="www.fsy.com"  appBase="/web"
				unpackWARs="true" autoDeploy="true">
			 <Context path="" docBase="webapps" reLoadable="true" />
			</Host>
		# catalina.sh configtest

2、提供訪問頁面
		# mkdir -pv /web/webapps
		# cd /web/webapps/
		# vim index.jsp

添加以下內容:
			<%@ page language="java" %>
			<html>
			 <head><title>TomcatA</title></head>
			 <body>
				<h1><font color="red">TomcatA </font></h1>
				<table align="centre" border="1">
				 <tr>
					<td>Session ID</td>
				<% session.setAttribute("abc","abc"); %>
					<td><%= session.getId() %></td>
				 </tr>
				 <tr>
					<td>Created on</td>
					<td><%= session.getCreationTime() %></td>
				</tr>
				</table>
			 </body>
			</html>

3、啟動Tomcat服務,即可進行訪問測試了
		# service tomcat start

http://202.207.178.7:8080/

二、配置前端Apache
1、解決依賴關係
httpd-2.4.4需要較新版本的apr和apr-util,因此需要事先對其進行升級。這裡使用
源碼包進行升級(apr-1.5.2,apr-util-1.5.4 )
(1) 編譯安裝apr
			# tar xf apr-1.5.2.tar.bz2
			# cd apr-1.5.2
			# ./configure --prefix=/usr/local/apr
			# make && make install

(2) 編譯安裝apr-util
			# tar xf apr-util-1.5.4.tar.bz2
			# cd apr-util-1.5.4
			# ./configure --prefix=/usr/local/apr-util
             --with-apr=/usr/local/apr
			# make && make install

(3)httpd-2.4.4編譯過程也要依賴於pcre-devel軟件包,需要事先安裝。
			#yum -y install pcre-devel

(4)可在編譯安裝httpd時會報錯:checking for OpenSSL version >=0.9.7 ...
			#yum -y install openssl-devel
			#yum update openssl

2、如果發現以前使用rpm包裝過httpd的解決辦法(重新安裝一次即可)
		# rpm -e httpd --nodeps
		# rm -rf /etc/httpd/
		# make install

3、編譯安裝httpd-2.4.4
		# tar xf httpd-2.4.4.tar.bz2
		# cd httpd-2.4.4
		#./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so
         --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre
         --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
         --enable-mpms-shared=all --with-mpm=event --enable-proxy
         --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer
         --enable-lbmethod-heartbeat --enable-heartbeat --enable-slotmem-shm
         --enable-slotmem-plain --enable-watchdog
		# make && make install

4、提供SysV服務腳本/etc/rc.d/init.d/httpd,內容如下:
		#!/bin/bash
		#
		# httpd        Startup script for the Apache HTTP Server
		#
		# chkconfig: - 85 15
		# description: Apache is a World Wide Web server.  It is used to serve \
		#	      HTML files and CGI.
		# processname: httpd
		# config: /etc/httpd/conf/httpd.conf
		# config: /etc/sysconfig/httpd
		# pidfile: /var/run/httpd.pid

		# Source function library.
		. /etc/rc.d/init.d/functions

		if [ -f /etc/sysconfig/httpd ]; then
				. /etc/sysconfig/httpd
		fi

		# Start httpd in the C locale by default.
		HTTPD_LANG=${HTTPD_LANG-"C"}

		# This will prevent initlog from swallowing up a pass-phrase prompt if
		# mod_ssl needs a pass-phrase from the user.
		INITLOG_ARGS=""

		# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
		# with the thread-based "worker" MPM; BE WARNED that some modules may not
		# work correctly with a thread-based MPM; notably PHP will refuse to start.

		# Path to the apachectl script, server binary, and short-form for messages.
		apachectl=/usr/local/apache/bin/apachectl
		httpd=${HTTPD-/usr/local/apache/bin/httpd}
		prog=httpd
		pidfile=${PIDFILE-/var/run/httpd.pid}
		lockfile=${LOCKFILE-/var/lock/subsys/httpd}
		RETVAL=0

		start() {
				echo -n $"Starting $prog: "
				LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd                 $OPTIONS
				RETVAL=$?
				echo
				[ $RETVAL = 0 ] && touch ${lockfile}
				return $RETVAL
		}
		stop() {
			echo -n $"Stopping $prog: "
			killproc -p ${pidfile} -d 10 $httpd
			RETVAL=$?
			echo
			[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
		}
		reload() {
			echo -n $"Reloading $prog: "
			if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
				RETVAL=$?
				echo $"not reloading due to configuration syntax error"
				failure $"not reloading $httpd due to configuration syntax                 error"
			else
				killproc -p ${pidfile} $httpd -HUP
				RETVAL=$?
			fi
			echo
		}

		# See how we were called.
		case "$1" in
		 start)
			start
			;;
		 stop)
			stop
			;;
		 status)
				status -p ${pidfile} $httpd
			RETVAL=$?
			;;
		 restart)
			stop
			start
			;;
		 condrestart)
			if [ -f ${pidfile} ] ; then
				stop
				start
			fi
			;;
		 reload)
				reload
			;;
		 graceful|help|configtest|fullstatus)
			$apachectl $@
			RETVAL=$?
			;;
		 *)
			echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
			exit 1
		esac

		exit $RETVAL

5、而後為此腳本賦予執行權限並加入服務列表,便可啟動服務了!:
		# chmod +x /etc/rc.d/init.d/httpd
		# chkconfig --add httpd
		# service httpd start

6、配置apache通過mod_proxy模塊與Tomcat連接(代理至202.207.178.7)
要使用mod_proxy與Tomcat實例連接,需要apache已經裝載mod_proxy、mod_proxy_http、mod_proxy_ajp和proxy_balancer_module
(實現Tomcat集群時用到)等模塊
(1)查看上述模塊是否已經裝載:
			# /usr/local/apache/bin/httpd -D DUMP_MODULES | grep  proxy
			proxy_module (shared)
			proxy_connect_module (shared)
			proxy_ftp_module (shared)
			proxy_http_module (shared)
			proxy_fcgi_module (shared)
			proxy_scgi_module (shared)
			proxy_ajp_module (shared)
			proxy_balancer_module (shared)
			proxy_express_module (shared)

(2)修改主配置文件
			# vim /etc/httpd/httpd.conf
				註釋中心主機:
					#DocumentRoot "/usr/local/apache/htdocs"
				添加虛擬主機相關的內容:
					Include /etc/httpd/extra/httpd-proxy.conf
				添加pid文件:
					PidFile "/var/run/httpd.pid"

(3)添加從配置文件:
			# vim /etc/httpd/extra/httpd-proxy.conf
				<VirtualHost *:80>
					ProxyVia On
					ProxyRequests Off
					ProxyPass / http://202.207.178.7:8080/
					ProxyPassReverse / http://202.207.178.7:8080/
					<Proxy *>
							Require all granted
					</Proxy>
					<Location  / >
							Require all granted
					</Location>
				</VirtualHost>

(4)啟動httpd服務
			# service httpd restart

啟動報錯,查看/usr/local/apache/logs/error_log發現報錯,需要啟動兩個模塊
			# vim /etc/httpd/httpd.conf
	    LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
		  LoadModule socache_shmcb_modulemodules/mod_socache_shmcb.so

訪問http://202.207.178.8/,可以訪問到後端!

7、配置apache通過mod_proxy模塊與Tomcat連接,實現負載均衡
(1)修改從配置文件,改為以下內容
			# vim /etc/httpd/extra/httpd-proxy.conf
				ProxyRequests Off
				<proxy balancer://lbcluster1>
			BalancerMember ajp://202.207.178.6:8009 loadfactor=10 route=TomcatA
			BalancerMember ajp://202.207.178.7:8009 loadfactor=10 route=TomcatB
			ProxySet lbmethod=byrequests
				</proxy>
				<VirtualHost *:80>
						#沒啥用,可以不定義
						ServerName localhost
						ProxyVia On
						ProxyPass / balancer://lbcluster1/
						ProxyPassReverse / balancer://lbcluster1/
						<Proxy *>
								Require all granted
						</Proxy>
						<Location  / >
								Require all granted
						</Location>
				</VirtualHost>

訪問http://202.207.178.8/,可以訪問到後端,並實現負載均衡!

8、提供後端狀態頁面
(1)修改配置文件,在虛擬主機中添加以下內容
			# vim /etc/httpd/extra/httpd-proxy.conf
			       <Location /balancer-manager>
					SetHandler balancer-manager
					Proxypass !
					Require all granted
					</Location>

(2)重啟服務,即可訪問測試了
http://202.207.178.8/balancer-manager,可以訪問到一個狀態頁面

原文出處:apache使用mod_proxy反向代理tomcat - 10917734 - 51CTO技术博客
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15773
[分享]CentOS Linux 7 安裝 Apache 2 與 Tomcat 8 伺服器步驟教學,透過 Proxy 整合

CentOS Linux 7 安裝 Apache 2 與 Tomcat 8 伺服器步驟教學,透過 Proxy 整合

這裡記錄我在 CentOS Linux 中安裝 Apache2 與 Tomcat8 伺服器的指令以及整合設定步驟。

Tomcat 配合 Apache 網頁伺服器,可以讓一台機器同時提供 Java 與 PHP 的執行環境,以下是在 CentOS Linux 中安裝 Apache 2 與 Tomcat 8 的步驟。

安裝 Apache 網頁伺服器

yum 安裝 Apache 網頁伺服器:

sudo yum install httpd

將 Apache 伺服器設定為開機自動啟動:

sudo systemctl enable httpd.service

立即啟動 Apache 伺服器:

sudo systemctl start httpd.service

檢查 Apache 伺服器的狀態:

sudo systemctl status httpd.service

HTTPS 加密網頁

若要讓 Apache 伺服器提供 HTTPS 安全加密網頁,可以安裝 nss 模組:

sudo yum install mod_nss

編輯 nss 模組的 /etc/httpd/conf.d/nss.conf 設定檔,把預設的 8443 連接埠改為標準的 443


#
# When we also provide SSL we have to listen to the
# standard HTTP port (see above) and to the HTTPS port
#
# Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
# Listen directives: "Listen [::]:8443" and "Listen 0.0.0.0:443"
#
Listen 443
# [略]
##
## SSL Virtual Host Context
##
>

其餘的設定則依照自己的需求修改。接著重新啟動 Apache 伺服器,讓設定生效:

sudo systemctl restart  httpd.service

安裝完成後,請開啟瀏覽器,輸入伺服器的網址,檢查網頁是否正常,正常來說可以看到 Apache 的測試網頁。

安裝 Tomcat 伺服器

首先用 yum 安裝 Java SDK 1.8:

sudo yum install java-1.8.0-openjdk-devel

新增 tomcat 使用者群組:

sudo groupadd tomcat

新增 tomcat 使用者帳號:

sudo useradd -d /opt/tomcat tomcat

由於 tomcat 這個帳號是專門用來執行 Tomcat 服務的帳號,所以不會有登入系統使用的情況,因此可將其登入的 shell 設定為 /bin/nologin,禁止該帳號登入,以增加系統安全性。

-d 是設定帳號的家目錄,這裡的 /opt/tomcat 就是等一下我們要安裝 Tomcat 的路徑,如果您想要把 Tomcat 安裝在不同的位置,可以自行修改這個路徑。

設定完 tomcat 帳號之後,接著就可以安裝 Tomcat 伺服器,首先從 Tomcat 官方網站下載 Tomcat 8 的 Binary Distributions:

wget http://ftp.twaren.net/Unix/Web/apache/tomcat/tomcat-8/v8.5.6/bin/apache-tomcat-8.5.6.tar.gz

建立安裝 Tomcat 的目錄,這裡我們將 Tomcat 安裝在
/opt/tomcat 中,首先建立這個目錄:

sudo mkdir /opt/tomcat

將 Tomcat 8 的壓縮檔解壓縮至該目錄中:

sudo tar xvf apache-tomcat--strip-components=1

設定檔案權限:


cd /opt/tomcat
sudo chgrp -R tomcat *
sudo chmod g+rwx conf
sudo chmod g+r conf/*

有些目錄需要讓 Tomcat 寫入資料,必須將目錄的擁有者改為 tomcat

sudo chown -R tomcat webapps/ work/ temp/ logs/

建立 /etc/systemd/system/tomcat.service 這個 Systemd 的設定檔:

sudo vi /etc/systemd/system/tomcat.service

檔案內容如下:


# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
15 $MAINPID
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target

存檔之後,要重新載入 Systemd,讓新的 Tomcat 設定檔生效:

sudo systemctl daemon-reload

將 Tomcat 伺服器設定為開機自動啟動:

sudo systemctl enable tomcat

立即啟動 Tomcat 服務:

sudo systemctl start tomcat

整合 Apache 與 Tomcat 伺服器

正常來說 Apache 的網頁伺服器會使用 80 連接埠,而 Tomcat 會使用 8080,如果不想要使用連接埠來區分 Apache 與 Tomcat,可以透過 Apache 的 Proxy 設定,將某些網頁路徑導向至 Tomcat 伺服器,而對外則統一使用標準的 80 連接埠,而加密的 HTTPS 網頁則使用 443,這樣可以讓網址看起來比較漂亮,不會多出連接埠號。

Apache 的 proxy 模組可以讓外部的連線從 Apache 導向至內部的 Tomcat 伺服器,這裡我示範將 HTTPS 加密的所有連線都預設導向至 Tomcat,而 /static/ 這個路徑下的網頁則維持不變(由 Apache 處理)。

編輯 /etc/httpd/conf.d/nss.conf 設定檔,在 <VirtualHost> 的設定中加入:


ProxyPass /static/ !
ProxyPassReverse /static/ !
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/

這裡的 ajp://localhost:8009/ 是 Tomcat 內部用的位址,這個設定可讓 Apache 透過 AJP 協定將來自外部的連線導向至 Tomcat 伺服器。

設定檔修改之後,重新啟動 Apache 伺服器,讓新設定生效:

systemctl restart  httpd.service

接下來開啟一般的 HTTPS 加密網頁,就會直接顯示 Tomcat 伺服器的內容,而如果是在 /static/ 路徑下的網頁則會由 Apache 處理,像是 PHP 或靜態的 HTML、CSS 與 JavaScript 等檔案就可以放在這裡。

參考資料: antoine hordezDigitalOceanHostPresto


原文出處:CentOS Linux 7 安裝 Apache 2 與 Tomcat 8 伺服器步驟教學,透過 Proxy 整合 - G. T. Wang*/
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|