【发布时间】:2011-06-12 23:10:07
【问题描述】:
我想以http://localhost 的身份执行我的网络应用程序。
【问题讨论】:
我想以http://localhost 的身份执行我的网络应用程序。
【问题讨论】:
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 并重新启动它。
【讨论】:
etc/default/tomcat7 中设置 AUTHBIND=yes,以避免端口 80 出现 PermissionDenied 错误。
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
【讨论】:
authbind,只需添加设置。
在基于 Linux Debian(包括 Ubuntu)上,您还必须转到 /etc/default/tomcat7,取消注释 #AUTHBIND=no 行并将其值设置为“是”,以便让服务器绑定到特权端口.
【讨论】:
在 Ubuntu 和 Debian 系统上,需要几个步骤:
在 server.xml 中,将行 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/> 更改为 port="80"。
安装推荐的(非必需)authbind 包,使用如下命令:
sudo apt-get install authbind
通过取消注释并设置如下行,在 server.xml 文件(/etc/tomcat6 或 /etc/tomcat7)中启用 authbind:
AUTHBIND=yes
三个步骤都需要。
【讨论】:
我尝试在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
【讨论】:
由于以前的答案在 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/bin 和CATALINA_OPTS 中有一个setenv.sh 文件,你必须使用:
export CATALINA_OPTS="$CATALINA_OPTS -Djava.net.preferIPv4Stack=true"
现在您可以按照其他答案中的说明将端口更改为80。
【讨论】:
在现代 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 启动
【讨论】:
如果有人在找,如何在Eclipse IDE用户中更改tomcat端口号,步骤如下。
4.这会将 HTTP 的端口号从 8080 更改为 80。按 Ctrl + S 保存更改并重新启动服务器。我们可以在 Console 视图中发现端口号的变化:
所有内容均取自以下链接,请参阅该链接以获取更多信息,谢谢。 http://www.codejava.net/servers/tomcat/how-to-change-port-numbers-for-tomcat-in-eclipse
【讨论】:
运行下面的命令。尝试更改 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
【讨论】:
在 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
【讨论】:
如果您使用 eclipse 并且修改 server.xml 对您不起作用,请尝试关注 article.. 如果您使用 Eclipse 之类的 IDE,他们有修改端口的步骤。
【讨论】:
直接转到tomcat的conf文件夹
打开 server.xml 文件
转到如下所示的连接器节点之一
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
只需更改端口
保存并重启tomcat
【讨论】:
步骤如下:
--> 按照路径:{tomcat目录>/conf -->找到这一行:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
将端口号从“8080”更改为“80”。
--> 保存文件。
--> 重启服务器 :)
【讨论】:
不要忘记编辑文件。打开文件/etc/default/tomcat7 并更改
#AUTHBIND=no
到
AUTHBIND=yes
然后重新启动。
【讨论】: