前兩天晚上,解決了這兩個(gè)問題,記錄一下吧,萬一哪天要是用到了呢。
1: tomcat更改默認(rèn)端口號(hào)
-
tomcat默認(rèn)的端口號(hào)是8080端口,但網(wǎng)站更改域名后,在后面再帶上80感覺很奇怪,所以需要把默認(rèn)的端口從8080更改為80端口。
window下直接修改server.xml文件,<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
將8080端口修改為80端口,然后重啟服務(wù)器。
-
但是在linux服務(wù)器上,并不能實(shí)現(xiàn)這個(gè)效果,因?yàn)椋趌inux里,由于內(nèi)核的限制,普通用戶不能使用1024一下的端口。所以在linux里改成80,用普通用戶是啟動(dòng)不了的。
解決方案:
1: 第一步:重將Tomcat的端口(server.xml)由80改回8080。
2: 通過Iptables端口實(shí)現(xiàn)80到8080的轉(zhuǎn)發(fā),命令為:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
若出現(xiàn)錯(cuò)誤,使用sudo來運(yùn)行。
2: 修改tomcat的sever.xml文件設(shè)置tomcat的默認(rèn)路徑
- 打開server.xml,在</Host>的上一行添加內(nèi)容格式如下
<Context path="" reloadable="true" docBase="<項(xiàng)目名>"/>
如:
<Context path="" docBase="gps" debug="0" reloadable="true"/>
dosBase里寫的是你要設(shè)置為默認(rèn)項(xiàng)目的名稱。
注:通過上面的設(shè)置有一個(gè)問題就是項(xiàng)目會(huì)重復(fù)加載兩次.
原因分析
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="gps" reloadable="true"/>
1.當(dāng)為 Host 容器 設(shè)置了 appBase 屬性時(shí), Tomcat 會(huì)在啟動(dòng)時(shí)自動(dòng)加載 appBase 指定目錄下的所有合法工程;
2.由于同時(shí)又通過 Context 的docBase 屬性設(shè)置了Tomcat 默認(rèn)工程, 所以,指定的 gps工程又會(huì)被加載一次
基于以上兩點(diǎn),造成了 gps工程的重復(fù)加載。
解決辦法
- 新建一個(gè)目錄專門用于存放工程, 如: G:\apache-tomcat-6.0.20\project
- 將工程存放到以上目錄下:即:G:\apache-tomcat-6.0.20\project\gps
- 在 Context 容器中設(shè)置 docBase 屬性, 如:
<Context path="" docBase="G:\apache-tomcat-6.0.20\project\gps" />
至此問題解決,重啟Tomcat服務(wù)器就可以通過不加項(xiàng)目名訪問此項(xiàng)目.
注意:記得把webapps目錄下的原項(xiàng)目刪除