一般狀況下咱們要配置Tomcat是很容易的一件事情,可是若是您要架設多用戶多服務的Java虛擬主機就不那麼容易了。其中最大的一個問題就是Tomcat執行權限。普通方式配置的Tomcat是以root超級管理員的身份運行的,顯然,這是很是危險的,可想而知,一但網站被掛馬,您的整個服務器均可以被黑客控制了。而經過編譯或在線(例如RedHat系列的yum, debian系列的apt-get)的方式安裝,一個服務器上又只能裝一個tomcat的服務,若是將多個網站放到同一個tomcat服務中,一但某一個網站出問題致使tomcat服務被卡死,則服務器上全部的網站都打不開了,沒法知足各網站程序獨享tomcat的需求。爲了解決這些問題,咱們須要配置Tomcat以指定的身份運行,且一臺服務器上能夠安裝任意多個tomcat服務。前端
VMware Workstation 10 虛擬機java
內存:1Glinux
Linux版本:CentOS MinimalCD 6.5apache
JAVA:JAVA_HOME=/opt/jdkwindows
1、先在 Linux系統上配置好JDK環境( CentOS下安裝JDK筆記 http://www.linuxidc.com/Linux/2015-01/111414.htm)tomcat
假設您已經在Linux系統上正確安裝了JDK開發環境,且JDK安裝的位置在: /opt/jdk/服務器
2、下載並解壓最新版本的Tomcat,http://tomcat.apache.org,將其下載下來(我下到的是apache-tomcat-6.0.41.tar.gz)放到Linux系統的/opt/目錄下,運行命令解壓(並將解壓出來的目錄改名爲tomcat):負載均衡
tar xzvf apache-tomcat-6.0.41.tar.gz mv apache-tomcat-6.0.41/ tomcat
3、編譯安裝tomcat daemon服務守候程序:curl
cd /opt/tomcat/bin/ tar xvzf commons-daemon-native.tar.gz一、解壓後會生成一個commons-daemon-1.0.15-native-src目錄,cd到這個目錄的Linux子目錄:cd commons-daemon-1.0.10-native-src/unix二、註釋:安裝gcc(默認Mini版本沒有安裝gcc)yum -y install gcc三、執行編譯配置./configure #(注意:須要先安裝好make,gcc等編譯工具) ./configure --with-java=/opt/jdk 若是提示沒有jdk,使用這個命令。主要是java目錄未寫入系統目錄四、運行完成後會提示以下信息說明操做成功:... *** All done *** Now you can issue "make"五、執行make:make六、執行make後會生成一個jsvc的文件,將其複製到tomcat的bin目錄。cp jsvc /opt/tomcat/bin/七、在tomcat/bin目錄裏面有一個daemon.sh 這個文件就是啓動和關閉tomcat的服務守候程序。tcp
注意:以前的一些tomcat版本,例如tomcat 6.0.x, 可能沒有這個文件, 其實這個文件就是放在commons-daemon-x.x.x-native-src/unix/samples/Tomcat7.sh這兒的(此目錄還有一個Tomcat5.sh),只不過新版本的tomcat把它移動到了bin目錄下,並取名爲daemon.sh了。因此,若是您使用的是tomcat 6,那就把這個Tomcat7.sh文件複製到bin目錄下,並取名爲daemon.sh便可。
八、修改daemon環境變量 :
用文本編輯器(vi或emacs等)編輯它,找到相似下面這樣配置段:
test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat # Set JAVA_HOME to working JDK or JRE # JAVA_HOME=/opt/jdk-1.6.0.22九、修改TOMCAT_USER=tomcat爲您要指定身份運行的linux帳號用戶名,此處指定用戶名爲tomcat。
並把JAVA_HOME=...前面的註釋(即「#」號)去掉,並設置爲jdk的安裝目錄路徑,最後,修改好後的配置段變成以下:
test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat # Set JAVA_HOME to working JDK or JRE JAVA_HOME=/opt/jdk十、如今修改/opt/tomcat目錄的全部者爲tomcat(即您要指定身份運行的linux賬號):
useradd -M tomcat #建立沒有主目錄的tomcat用戶 chsh tomcat -s /sbin/nologin #禁止tomcat登錄操做,相似於windows的系統帳戶 chown -R tomcat /opt/tomcat #將/opt/tomcat下的全部檔案與子目錄進行相同的擁有者變動爲tomcat用戶十一、爲tomcat/bin/目錄下的*.sh添加相應的x權限位:
chmod +x /opt/tomcat/bin/*.sh十二、如今,能夠測試一下daemon是否能夠啓動運行,啓動方式以下:
/opt/tomcat/bin/daemon.sh start curl http://localhost:8080 #測試一下是否啓動
(若是出錯,重點查驗tomcat的bin目錄下的*.sh是否有x可執行權限、linux賬號是否有tomcat目錄的讀寫權限,是否有tomcat/logs日誌目錄的寫權限等等。)如無錯誤,則tomcat的daemon守候程序已經設置成功了。
1三、這時本機能夠訪問tomcat了,遠程機器訪問不了,是防火牆的問題,在 /etc/sysconfig/iptables添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT #8080是tomcat的訪問端口重啓iptable
service iptables restart
這樣就能夠訪問了。
1四、中止tomcat, 對應的命令爲:
/opt/tomcat/bin/daemon.sh stop1五、添加tomcat爲Linux的服務,這時就簡單了,只須要建立一個軟鏈到/etc/init.d/目錄中便可
ln -s /opt/tomcat/bin/daemon.sh /etc/init.d/tomcat1六、如今就能夠用它啓動/關閉tomcat了:
/etc/init.d/tomcat start #啓動tomcat service tomcat start #啓動tomcat /etc/init.d/tomcat stop #關閉tomcat service tomcat stop #關閉tomcat1七、設置tomcat服務開機啓動,須要在daemon.sh中增長如下的語句:
#!/bin/sh #這句是原文件裏有的,下面的2句是要添加的 # chkconfig: 2345 90 15 # description: Tomcat-en Manager1八、再運行 chkconfig命令增長tomcat服務,而達到自啓動:
chkconfig --add tomcat重啓機器,測試一下。
4、若是想再建立一個tomcat服務,只須要將/opt/tomcat這個目錄複製一份,例如:
cp /opt/tomcat /opt/tomcat1
再修改一下tomcat1的端口號(/opt/tomcat/opt/tomcat1/conf/server.xml中的端口號不能與其它的服務重複)。最後從上面所述第8步開始,建立另外一個服務便可。
經過這種方式,您就能夠爲一臺Linux服務器建立任意多個tomcat服務了。最後只須要安裝一個前端服務器(例如Nginx或Apache),將不一樣域名的請求轉發到不一樣的tomcat服務程序就能夠了。
Linux下Apache與多個Tomcat 集羣負載均衡 http://www.linuxidc.com/Linux/2012-01/51731.htm
Nginx Tomcat 集羣負載均衡解決筆記 http://www.linuxidc.com/Linux/2013-07/86827.htm
實例詳解Tomcat組件安裝+Nginx反向代理Tomcat+Apache使用mod_jk和mod_proxy反向代理和負載均衡 http://www.linuxidc.com/Linux/2013-06/85290.htm
CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日誌服務器 http://www.linuxidc.com/Linux/2014-06/103836.htm
Apache+Tomcat 環境搭建(JK部署過程) http://www.linuxidc.com/Linux/2012-11/74474.htm
Tomcat 的詳細介紹:請點這裏
Tomcat 的下載地址:請點這裏
更多CentOS相關信息見CentOS 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=14