前两天晚上,解决了这两个问题,记录一下吧,万一哪天要是用到了呢。
1: tomcat更改默认端口号
-
tomcat默认的端口号是8080端口,但网站更改域名后,在后面再带上80感觉很奇怪,所以需要把默认的端口从8080更改为80端口。
window下直接修改server.xml文件,<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
将8080端口修改为80端口,然后重启服务器。
-
但是在linux服务器上,并不能实现这个效果,因为,在linux里,由于内核的限制,普通用户不能使用1024一下的端口。所以在linux里改成80,用普通用户是启动不了的。
解决方案:
1: 第一步:重将Tomcat的端口(server.xml)由80改回8080。
2: 通过Iptables端口实现80到8080的转发,命令为:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
若出现错误,使用sudo来运行。
2: 修改tomcat的sever.xml文件设置tomcat的默认路径
- 打开server.xml,在</Host>的上一行添加内容格式如下
<Context path="" reloadable="true" docBase="<项目名>"/>
如:
<Context path="" docBase="gps" debug="0" reloadable="true"/>
dosBase里写的是你要设置为默认项目的名称。
注:通过上面的设置有一个问题就是项目会重复加载两次.
原因分析
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="gps" reloadable="true"/>
1.当为 Host 容器 设置了 appBase 属性时, Tomcat 会在启动时自动加载 appBase 指定目录下的所有合法工程;
2.由于同时又通过 Context 的docBase 属性设置了Tomcat 默认工程, 所以,指定的 gps工程又会被加载一次
基于以上两点,造成了 gps工程的重复加载。
解决办法
- 新建一个目录专门用于存放工程, 如: G:\apache-tomcat-6.0.20\project
- 将工程存放到以上目录下:即:G:\apache-tomcat-6.0.20\project\gps
- 在 Context 容器中设置 docBase 属性, 如:
<Context path="" docBase="G:\apache-tomcat-6.0.20\project\gps" />
至此问题解决,重启Tomcat服务器就可以通过不加项目名访问此项目.
注意:记得把webapps目录下的原项目删除