的Tomcat的webapp在端口80
我有这样我的tomcat服务器上的Web应用程序:的Tomcat的webapp在端口80
mydomain.com:8080/mywebapp
然后我连接到我的web应用程序,它工作正常,但我希望看到我的webapp像这样:
mydomain.com
所以我不想在端口80只tomcat的,我不想通过其名称来访问我的web应用程序,我想直接用我的域名URI连接。
我该怎么做?我希望这可以与Linux(Ubuntu 12.04 LTS)和Windows服务器一起使用。
有几种方式来实现这一点,但最常见的方式来解决它是在其前面运行Apache作为反向代理。你可以找到一些细节here。这将适用于Linux和Windows。对于Linux,您还可以使用authbind
来允许Tomcat绑定到端口80. 只需将您的server.xml
中的端口更改为80
在Linux中将不起作用,因为它需要您启动Tomcat作为root
,这不是很好理念。
另外,要让您的webapp在/
,您可以将您的war文件部署为ROOT.war
。
在特权端口(低于1024的那些端口)上运行任何应用程序都需要特殊权限。如果你这样做,你应该确保你的实例是properly hardened。
配置端口tomcat的监听你必须修改conf下的HTTP连接器/ server.xml中(server reference documentation):
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
要更改应用的上下文路径,您可以重命名WAR文件。要将其部署到根目录,请将您的war文件重命名为ROOT.war。或者你可以添加一个META-INF/context.xml的在其中您可以指定所需的上下文路径(context reference docs):
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/" />
我已经尝试了80端口的更改端口,但它不能在Linux上工作,也许它需要一些额外的步骤,但我不想要安全风险。 – eLRuLL 2013-05-01 21:41:36
这可能是因为tomcat没有以root身份运行;不允许非根进程绑定到特权端口。解决这个问题的另一个好方法是实现mod_jk或使用apache设置反向代理。 – ilikeorangutans 2013-05-02 01:08:12
太好了,我想我会使用authbind,使用这些步骤:http://java.dzone.com/articles/running-tomcat-port-80-user – eLRuLL 2013-05-01 21:40:08