大家好,我正在尝试更改安装在 Ubuntu 上的 Tomcat 服务器的端口号。为此,我更改了文件server.xml
并进行了以下更改:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
但问题是,每当我尝试打开时,localhost:8081
它都能正常工作,但当我尝试打开时localhost:8080
,它仍然可以访问。有人能解释一下为什么会发生这种情况吗?
其次,当我将默认端口设为 80 时,尝试访问localhost:80
,但localhost
仍然无法访问。为什么会发生这种情况?
答案1
至于侦听器仍然在端口 8080 上,您需要验证该端口没有定义连接器,并且没有其他 tomcat 实例正在运行。
端口 80 出现问题的原因可能是低端口需要 root 权限才能绑定,而 tomcat 默认以非 root 用户身份运行。解决这个问题的方法是使用 authbind。
apt-get install authbind
touch /etc/authbind/byport/80
chown tomcat6:tomcat6 /etc/authbind/byport/80
然后,修改 tomcat 的配置文件以启用 authbind 支持。
nano /etc/default/tomcat6
我相信 authbind 的设置位于文件的底部附近。
答案2
我尝试过这个解决方案http://beginlinux.com/server/ubuntu/changing-the-port-on-tomcat对我来说,它确实有效。您需要做的就是确认哪些端口已绑定,然后在 tomcat 的 server.xml 文件中更改端口号。然后您需要重新启动 tomcat 以确保更改得到实施。
答案3
使用重定向 iptables 规则:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport http -j REDIRECT --to-ports 8081
最好不要以 root 身份运行 Tomcat(80 端口需要 root 权限)。
答案4
我个人在 /srv/apachexxx/conf 中(或者在你安装它的任何位置,conf/ 文件夹内)更改它在文件 server.xml 中查找
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
并更改端口。您还需要更改关闭端口,否则您将收到警告,因为您不能使用相同的端口(以防您运行多个 tomcat)