我如何redirectLinux上的端口号?

我在端口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议执行以下操作。

  1. 安装httpd

      yum install httpd 
  2. 创build文件

      /etc/httpd/conf.d/myredirect.conf 

    具有以下内容:

     ProxyPass http://127.0.0.1:8080/myapps/
     ProxyPassReverse http://127.0.0.1:8080/myapps/
    
  3. 如果应用程序驻留在根中,则configuration将如下所示:

     ProxyPass http://127.0.0.1:8080/
     ProxyPassReverse http://127.0.0.1:8080/
    
  4. 重新启动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来访问你的应用程序。