16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志
2019獨角獸企業重金招聘Python工程師標準>>>
16.4 配置Tomcat監聽80端口
直接訪問,使用默認的web服務,需要改動端口為80,如果不是80端口那么訪問頁面的時候需要指定端口才能訪問
vim /usr/local/tomcat/conf/server.xml Connector port="8080" protocol="HTTP/1.1"修改為Connector port="80" protocol="HTTP/1.1"重啟tomcat服務
/usr/local/tomcat/bin/shutdown.sh //關閉服務 /usr/local/tomcat/bin/startup.sh //開啟服務關閉服務的時候報錯
[root@aminglinux-02 ~]# /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar 八月 29, 2017 11:00:28 下午 org.apache.catalina.startup.Catalina stopServer 嚴重: Could not contact [localhost:[8005]]. Tomcat may not be running. 八月 29, 2017 11:00:28 下午 org.apache.catalina.startup.Catalina stopServer 嚴重: Catalina.stop: java.net.ConnectException: 拒絕連接 (Connection refused)at java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)at java.net.Socket.connect(Socket.java:589)at java.net.Socket.connect(Socket.java:538)at java.net.Socket.<init>(Socket.java:434)at java.net.Socket.<init>(Socket.java:211)at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:477)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:408)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497)查度娘以后得到答案,需要
export JAVA_HOME=/usr/local/jdk1.8/才能正常關閉
正常關閉以后就可以正常開啟tomcat服務
查看是否開始監聽80端口
發現并沒有監聽,因為nginx已經監聽了 80,80端口被占用
[root@aminglinux-02 ~]# !net netstat -lntp |grep java tcp6 0 0 :::8009 :::* LISTEN 2597/java所需需要停掉nginx服務
[root@aminglinux-02 ~]# service nginx stop Stopping nginx (via systemctl): [ 確定 ]停掉服務以后再重啟tomcat 就可以查看到 80端口了
[root@aminglinux-02 ~]# /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@aminglinux-02 ~]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@aminglinux-02 ~]# !net netstat -lntp |grep java tcp6 0 0 :::80 :::* LISTEN 2690/java tcp6 0 0 :::8009 :::* LISTEN 2690/java在瀏覽器看看不加8080訪問tomcat 是否能訪問默認頁
在8005管理端口還沒有完全啟動之前,頁面是打不開的,需要等8005管理端口完全開啟以后才能訪問
16.5/16.6/16.7 配置Tomcat虛擬主機
在之前的學習,Apache還是nginx都屬于webServer,都支持虛擬主機配置文件,虛擬主機配置文件一臺服務器上或者一個webserver上,支持一個IP下可以訪問多個域名,美國域名代表一個網站,所以可以配置多個網站,每個網站都稱之為一個虛擬主機,tomcat同樣也支持這個概念
開啟虛擬機
編輯配置文件
vim /usr/local/tomcat/conf/server.xml搜索 Host
tomcat的配置文件格式為 xml,語法是“<>開頭,</>結尾”
虛擬主機配置文件內容
其中<Host>和</Host>之間的配置為虛擬主機配置部分,name定義域名,appBase定義應用的目錄,Java的應用通常是一個jar的壓縮包,你只需要將jar的壓縮包放到appBase目錄下面即可。
剛剛訪問的Tomcat默認頁其實就是在appBase目錄下面,不過是在它子目錄ROOT里。
name="localhost //主機名
appBase="webapps" //應用項目所在 ①知識點②知識點
unpackWARs="true" //是否自動解壓 “為true是會自動解壓”
知識點:tomcat他需要提供一個war的包,這里包含著運行這個網站的文件、配置、數據庫相關等等。
知識點:可以單獨的指定一個目錄,這個目錄里面存放的是 jsp 的文件,也就是說提供的不是war包
知識點:webapps的默認路徑為/usr/local/tomcat/webapps/,webapps目錄下,默認有5個目錄(docs examples host-manager manager ROOT)
增加虛擬主機
<Host name="www.123.cn"; appBase="" //寫空就不會于docBase相互干擾unpackWARs= "true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"><Context path=""docBase="/data/wwwroot/123.cn/" //自定義站點路徑,不使用自動安裝war的方式debug="0"reloadable="true"crossContext="true"/></Host>1.docBase,這個參數用來定義網站的文件存放路徑,如果不定義,默認是在appBase/ROOT下面,定義了docBase就以該目錄為主了,其中appBase和docBase可以一樣。在這一步操作過程中很多同學遇到過訪問404的問題,其實就是docBase沒有定義對。 1.appBase為應用存放目錄(實際上是一個相對路徑,相對于 /usr/local/tomcat/ 路徑),通常是需要把war包直接放到該目錄下面,它會自動解壓成一個程序目錄
為了方便測試,下載一個zrlog(java寫的blog站點應用,輕量),進行測試
wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war測試一
測試appbase自動解壓war包
[root@aminglinux-02 src]# mv zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/ [root@aminglinux-02 src]# ls /usr/local/tomcat/webapps/ docs examples host-manager manager ROOT zrlog-1.7.1-baaecb9-release zrlog-1.7.1-baaecb9-release.war發現移動到webapps目錄以后,不一會就會生成一個目錄,說明配置是有效的
為了不影響實驗結果,先更改自動生成的目錄的名字,再移走webapps目錄下的war包;因為一旦移走war包,和war同名的目錄也會自動刪除;如果這個目錄下沒有和war同名的目錄,也會重復的解壓
[root@aminglinux-02 webapps]# mv zrlog-1.7.1-baaecb9-release zrlog [root@aminglinux-02 webapps]# ls docs examples host-manager manager ROOT zrlog zrlog-1.7.1-baaecb9-release zrlog-1.7.1-baaecb9-release.war [root@aminglinux-02 webapps]# mv zrlog-1.7.1-baaecb9-release.war /usr/local/src/ [root@aminglinux-02 webapps]# ls docs examples host-manager manager ROOT zrlog zrlog-1.7.1-baaecb9-release [root@aminglinux-02 webapps]# ls docs examples host-manager manager ROOT zrlog這是就可以登錄站點,嘗試訪問了
安裝向導,其實就是一個配置數據庫的過程
配置數據庫
現在就來創建一個供zrlog使用的數據庫,和賬戶
create databases zrlog ; grant all on zrlog.* to 'zrlog'@localhost identified by 'aminglinux' ;順手檢查一下mysql用戶是否正確
[root@aminglinux-02 webapps]# mysql -uzrlog -paminglinux 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 3 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> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | | zrlog | +--------------------+ 3 rows in set (0.00 sec)然后回到瀏覽器,配置相關信息,之后就能訪問了
測試二
測試用docBase指定路徑,訪問是否生效
前面做了新增虛擬機配置,自然就需要生成對應的目錄
mkdir /data/wwwroot/123.cn/將之前的zrlog的文件移動到當前目錄下
mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/ [root@aminglinux-02 yulongxuan]# ls /data/wwwroot/123.cn/ admin/ assets/ error/ favicon.ico include/ install/ META-INF/ WEB-INF/重啟服務 之前修改了配置文件,新增了虛擬主機,但并沒有重啟,所以沒有及時生效
[root@aminglinux-02 yulongxuan]# /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@aminglinux-02 yulongxuan]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/jdk1.8/jre Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started.然后通過瀏覽器訪問 www.123.cn
16.8 Tomcat日志
日志不會默認生成
?具體方法是在對應虛擬主機的<Host></Host>里面加入下面的配置(假如域名為123.cn):
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="123.cn_access" suffix=".log"pattern="%h %l %u %t "%r" %s %b" />?prefix定義訪問日志的前綴,suffix定義日志的后綴,pattern定義日志格式。新增加的虛擬主機默認并不會生成類似默認虛擬主機的那個localhost.日期.log日志,錯誤日志會統一記錄到catalina.out中。關于Tomcat日志,你最需要關注catalina.out,當出現問題時,我們應該第一想到去查看它。
轉載于:https://my.oschina.net/nova12315/blog/1785451
總結
以上是生活随笔為你收集整理的16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Confluence 6 授权
- 下一篇: 自研服务治理框架----文章汇总