如何将Tomcat的端口从8080改为80?

Posted

技术标签:

【中文标题】如何将Tomcat的端口从8080改为80?【英文标题】:How to change the port of Tomcat from 8080 to 80? 【发布时间】:2011-06-12 23:10:07 【问题描述】:

我想以http://localhost 的身份执行我的网络应用程序。

【问题讨论】:

这可能会帮助你digizol.com/2008/06/tomcat-how-to-change-port-8080.html 【参考方案1】:

1) 进入tomcat安装目录下的conf文件夹

 e.g. C:\Tomcat 6.0\conf\

2) 编辑server.xml文件中的以下标签

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

3) 将port=8080 值更改为port=80

4) 保存文件。

5) 停止 Tomcat 并重新启动它。

【讨论】:

另外,请确保停止并重新启动 Tomcat。只是说。 :) 我这样做了,我得到一个 404 错误!还有什么我应该做的吗? etc/default/tomcat7 中设置 AUTHBIND=yes,以避免端口 80 出现 PermissionDenied 错误。 查看 Rose 对 Linux 环境的回答! 此答案缺少 /etc/authbind 信息,请参阅下面 Rose 的答案【参考方案2】:

Ubuntu 14.04 LTS,在 Amazon EC2 中。 以下步骤为我解决了这个问题:

1。 编辑 server.xml 并将 port="8080" 更改为 "80"

sudo vi /var/lib/tomcat7/conf/server.xml

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

2。 编辑tomcat7文件(如果文件没有创建则需要创建)

sudo vi /etc/default/tomcat7

取消注释并将#AUTHBIND=no 更改为yes

3。 安装 authbind

sudo apt-get install authbind

4。 运行以下命令,在端口 80 上提供 tomcat7 读取+执行。

sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown tomcat7 /etc/authbind/byport/80

5。 重启tomcat:

sudo /etc/init.d/tomcat7 restart

【讨论】:

那个有效。 Linux 人,至少对我来说适用于 Ubuntu 14.04.2 LTS。 自动绑定是正确的答案。但请注意,如果您使用“sudo startup.sh”,则可以跳过自动绑定,因为端口 80 将被授予升级用户。 谢谢!!我知道在服务器配置中启用 authbind,但不知道我必须在 authbind 中为注册端口创建一个文件!我希望 OP 已将接受的解决方案更改为这个答案! (我看到你迟到了将近 3 年的回答:P) 它可以在 Lubuntu 18.0.4 上与 Tomcat 9 一起使用,无需安装 authbind,只需添加设置。【参考方案3】:

在基于 Linux Debian(包括 Ubuntu)上,您还必须转到 /etc/default/tomcat7,取消注释 #AUTHBIND=no 行并将其值设置为“是”,以便让服务器绑定到特权端口.

【讨论】:

嗨,我没有那个特定的文件 什么版本的tomcat?你在什么操作系统上? 如果通过 zip/tar.gz 安装,则不适用于 Tomcat,因为它们不会在 /etc/defaults/ 中创建文件。 上面那个路径应该是:/etc/default/tomcat7(注意默认没有's') Tomcat 9 的等价物是什么?【参考方案4】:

在 Ubuntu 和 Debian 系统上,需要几个步骤:

    在 server.xml 中,将行 &lt;Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/&gt; 更改为 port="80"

    安装推荐的(非必需)authbind 包,使用如下命令:

    sudo apt-get install authbind

    通过取消注释并设置如下行,在 server.xml 文件(/etc/tomcat6/etc/tomcat7)中启用 authbind:

    AUTHBIND=yes

三个步骤都需要。

【讨论】:

不适用于 13.10 中的 Tomcat(如果通过 zip/tar.gz 安装)。 要让它在 zip/tar.gz 中工作,请执行上面的步骤 1 和 2,将 AUTHBIND=yes 添加到 bin/setenv.sh(如果不存在则创建)并从根目录开始。适用于 LTS 12.04,也应适用于 13.10。 在我的情况下,没有 authbind 包,它失败了(在 catalina.out 中没有错误消息),安装后工作 能否请您指出有关 AUTHBIND=yes 的文档?我找不到它。 我在 TOMCAT 文档中也找不到提到 AUTHBIND 设置作为服务器元素配置的一部分。奇怪。【参考方案5】:

我尝试在server.xml 中将端口从8080 更改为80,但这对我不起作用。然后我找到了替代方案,更新了iptables,我确信这会对性能产生影响。

我使用以下命令:

sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo /sbin/service iptables save

http://www.excelsior-usa.com/articles/tomcat-amazon-ec2-advanced.html#port80

【讨论】:

如何恢复? 运行以下命令删除路由:iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080【参考方案6】:

由于以前的答案在 14.04 Ubuntu 服务器上对我来说效果不佳(很好,但还不够),我提到了 these recommendations(这是一个引用)。

