官方站點:http://tomcat.apache.org/
Tomcat是一個能夠運行java頁面(jsp)的java’web服務器程序;安裝使用之前需要先安裝jdk包
jdk是JAVA的開發工具包,已隨base收錄進來,安裝jdk1.8版本:yum -y install java-1.8.0-openjdk-devel (其中jvm虛擬機的運行程序就叫java),安裝完路徑:/usr/bin/java;接下來讓系統輸出一個java的環境變量,讓所有應用程序知道到哪找java:echo “export JAVA_HOME=/usr” > /etc/profile.d/java.sh (保存在文件內永久有效),然后重載生效:source /etc/profile.d/java.sh
Tomcat也隨yum的base倉庫收錄進來,目前為7版本,安裝:yum install tomcat tomcat-webapps tomcat-admin-webapps -y (確保你的jdk包也安裝完成了)其中主配置文件:/etc/tomcatserver.xml;默認網頁文件程序的存放目錄:/var/lib/tomcat/webapps/(建議更改路徑),安裝完啟動服務,訪問IP:8080測試即可
還有一種綠色二進制安裝方法:
將教室環境的ftp://172.18.0.1/pub/Sources/6.x86_64/tomcat中最新包下載,默認路徑/usr/local下,
將它解壓過去:tar xf apache-tomcat-8.0.23.tar.gz -C /usr/local/,
然后cd /usr/local將tomcat包生成一個鏈接(將來升級直接修改鏈接文件路徑即可):ln -sv apache-tomcat-8.0.23 tomcat;
注意使用tomcat用戶啟動程序最好(生產環境),而不是默認root權限,所以進入tomcat目錄下:useradd -r tomcat(普通用戶也成),
更改屬主和群組權限:chown -R tomcat logs/ work/ temp/ 和chown -R :tomcat ./*
記得也需要添加環境變量,因為這樣安裝不是標準的安裝路徑,應用程序都找不到tomcat,所以編輯vim /etc/profile.d/tomcat.sh添加兩行內容:export CATALINA_HOME=/usr/local/tomcat export PATH=$CATALINA_HOME/bin/:$PATH 。
然后加載生效:source /etc/profile.d/tomcat.sh;最后切換成tomcat用戶進入/usr/local/tomcat/bin執行腳本:
./catalina.sh start啟動tomcat,測試8080端口
進入tomcat的請求可分為兩類:
(1) standalone : 請求來自于客戶端瀏覽器;
(2) 由其它的web server反代:來自前端的反代服務器:
nginx –> http connector –> tomcat
httpd(proxy_http_module) –> http connector –> tomcat (apache的文件傳輸協議,默認8080端口連接tomcat)
httpd(proxy_ajp_module) –> ajp connector –> tomcat (apache的二進制傳輸協議更高效,默認8009端口連接tomcat)
配置一個Connector連接器接口:
<Connector port=”18080″ protocol=”HTTP/1.1″ address=”172.18.254.18″ maxThreads=”300″ enableLookups=”no”
connectionTimeout=”20000″
redirectPort=”8443″ />

接下來配置tomcat的虛擬主機:
備份主配置文件:cp server.xml server.xml.bak
先定義Engine引擎:<Engine name=”Catalina” defaultHost=”du.magedu.com”>
Host常用屬性說明:appBase:此Host的webapps的默認存放目錄;相當于apache的DocumentRoot或nginx的Root (Valve是過濾器組件,定義訪問日志和訪問控制)
添加主配置文件內Host上下文
<Host name=”du.magedu.com” appBase=”/web/apps” unpackWARs=”true” autoDeploy=”true”>
<Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”logs”
prefix=”du_access” suffix=”.log”
pattern=”%h %l %u %t "%r" %s %b” />
</Host>
然后創建網站資源存放目錄:mkdir /web/apps/ROOT/{lib,classes,WEB-INF,META-INF} -pv
編寫一個jsp頁面nano /web/apps/ROOT/index.jsp,例:
<%@ page language=”java” %>
<%@ page import=”java.util.*” %>
<html>
<head>
<title>Test Page</title>
</head>
<body>
<% out.println(“hello world”);
%>
</body>
</html>
然后systemctl restart tomcat重啟服務,另找一臺主機配置好hosts主機名文件,訪問curl http://du.magedu.com:8080/測試
還可以在Host組件中定義Context上下文(在一個程序下創建一個子程序):(path是指定url路徑,docBase是文件資源存放路徑,相當于上面的appBase)
(測試時W7的hosts文件要添加IP地址和主機名)
接下來配置nginx動態資源代理:
(location根上一定要加index.jsp);瀏覽器訪問測試http://172.18.254.18/
apache的模塊代理后端tomcat:vim /etc/httpd/conf.d/tomcat-http.conf
使用apache代理tomcat還有ajp協議(二進制傳輸速度快也安全):
單臺tomcat并發處理鏈接200個就不錯了;有多臺tomcat時,可以配置nginx/apache實現tomcat集群解決方案:
1.配置兩臺后端tomcat主機,安裝:yum -y install java-1.8.0-openjdk-devel tomcat tomcat-webapps tomcat-admin-webapps,并在/usr/share/tomcat目錄下創建一個test目錄在里面添加一個jsp頁面;實現訪問172.18.254.82:8080和172.18.254.18:8080/test/均可訪問到頁面(另一臺tomcat主機同樣)
2. 配置前端nginx,vim /etc/nginx/nginx.conf:
vim /etc/nginx/conf.d/default.conf:
隨后檢查nginx -t語法,啟動nginx,訪問nginx主機的IP實現后臺tomcat輪詢調度
3.配置前端apache實現后臺tomcat輪詢調度:vim /etc/httpd/conf.d/tomcat-httpd.conf
然后瀏覽器測試使用httpd主機IP訪問,測試tomcat輪詢效果;httpd還有一些保持會話的方法,因為生產環境不會用上,這里也不再實驗;
Tomcat會話復制集群:(后端tomcat每個都需要同步會話,保持會話一致;所以容易產生網絡堵塞只適合小規模的會話集群;生產中多數還是用session server)
默認tomcat會話同步之間使用多播傳輸;
原創文章,作者:杜少星,如若轉載,請注明出處:http://www.www58058.com/76571