我在端口8080上的Linux机器上运行了Tomcat应用程序( www.myapplication.com:8080/myapps )。
我想将Tomcat端口:8080redirect到默认的HTTP端口:80这样应用程序就可以在没有端口号( www.myapplication.com/myapps )的情况下被使用。
我怎么能在Linux上做到这一点?
您可以使用iptables将端口80redirect到8080。
如果您的应用程序是由非特权用户而非root启动的,那么这非常有用。
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
HTH,PEra
有这么多的方法来实现这一点,但我首先想到的是使用nginx : 如何使用nginx 将端口8080 URL永久redirect到端口80
另一个是使用iptables : http : //www.cyberciti.biz/faq/linux-port-redirection-with-iptables/
你永远不应该面对外部世界的Tomcat或任何其他Java应用程序服务器。 最好的做法是安装Apache HTTPD并使用它反向代理来包装Tomcat或JBoss。
我build议执行以下操作。
安装httpd :
yum install httpd
创build文件
/etc/httpd/conf.d/myredirect.conf
具有以下内容:
ProxyPass http://127.0.0.1:8080/myapps/ ProxyPassReverse http://127.0.0.1:8080/myapps/
如果应用程序驻留在根中,则configuration将如下所示:
ProxyPass http://127.0.0.1:8080/ ProxyPassReverse http://127.0.0.1:8080/
重新启动httpd :
服务httpd重启
上面的说明是为RedHat-family linux提供的。 他们可能会有所不同。
首先应该更改server.xml文件,将“Connector port =”8080“”更改为“80”。 该文件可能在/ etc / tomcat6,或者你可以使用“locate server.xml”来find它。
其次你应该改变默认的tomcat6configuration文件,在我的系统(debian squeeze)中是/ etc / default / tomcat6,join这行:AUTHBIND = yes。
重启你的tomcat。
那么你可以使用www.myapplication.com/myapps来访问你的应用程序。