配置Tomcat架構
一、配置Tomcat監聽80端口
1.1 查看80端口被誰占用,為了避免端口占用情況,把nginx服務關閉
[root@xavi ~]# netstat -lntp |grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5700/nginx: master tcp6 0 0 :::8080 :::* LISTEN 3880/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 3880/java tcp6 0 0 :::8009 :::* LISTEN 3880/java [root@xavi ~]# /etc/init.d/nginx stop Stopping nginx (via systemctl): [ 確定 ]
1.2 打開配置文件並修改
[root@xavi ~]# vim /usr/local/tomcat/conf/server.xml
搜索8080
更改80端口:
Connector port="8080" protocol="HTTP/1.1"
修改為:
Connector port="80" protocol="HTTP/1.1"
1.3 重啟服務
[root@xavi ~]# /usr/local/tomcat/bin/shutdown.sh [root@xavi ~]# /usr/local/tomcat/bin/startup.sh [root@xavi ~]# netstat -lntp |grep 80 tcp6 0 0 :::80 :::* LISTEN 5836/java tcp6 0 0 :::8009 :::* LISTEN 5836/java
等到8005管理端口啟動以後,在網頁就能訪問了
[root@xavi ~]# netstat -lntp |grep 80 tcp6 0 0 :::80 :::* LISTEN 5836/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 5836/java tcp6 0 0 :::8009 :::* LISTEN 5836/java
二、配置虛擬主機
虛擬主機也就是之前提到的,一個IP地址可以配置多個站點,綁定多個不同的域名,也就是配置多個webserver。
2.1 server.xml其實就是java的主配置文件
[root@xavi ~]# !vim
vim /usr/local/tomcat/conf/server.xml
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
-
[ ] name 定義域名;
-
[ ] appBase 定義應用的目錄;
-
[ ] unpackWARs=”true” 是否自動解壓;(也是就是說,當我們往站點目錄裏面直接上傳一個war的包,它會自動解壓)
- [ ] Java的應用通常是一個jar的壓縮包,你只需要將jar的壓縮包放到appBase目錄下面即可。剛剛訪問的Tomcat默認頁其實就是在appBase目錄下面,不過是在它子目錄ROOT裏。
2.2 配置新的虛擬主機
增加虛擬主機,編輯server.xml,在</Host>下面增加如下內容:
<Host name="www.dsf.com" appBase=""
unpackWARs= "true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/data/wwwroot/www.dsf.com/" debug="0" reloadable="true" crossContext="true"/>
</Host>
銘哥專業解釋:
docBase,這個參數用來定義網站的文件存放路徑,如果不定義,默認是在appBase/ROOT下面,定義了docBase就以該目錄為主了,其中appBase和docBase可以一樣。在這一步操作過程中很多同學遇到過訪問404的問題,其實就是docBase沒有定義對。
appBase為應用存放目錄,通常是需要把war包直接放到該目錄下面,它會自動解壓成一個程序目錄
2.3 部署一個java站點
a. 下載站點程序zrlog:
[root@xavi ~]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
b. 創建站點目錄
[root@xavi ~]# mkdir /data/wwwroot/www.dsf.com/
////我們先把站點程序放到appBASE中解壓,然後再次全部移動到此目錄下
c. 解壓縮war包,並移動到站點目錄:
[root@xavi ~]# mv zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
等待個10幾秒鐘,就會出現一個自動解壓出來包
[root@xavi ~]# ls /usr/local/tomcat/webapps/
docs examples host-manager manager ROOT zrlog-1.7.1-baaecb9-release zrlog-1.7.1-baaecb9-release.war
d.檢查解壓文件,再將其重命名
[root@xavi www.dsf.com]# cd /usr/local/tomcat/webapps/
[root@xavi webapps]# ls
docs examples host-manager manager ROOT zrlog-1.7.1-baaecb9-release zrlog-1.7.1-baaecb9-release.war
[root@xavi webapps]# mv zrlog-1.7.1-baaecb9-release zrlog
[root@xavi webapps]# ls
docs examples host-manager manager ROOT zrlog zrlog-1.7.1-baaecb9-release zrlog-1.7.1-baaecb9-release.war
打開外部瀏覽器查看:http://192.168.72.130/zrlog/
e. 創建數據庫
[root@xavi webapps]# ps aux | grep mysql
root 6826 0.0 0.0 112680 972 pts/1 S+ 15:31 0:00 grep --color=auto mysql
//沒有開啟mysql服務,開啟
[root@xavi webapps]# service mysqld start
Starting MySQL.. SUCCESS!
[root@xavi webapps]# mysql -uroot -pxavilinux
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql>
- 創建數據庫,並設定用戶和授權
mysql> create database zrlog;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on zrlog.* to ‘zrlog‘@127.0.0.1 identified by ‘xavilinux1‘;
Query OK, 0 rows affected (0.00 sec)
- 測試創建的用戶是否正確:
[root@xavi webapps]# mysql -uzrlog -h127.0.0.1 -pxavilinux1
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql>
- 查看數據庫
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
| zrlog |
+--------------------+
3 rows in set (0.00 sec)
f. 完成網頁設置向導
- 進入後臺
三、從新建的虛擬主機中訪問
增加一個www.dsf.com的java站點。
docBase=”/data/wwwroot/www.dsf.com/”
這個就和咱們之前配置LAMP和LNMP差不多了。就是把站點的配置文件上傳到此處。 有時候配置完畢,再次訪問站點會出現404,那麽幾乎都是這個地方沒有定義對,要麽就是appBASE也上傳了站點文件。(如果不知道如何解壓war包,我們可以先把站點的包放到appBASE下,然後等到自動解壓完畢,我們再次move站點的包到自定義的位置。)
3.1 創建新的文件夾,也是docBase的地址
[root@xavi webapps]# mkdir /data/wwwroot/www.dsf.com/
3.2 把剛才webapps下的zrlog文件都復制到docbase下
[root@xavi webapps]# mv /usr/local/tomcat/webapps/zrlog/ //這裏雙擊tab建看下有哪些目錄文件
admin/ error/ include/ META-INF/
assets/ favicon.ico install/ WEB-INF/
[root@xavi webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/www.dsf.com/
3.3 綁定hosts,記得關閉保存
- 看是否能ping通
直接訪問
3.5 重新配置後,要重啟下java服務
[root@xavi zrlog]# cd /data/wwwroot/www.dsf.com/
[root@xavi www.dsf.com]# ls
admin favicon.ico log sim.pid zrlog-1.7.1-baaecb9-release
assets include logs temp
error install META-INF WEB-INF
[root@xavi www.dsf.com]# rm -rf zrlog-1.7.1-baaecb9-release
[root@xavi www.dsf.com]# ls
admin error include log META-INF temp
assets favicon.ico install logs sim.pid WEB-INF
[root@xavi ~]# /usr/local/tomcat/bin/shutdown.sh
[root@xavi ~]# /usr/local/tomcat/bin/startup.sh
[root@xavi webapps]# netstat -lntp |grep 80
tcp6 0 0 :::80 :::* LISTEN 8287/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 8287/java
tcp6 0 0 :::8009 :::* LISTEN 8287/java
3.5 網站的圖標和一些重要信息都在/usr/local/tomcat/webapps/ROOT下
[root@xavi www.dsf.com]# cd /usr/local/tomcat/webapps/
[root@xavi webapps]# ls
docs log ROOT zrlog-1.7.1-baaecb9-release
examples logs temp zrlog-1.7.1-baaecb9-release.war
host-manager manager zrlog
[root@xavi webapps]# ls ROOT
asf-logo-wide.svg bg-nav.png RELEASE-NOTES.txt tomcat-power.gif
bg-button.png bg-upper.png tomcat.css tomcat.svg
bg-middle.png favicon.ico tomcat.gif WEB-INF
bg-nav-item.png index.jsp tomcat.png
四、Tomcat日誌
在日常運維中,Tomcat用的還是蠻多的,但是一旦出現問題,我們就需要去解決,思路就來自日誌文件。
4.1 日誌目錄位置
[root@xavi webapps]# ls /usr/local/tomcat/logs
catalina.2018-03-31.log localhost.2018-03-31.log
catalina.out localhost_access_log.2018-03-31.txt
host-manager.2018-03-31.log manager.2018-03-31.log
其中catalina開頭的日誌為Tomcat的綜合日誌,它記錄Tomcat服務相關信息,也會記錄錯誤日誌。
其中catalina.2017-xx-xx.log和catalina.out內容相同,前者會每天生成一個新的日誌。
host-manager和manager為管理相關的日誌,其中host-manager為虛擬主機的管理日誌。
localhost和localhost_access為虛擬主機相關日誌,其中帶access字樣的日誌為訪問日誌,不帶access字樣的為默認虛擬主機的錯誤日誌。
訪問日誌默認不會生成,需要在server.xml中配置一下。
4.2 給剛才新建的虛擬主機配置日誌
在對應虛擬主機的<Host></Host>裏面加入下面的配置(剛才的域名是www.dsf.com):
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="dsf.com_access" suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
prefix 定義訪問日誌的前綴;
suffix 定義日誌的後綴;
pattern 定義日誌格式。
新增加的虛擬主機默認並不會生成類似默認虛擬主機的那個localhost.日期.log日誌; 錯誤日誌會統一記錄到catalina.out中。
關於Tomcat日誌,最需要關註catalina.out,當出現問題時,我們應該第一想到去查看它。
配置Tomcat架構