Apache 與 Tomcat 配置
Apache 配置(Linux)
-
安裝
sudo apt-get install apache2
安裝結(jié)束后, apache2 的各個(gè)組成部分被安裝在5個(gè)地方
- 配置文件的位置:/etc/apache2
- lib文件的位置:/usr/lib
- 啟動(dòng)文件的位置:/etc/init.d/apache2
- 網(wǎng)頁(yè)存放位置:/var/www
- 軟件所在位置:/usr/share/apache2
產(chǎn)生的啟動(dòng)和停止文件是:/etc/init.d/apache2
啟動(dòng):/etc/init.d/apache2 start 或者 apache2ctl start
關(guān)閉:/etc/init.d/apache2 stop 或者 apache2ctl stop
重啟:/etc/init.d/apache2 restart 或者 apache2ctl restart -
概念
ServerAdmin: 網(wǎng)站的管理員的郵箱
DocumentRoot: 虛擬主機(jī)的主目錄,也就是訪(fǎng)問(wèn)這個(gè)虛擬主機(jī)所打開(kāi)的那個(gè)目錄,這個(gè)目錄你可以自己去指定影所,要注意的是僚碎,你需要先去創(chuàng)建這個(gè)目錄勺阐,然后再在這里去指定這個(gè)目錄的位置。
ServerName: 主機(jī)名蟆豫,比如之前我們虛擬的那個(gè)主機(jī)名 hello.com
ServerAlias: 主機(jī)的別名十减,你可以指定一個(gè)其它的主機(jī)名愤估,訪(fǎng)問(wèn)它的時(shí)候也會(huì)打開(kāi)這個(gè)虛擬主機(jī)的目錄里的東西玩焰。
ErrorLog: 錯(cuò)誤的日志,也就是發(fā)生錯(cuò)誤的時(shí)候蔓榄,會(huì)把錯(cuò)誤記錄到哪個(gè)文件里润樱。
CustomLog: 虛擬主機(jī)訪(fǎng)問(wèn)的日志。 -
配置
apache2.conf 是主配置文件嗅钻,httpd.conf 用戶(hù)配置文件
首先在修改
/etc/apache2/sites-available/default
, 將端口改為 8081(自定義), 當(dāng)然如果默認(rèn)的 80 端口沒(méi)有被占用养篓,也可以不修改赂蕴。
然后修改/etc/apache2/ports.conf
NameVirtualHost *:8081 Listen 8081
然后在
/etc/apache2/httpd.conf
中添加Servername 127.0.0.1:8081
運(yùn)行
sudo apache2ctl start
打開(kāi)瀏覽器輸入網(wǎng)址訪(fǎng)問(wèn)
http://localhost:8081
個(gè)人見(jiàn)解
在 /etc/apache2 中存在兩個(gè)文件夾 sites-available 和 sites-enabled.
sites-available 是所有的供使用的配置(包括自己的配置也要放在里面),而要使某個(gè)配置概说,就要將它放在sites-enabled糖赔,我們可以做個(gè)軟鏈接,使用 ln -s
在配置文件里面使用的端口逝变,還要在 ports.conf 中配置下, 例如
NameVirtualHost *:8081
Listen 8081
新建自己的網(wǎng)站
-
創(chuàng)建一個(gè)存放網(wǎng)站的文件夾
要鏈接網(wǎng)頁(yè)首先需要在/var/www 中創(chuàng)建自己的網(wǎng)頁(yè)壳影,此處(/var/www)已經(jīng)有一張默認(rèn)的網(wǎng)頁(yè)index.html弥臼。也就是apache2啟動(dòng)后默認(rèn)的那張It works醋火。
mkdir wsclient
cp /usr/my.html . -
配置文件
打開(kāi)apache配置文件夾,我們會(huì)發(fā)現(xiàn)在這下面有兩個(gè)名為 sites-available和sites-enabled的文件夾柿冲。
首先在 sites-available 中 copy 一份默認(rèn)的 default假抄,并命名為 wsclient,修改內(nèi)容如下<VirtualHost *:8083> ServerAdmin webmaster@localhost DocumentRoot /var/www/wsclient <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
修改的內(nèi)容有
VirtualHost *:8083
和DocumentRoot /var/www/wsclient
,分別代表端口和網(wǎng)站目錄强饮。
接著在 sites-enable 做一個(gè) wsclient 的軟鏈接cd ../sites-enabled ln -s ../sites-abailable/wsclient wsclient
最后为黎,在端口配置文件中配置下端口铭乾。
vim ports.conf
增加
NameVirtualHost *:8083 Listen 8083
-
成功
打開(kāi)瀏覽器炕檩,輸入 http://localhost:8083 即可看到咱的網(wǎng)站,歡呼吧泉沾。
apache 不支持 java web经瓷, 所以要結(jié)合 tomcat
Apache是http服務(wù)器舆吮,我們利用其對(duì)Tomcat進(jìn)行負(fù)載均衡
Tomcat 配置 (Linux)
-
下載
去官網(wǎng)將軟件包下載下來(lái)
-
解壓
tar -zxv -f apache-tomcat-7.0.54.tar.gz apache-tomcat-7.0.54
-
移動(dòng)
sudo mv apache-tomcat-7.0.54 /usr/local/
-
環(huán)境變量
vi /etc/profile
在最后面添加
export JAVA_HOME=/usr/lib/jvm/java-7-oracle export JRE_HOME=/usr/lib/jvm/java-7-oracle/jre export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-
修改端口
如果默認(rèn)
8080
端口被占用色冀,就需要修改端口锋恬。修改
/etc/tomcat7/server.xml
编丘,修改部分內(nèi)容如下<Connector port="8082" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
-
運(yùn)行
/usr/local/apache-tomcat-7.0.54/bin/startup.sh
-
停止
/usr/local/apache-tomcat-7.0.54/bin/shutdown.sh
將 apache 與 tomcat 整合(Linux)
使用mod_jk2連接器
下載
登錄 http://tomcat.apache.org/connectors-doc/
下載源碼嘉抓。
編譯生成 mod_jk
想要編譯 mod_jk 需要先安裝 apxs2
采用 sudo apt-get install apache 安裝apache服務(wù),不會(huì)自帶apxs(apache extension tool [apache擴(kuò)展模塊的工具抑片,例如$apxs -i -a -c mod_foo.c]),需安裝 apache2-dev
sudo apt-get insall apache2-dev
可以找到 apxs2 被安裝在 /usr/bin/apxs2 /usr/bin/X11/apxs2 /usr/share/man/man1/apxs2.1.gz
接下來(lái)編譯 mod_jk
tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
cd jakarta-tomcat-connectors-1.2.15-src/jk/native
./configure --with-apxs=/usr/bin/apxs2
make
make install
## cp ./apache-2.0/mod_jk.so /usr/lib/apache2/modules/
apache 文件配置
該方法使用運(yùn)行于現(xiàn)有的Apache httpd Web服務(wù)器之內(nèi)的連接器模塊(如mod_jk),并經(jīng)由特定的協(xié)議快速地將請(qǐng)求轉(zhuǎn)送至Tomcat截汪。這是將Tomcat連接至Apache httpd的標(biāo)準(zhǔn)方式衙解。
-
修改Apache配置文件httpd.conf
include "/etc/apache2/mod_jk.conf"
-
在httpd.conf 同目錄下新建mod_jk.conf文件
#加載mod_jk Module LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so #指定 workers.properties文件路徑 JkWorkersFile workers.properties #指定哪些請(qǐng)求交給tomcat處理,"controller"為在workers.propertise里指定的負(fù)載分配控制器名 JkMount /* controller
-
在httpd.conf同目錄下新建 workers.properties文件
本來(lái)該配置文件是配置了兩臺(tái) tomcat 服務(wù)器蚓峦,但是為了簡(jiǎn)單,將配置文件修改為 1 個(gè) tomcat(不適用的配置進(jìn)行了注釋?zhuān)?/p>
#這里可以配置任意多個(gè)Tomcat架诞,此處配置了2個(gè)Tomat服務(wù)器. #host和port根據(jù)自己實(shí)際配置.實(shí)例配置的是本機(jī)兩個(gè)tomcat,分別使用不同的端口.避免沖 突 #如果Tomcat不再同一機(jī)器上谴忧,沒(méi)必要改端口的角虫。 #server 列表 #worker.list=controller,tomcat1,tomcat2 worker.list=controller,tomcat1 #========tomcat1======== worker.tomcat1.port=8088 #ajp13 端口號(hào)戳鹅,在tomcat下server.xml配置,默認(rèn)8009 worker.tomcat1.host=localhost #tomcat的主機(jī)地址枫虏,如不為本機(jī),請(qǐng)?zhí)顚?xiě)ip地址 worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor=1 #server的加權(quán)比重腾它,值越高瞒滴,分得的請(qǐng)求越多 #========tomcat2======== #worker.tomcat2.port=9999 #ajp13 端口號(hào)赞警,在tomcat下server.xml配置,默認(rèn)8009 #worker.tomcat2.host=localhost #tomcat的主機(jī)地址愧旦,如不為本機(jī),請(qǐng)?zhí)顚?xiě)ip地>址 #worker.tomcat2.type=ajp13i #worker.tomcat2.lbfactor=1 #server的加權(quán)比重搁廓,值越高境蜕,分得的請(qǐng)求越多 #========controller,負(fù)載均衡控制器======== worker.controller.type=lb #指定此負(fù)載平衡器負(fù)責(zé)的Tomcat應(yīng)用節(jié)點(diǎn)。 #worker.controller.balanced_workers=tomcat1,tomcat2 #指定分擔(dān)請(qǐng)求的tomcat worker.controller.balanced_workers=tomcat1 #指定分擔(dān)請(qǐng)求的tomcat #此處指定集群是否需要會(huì)話(huà)復(fù)制售滤,如果設(shè)為true完箩,則表明為會(huì)話(huà)粘性弊知,不進(jìn)行會(huì)話(huà)復(fù)制粱快,>當(dāng)某用戶(hù)的請(qǐng)求第一次分發(fā)到哪臺(tái) #Tomcat后事哭,后繼的請(qǐng)求會(huì)一直分發(fā)到此Tomcat服務(wù)器上處理;如果設(shè)為false降盹,則表明需求 會(huì)話(huà)復(fù)制蓄坏。 worker.controller.sticky_session=false #設(shè)為false丑念,則表明需求會(huì)話(huà)復(fù)制渠欺。
Tomcat 文件配置
-
修改分發(fā)tomcat對(duì)應(yīng)的service.xml文件,保證Apache對(duì)應(yīng)的 workers.properties中的AJP13的connector的port.
<!-- 定義一個(gè)AJP 1.3 連接端口為9988 ,默認(rèn)值為8009,這里我們改成我們自己定義的8088端口 --> <!--<Connector port="8088" protocol="AJP/1.3" redirectPort="8443" />--> <!-- 發(fā)現(xiàn)使用上面一句挠将,打開(kāi)的端口(這里指9087)會(huì)出現(xiàn)time_wait编整,然后不久會(huì)自動(dòng)關(guān)閉掌测,因此,使用下面的語(yǔ)句解決該問(wèn)題 --> <Connector port="9087" protocol="AJP/1.3" redirectPort="8443" executor="tomcatThreadPool" />
-
增加jvmRoute的值,保證同workers.properties里邊配置的值一致
<!--增加jvmRoute,值為在Apache中配置的list集群結(jié)點(diǎn)中的值,這里定義為tomcat1結(jié)點(diǎn)--> <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
-
去掉默認(rèn)注釋掉的集群配置
<!--取消集群結(jié)點(diǎn)相關(guān)的注釋,該句默認(rèn)值注釋掉的,我們需要配置集群所以去掉注釋,讓其起作用--> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
如果我們的tomcat結(jié)點(diǎn)分布在不同的機(jī)器上,那么我們的集群至此已經(jīng)配置完成.去掉多余注釋,顯示做了修改的部位
說(shuō)明: 這里的protocol="AJP/1.3",連接以及jvmRoute需要保證同我們?cè)贏pache服務(wù)器中配置的works.properties一致.修改完后最好將service.xml文件的編碼設(shè)置為utf-8格式.否則可能tomcat啟動(dòng)會(huì)出錯(cuò).
-
實(shí)例中我們的兩個(gè)tomcat結(jié)點(diǎn)在同一臺(tái)機(jī)器上,所以還需要保證protocol="HTTP/1.1"的端口不一致.不然本地的兩個(gè)tomcat會(huì)起沖突
下面為筆者實(shí)例中解決同一臺(tái)機(jī)器上多個(gè)tomcat服務(wù)器之間端口沖突做的修改.
Tomcat--node1
Tomcat-node2
<Server port="9995" shutdown="SHUTDOWN"> …… <Connector port="9990" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ……
說(shuō)明:這里的protocol="HTTP/1.1"配置的相關(guān)端口之間不能沖突,而且也不能同本機(jī)其它應(yīng)用程序占用的端口沖突.否則可能會(huì)報(bào)錯(cuò).
失敗
在 httpd.conf 中添加以下代碼成功
<VirtualHost *>
ServerAdmin localhost
DocumentRoot /var/www/
ServerName localhost
DirectoryIndex index.html index.htm index.jsp index.action
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /*WEB-INF controller
JkMount /*.action controller
JkMount /servlet/* controller
JkMount /*.jsp controller
JkMount /*.do controller
JkMount /*.action controller
</VirtualHost>
經(jīng)測(cè)試,在網(wǎng)站配置文件,即在 sites-available 中配置同樣生效屎即。
<VirtualHost *:8083>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ServerName localhost
DirectoryIndex index.html index.htm index.jsp index.action
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
#JkMount /*WEB-INF controller
#JkMount /*.action controller
#JkMount /servlet/* controller
##JkMount /*.jsp controller
#JkMount /*.do controller
#JkMount /*.action controller
JkMount /* controller
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
失敗后
sudo servicae apache reload
發(fā)現(xiàn)端口 time-wait
過(guò)一段時(shí)間被關(guān)閉, 可以換個(gè)端口技俐,或者看看 tomcat 中是不是有類(lèi)似的這樣的一句:
<Connector port="9087" protocol="AJP/1.3" redirectPort="8443" executor="tomcatThreadPool" />
查看端口方法
netstat -anp | grep 9087
實(shí)例測(cè)試
sudo service apache2 start 提示開(kāi)啟
Win 上整合 IIS 與 Tomcat
Win上使用的服務(wù)器大多是 IIS雕擂, 為了讓 IIS 支持 JAVA井赌,需要將 整合 IIS 與 Tomcat募寨。
下載安裝 isapi_redirect
下載后拔鹰,雙擊安裝安裝向?qū)О惭b。默認(rèn)是安裝路徑為 C:\Program Files (x86)\Apache Software Foundation\Jakarta Isapi Redirector
設(shè)置IIS
右鍵 IIS 中的 Default Web Site, 選擇
添加虛擬目錄
恰画。
別名:jakarta
(一定要一致).
物理路徑:C:\Program Files (x86)\Apache Software Foundation\Jakarta Isapi Redirector\bin
(isapi_redirect 安裝目錄的 bin 目錄, 根據(jù)自身情況而定)-
選中服務(wù)器
在右面面板找到拴还,點(diǎn)擊進(jìn)入
選擇添加片林,設(shè)置
ISAPI 或 CGI 路徑
:C:\Program Files (x86)\Apache Software Foundation\Jakarta Isapi Redirector\bin\isapi_redirect.dll
(視自身情況而定费封,這里是指isapi_redirect.dll的路徑)描述隨意: 可以輸入
isapi_redirect.dll
勾選允許執(zhí)行擴(kuò)展路徑
-
選中
jakarta
在右邊面板中找到
右邊找到 添加腳本映射
填入下面內(nèi)容, 其中可執(zhí)行文件還是之前的 isapi_redirect.dll
文件路徑:
修改配置文件
修改 workers.properties.minimal
該文件位于 C:\Program Files (x86)\Apache Software Foundation\Jakarta Isapi Redirector\conf
(視自身而定)
修改內(nèi)容如下:
# workers.properties.minimal -
#
# This file provides minimal jk configuration properties needed to
# connect to Tomcat.
#
# The workers that jk should create and work with
#
worker.list=wlb,jkstatus
#
# Defining a worker named ajp13w and of type ajp13
# Note that the name
and the type do not have to match.
#
worker.jkstatus.port=9009
worker.jkstatus.host=localhost
worker.jkstatus.type=ajp13
worker.jkstatus.lbfactor=1
#
# Defining a load balancer
#
worker.wlb.type=lb
worker.wlb.balance_workers=jkstatus
修改 uriworkermap.properties
該文件位于 C:\Program Files (x86)\Apache Software Foundation\Jakarta Isapi Redirector\conf
(視自身而定)
修改內(nèi)容如下:
# uriworkermap.properties - IIS
#
# This file provides sample mappings for example wlb
# worker defined in workermap.properties.minimal
# The general syntax for this file is:
# [URL]=[Worker name]
/admin/*=wlb
/manager/*=wlb
/jsp-examples/*=wlb
/servlets-examples/*=wlb
# Optionally filter out all .jpeg files inside that context
# For no mapping the url has to start with exclamation (!)
!/servlets-examples/*.jpeg=wlb
#
# Mount jkstatus to /jkmanager
# For production servers you will need to
# secure the access to the /jkmanager url
#
/jkmanager=jkstatus
/try/*=wlb
/*.jsp=wlb
注冊(cè)表
新建一個(gè)文件痕届,后綴名為 .reg
(表示注冊(cè)表文件),寫(xiě)入以下內(nèi)容:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Jakarta Isapi Redirector/1.0]
"log_file"="C:\\tomcat8\\logs\\isapi.log"
"log_level"="debug"
"worker_file"="C:\\Program Files (x86)\\Apache Software Foundation\\Jakarta Isapi Redirector\\conf\\workers.properties"
"worker_mount_file"="C:\\Program Files (x86)\\Apache Software Foundation\\Jakarta Isapi Redirector\\conf\\uriworkermap.properties"
"tomcat_start"="C:\\tomcat8\\bin\\tomcat.bat start"
"tomcat_stop"="C:\\tomcat8\\bin\\tomcat.bat stop"
"extension_uri"="/jakarta/isapi_redirect.dll"
根據(jù)自己的電腦修改上面的文件,保存璧针。雙擊運(yùn)行即可設(shè)置好注冊(cè)表陈莽。
配置 Tomcat
修改 [Tomcat安裝目錄](méi)/conf/server.xml
虽抄。
-
找到類(lèi)似下面的一句(引號(hào)內(nèi)的內(nèi)容可以不一樣迈窟,一般是被注釋的),取消注釋?zhuān)⑿薷娜缦?/p>
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443"/>
-
找到下面一句
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
取消注釋并修改如下
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jkstatus">
-
找到下面一句,取消注釋
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
啟動(dòng)服務(wù)
分別啟動(dòng) iis 和 tomcat 服務(wù)曲稼,保證他們都能單獨(dú)運(yùn)行
測(cè)試
新建一個(gè) jsp 項(xiàng)目項(xiàng)目贫悄,放入 tomcat 的 webapps 目錄下娘摔,重啟 tomcat凳寺。
在瀏覽器中輸入 網(wǎng)址,例如 http://localhost/try/index.jsp