zoukankan      html  css  js  c++  java
  • LInux设置tomcat端口为80

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

      上面的是tomcat的默认端口号,我们只需要吧8080改成80即可。但是和修改之后是无论如何都无法访问的。

      网上有很多说法,我尝试了都不能解决当前问题,最后终于找到了问题的原因。

      在Linux系统。普通程序无法监听1024以下的端口,1024以下的端口只有root应用程序能使用,所以即使把tomcat的端口号改成80也无法监听到从80端口进来的服务请求。

      解决方案是使用端口转发,将80端口进来的服务请求转发到tomcat的端口上去,这里以8080为例子。

      设置端口转发命令:

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

      我使用的mint版本的Linux系统,没有/etc/sysconfig/iptables,所以必须手动保存,不然重启一次机器配置就失效了,然后还得让系统每次启动重新加载配置文件。

      做法如下:在编辑/etc/network/interfaces,在末尾添加以下两行。

      第一行是每次启动重新加载/etc/iptables.up.rules文件到iptables,iptables-restore命令是重新加载iptables配置

      第二行是每次关机将iptables的配置保存到/etc/iptables.up.rules文件中

    pre-up iptables-restore < /etc/iptables.up.rules
    post-down iptables-save > /etc/iptables.up.rules

      以上,就完成了配置,即可实现tomcat绑定80端口。

       但我依然有我不能理解的地方,按照我的理解,即把tomcat的端口改成8080或者其他任意的可用端口都可以实现端口转发,但是这里必须把80端口添加到tomcat的server.xml文件中才能实现正常访问。即在server.xml文件里面必须有以下配置

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

      没有配置8080端口也可以访问到,这种表现不就是在说,只需要把server.xml的文件的端口号改成80就可以了吗?

  • 相关阅读:
    POJ 3279 Fliptile
    FZU 2143 Board Game
    【HDU 5015】233 Matrix
    【BZOJ 2463】 谁能赢呢?
    【POJ 2311】 Cutting Game
    【HDU 1846】 Brave Game
    【HDU 1847】 Good Luck in CET-4 Everybody!
    【Codeforces 258D】 Count Good Substrings
    【Codeforces 258B】 Sort the Array
    【Codeforces 258A】 Game With Sticks
  • 原文地址:https://www.cnblogs.com/ouhaitao/p/8717915.html
Copyright © 2011-2022 走看看