编辑:请注意,正如@jason-faust 在 cmets 中提到的那样,在 14.04 上,它附带的 authbind 软件包现在确实支持 IPv6,因此不再需要首选 IPv4 的东西。

1) Install authbind
2) Make port 80 available to authbind (you need to be root):

  touch /etc/authbind/byport/80
  chmod 500 /etc/authbind/byport/80
  chown tomcat7 /etc/authbind/byport/80

3) Make IPv4 the default (authbind does not currently support IPv6).
   To do so, create the file TOMCAT/bin/setenv.sh with the following content: 

   CATALINA_OPTS="-Djava.net.preferIPv4Stack=true"

4) Change /usr/share/tomcat7/bin/startup.sh

  exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"
  # OLD: exec "$PRGDIR"/"$EXECUTABLE" start "$@"

如果你已经在/usr/share/tomcat7/binCATALINA_OPTS 中有一个setenv.sh 文件,你必须使用:

export CATALINA_OPTS="$CATALINA_OPTS -Djava.net.preferIPv4Stack=true"

现在您可以按照其他答案中的说明将端口更改为80

【讨论】:

我要补充一点,startup.sh 文件位于:/usr/share/tomcat7/bin/startup.sh - 这对我们新手来说并不完全明显;) @ConMan 更新了路径,这是保存其他搜索的好主意。我承认一开始知道这个地方并不明显。 谢谢,这很好用,我已经习惯了 centos,所以这对我有帮助,这对我来说不是问题。 我今天刚在 14.04 关注这个,它附带的 authbind 包现在确实支持 IPv6,所以不再需要首选 IPv4 的东西了。 我也做过:chmod 755 /usr/share/tomcat7/bin/setenv.sh【参考方案7】:

在现代 linux 上(对我而言)最好的方法是使用 xinetd :

1) 创建/etc/xinet.d/tomcat-http

service http

        disable = no
        socket_type = stream
        user = root
        wait = no
        redirect = 127.0.0.1 8080

2) 创建/etc/xinet.d/tomcat-https

service https

        disable = no
        socket_type = stream
        user = root
        wait = no
        redirect = 127.0.0.1 8443

3) chkconfig xinetd on

4) /etc/init.d/xinetd 启动

【讨论】:

其他方式是编译使用jsvc,但xinetd肯定更简单【参考方案8】:

如果有人在找,如何在Eclipse IDE用户中更改tomcat端口号,步骤如下。

1.在服务器视图中,双击服务器名称:

2.这将打开一个Tomcat的配置页面,如下所示:

3.注意端口号如右表所示。点击编辑,例如:

4.这会将 HTTP 的端口号从 8080 更改为 80。按 Ctrl + S 保存更改并重新启动服务器。我们可以在 Console 视图中发现端口号的变化:

所有内容均取自以下链接,请参阅该链接以获取更多信息,谢谢。 http://www.codejava.net/servers/tomcat/how-to-change-port-numbers-for-tomcat-in-eclipse

【讨论】:

【参考方案9】:

运行下面的命令。尝试更改 server.xml 和 conf 文件,但均无效。

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT

/sbin/iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

【讨论】:

【参考方案10】:

在 linux 服务器上,您可以使用以下命令重新配置 Tomcat 以侦听端口 80:

sed -i 's|port="8080"|port="80"|g' /etc/tomcat?/server.xml
sed -i 's|#AUTHBIND=no|AUTHBIND=yes|g' /etc/default/tomcat?
service tomcat8 restart

【讨论】:

【参考方案11】:

如果您使用 eclipse 并且修改 server.xml 对您不起作用,请尝试关注 article.. 如果您使用 Eclipse 之类的 IDE,他们有修改端口的步骤。

【讨论】:

【参考方案12】:

直接转到tomcat的conf文件夹

打开 server.xml 文件

转到如下所示的连接器节点之一

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" />

只需更改端口

保存并重启tomcat

【讨论】:

仅在 Windows 上不是吗?【参考方案13】:

步骤如下:

--> 按照路径:tomcat目录>/conf -->找到这一行:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

将端口号从“8080”更改为“80”。

--> 保存文件。

--> 重启服务器 :)

【讨论】:

【参考方案14】:

不要忘记编辑文件。打开文件/etc/default/tomcat7 并更改

#AUTHBIND=no

AUTHBIND=yes

然后重新启动。

【讨论】:

如果不存在则创建

以上是关于如何将Tomcat的端口从8080改为80?的主要内容,如果未能解决你的问题,请参考以下文章

如何将默认端口号更改为 Tomcat 端口号 8080?

将默认端口(80)更改为 8080 时如何设置虚拟主机?

为啥 Tomcat 使用端口 8080 而不是 80?

如何让tomcat服务器运行在80端口,并且无需输入项目名即可访问项目

tomcat的服务器 设置了8080端口 怎么域名指向这一段口

如何在端口 80 上运行 tomcat 8.5/删除 8080。tomcat 8.5.16,centos 7 最小安装,托管 24