1.先在tomcat下的conf下找到server.xml文件,用記事本打開后,首先對端口號進行修改,以前一直以為8080是默認的端口號,其實默認的端口號是80
<Connector port="80" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />端口搞定后,我們就可以直接配置域名訪問了
域名可以訪問ip無法訪問
在Tomcat下面配置域名(如:www.zjhuiwan.com)的時候,同時又不希望客戶通過我們網站的IP或者域名訪問到Tomcat默認的ROOT,配制方法如下:
2、在server.xml中將原有的<Engine name="Catalina" defaultHost="localhost">修改為<Engine name="Catalina" defaultHost="www.zjhuiwan.com">,defaultHost可以是IP或域名。
3、在server.xml中將原有的<Host name=“localhost“ appBase=“webapps“ ……>修改為<Host name=“www.zjhuiwan.com“ appBase=“webapps“……>,name后面可以填IP也可以是域名。
4、在<Host>中添加:<Context path="/別名" docBase="項目路徑/項目名" />(注意:自己輸,粘貼可能報錯(1字節的UTF-8序列的字節1無效))
<Context path="" docBase="Tea"/>(Tea項目在webapps下)
其中docBase中的內容就是你希望的打開您的域名(www.zjhuiwan.com) 的時候映射到的目錄和默認的網頁(如:index.jsp)
並且可以同時配置多個<Host>,也可為同一個項目配置域名和IP訪問
5、最終我們要在本地訪問域名,因無域名解析服務器,所以在hosts上配,來模擬dns解析。還得修改相關HOST文件。。打開C:/WINDOWS/system32/drivers/etc/hosts
加上
127.0.0.1 www.zjhuiwan.com (注意:去掉“#”)
6、啟動Tomcat服務器,就可以直接敲入域名訪問你要訪問的地址了。
<Engine name="Catalina" defaultHost="www.zjhuiwan.cn">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="www.zjhuiwan.cn" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="zjblog" debug="0" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<!--配置其他位置的靜態資源訪問-->
<Context docBase="/usr/uploadFile/img" path="/blogImg" reloadable="true"/>
</Host>
</Engine>
域名ip都可以訪問
只需要添加<Alias>www.zjhuiwan.cn</Alias> 即可。
<Engine defaultHost="localhost" name="Catalina">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Alias>www.zjhuiwan.cn</Alias>
<Context docBase="zjblog" path="" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>
</Host>
</Engine>
有時候,80端口會被其他的進程占用,這時候就需要結束原來的進程或修改為其他端口號
I.Port80簡介:
80端口是為HTTP(HyperText Transport Protocol)即超文本傳輸協議開放的,此為上網沖浪使用次數最多的協議,主要用於WWW(World Wide Web)即萬維網傳輸信息的協議。可以通過HTTP地址(即常說的“網址”)加“: 80”來訪問網站,因為瀏覽網頁服務默認的端口號都是80,因此只需輸入網址即可,不用輸入“: 80”了。
II.問題描述:
80端口是一個最為頻繁訪問的端口號,甚為程序員開發更是經常遇到,比如我們最熟悉的數據庫系統服務進程就是默認訪問該端口的,還有比如Ngnix服務器默認端口也是80,所以當使用ngnix時發生端口號沖突了,應該怎么辦呢?以下見析。
III.原因:
主要是與http協議有關的進程,進行網上訪問的系統級別的進程最頻繁占用80端口。比如Http.sys。它是http API的驅動組件,Http棧服務器。如果該端口被Http.sys占用,說明一些正在使用http.sys的應用程序在運行。
IV.解決辦法:
1)使用命令查看哪個線程占用80端口
win+R調出doc窗口,輸入cmd,繼續輸入"netstat -ano | more"或者“netstat -aon”
2)尋找端口號
找到“本地地址”欄為0.0.0.0:80的一行,在行的末尾有pid(進程id)為“4”。
3)打開任務管理器(ctrl+alt+del)
查看pid為4的線程,一般會顯示system占用;自然system是無法直接kill的。
使用netsh命令查看端口使用狀態:”netsh http show servicetstate“。
可以看到有兩個進程正在使用http功能。分別為 3164和3196。
其中3196是sql server的report服務;進程3164對應的是一個svchost服務。
兩者都可以關閉,數據庫服務的見下述解決方式。
【擴展】:
但是,50秒之后端口又會自動被占用了。【重新占用】
從procmonitor中可以看到,每次關閉服務 BranchCache 每50s后就會繼續被svchost給調用起來。
通過services表(服務表)中,我們發現這里的BranchCache 依賴了HTTP.SYS這個內核驅動。
手動禁用即可。
4)多版本解決方案:
【分析】:
1)SQL Server導致。其中很有可能是SQL Server Reporting Services (MSSQLSERVER),它是 SQL Server 的日志系統。
2)IIS 服務。如果你電腦安裝了這個,很有可能它在運行着,那么它就占用着80端口。(打開IIS的方法:打開控制面板,點“卸載”,
彈窗里左側有一個“打開或關閉windows功能”,再點開會有一個彈窗,找“Internet信息服務”,找到 Internet Information Services,
點加號展開!因為直接點這個大項前面的小方塊,FTP服務器選項沒反應,我圖里的這幾個都勾上就行了。
然后右下角點確定,IIS開啟成功了。
關上:開始圖標那個win旁邊有個圈圈,點開輸入iis回車就能打開IIS管理器,右擊,點停止,IIS就算關上了。(win10系統)
3)其他。(比如,迅雷等程序或者一些其他有上傳功能的軟件都會占用電腦的80端口)
A.已知為數據庫進程占用,最常見:
i.查看“任務管理器”進程欄或者詳細信息欄,有沒有數據庫有關的進程,直接kill就行。
ii.打開【管理】->【服務和應用程序】->【服務】->找到“SQL Server Reporting Service",禁用或者手動皆可。
以上可以解決基本上90%左右的占用問題。
(一般來說,可能是近期安裝了數據庫或者升級了數據庫等軟件造成的,系統占用的端口一般都是微軟官方的產品占用的。)
B.未知進程,即system進程(win7 system默認占用):
i.禁用http.sys
輸入net stop http,然后確認繼續操作,在輸入Sc config http start= disabled即可停止該項服務。
ii.調出注冊表
打開RegEdit:【開始】->【運行】->輸入【regedit】調出 ”注冊表“,
找到”HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTP“,
找到一個DWORD值Start,將其改為0,重啟電腦,System進程將不會占用80端口。
【備注】:殺掉進程的命令:taskkill /pid 4 /f ,其中 /f 表示強制關閉該進程。