java - Tomcat 使用端口 :443 and doesn't with :80 despite of enabling firewall

标签 java ubuntu tomcat connector

我对 Tomcat 连接器有疑问。当我尝试使用 SSL 连接时,它可以正常工作并且我可以访问该页面 ( https://nombritech.pl )。我希望能够从端口 80 重定向到 443,但是如果我尝试连接 http,我将无法访问该页面 ( http://nombritech.pl)。

我指定的这些连接器有问题吗?我认为我做的一切都像我在其他线程中看到的那样。

<Connector port="80" redirectPort="443" protocol="HTTP/1.1" connectionTimeout="20000" />
    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" KeystoreFile="/opt/tomcat/certificate/nombritech.pl.keystore" keystorePass="pass" />

我看不到任何通过端口 80 的流量:

enter image description here

我在 Ubuntu 17.10 和 Tomcat 9 beta 2 上运行它。

编辑:我认为它可能在 ipv6 而不是 ipv4 上运行:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN      23950/systemd-resol
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1151/dnsmasq
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      851/vsftpd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      19096/sshd
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      940/postgres
tcp        0      0 127.0.0.1:5433          0.0.0.0:*               LISTEN      939/postgres
tcp        0    464 79.137.81.193:22        29.72.22.156:52036      ESTABLISHED 20310/sshd: root@pt
tcp        0    136 79.137.81.193:22        29.72.22.156:53406      ESTABLISHED 27828/sshd: root@no
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      27741/java
tcp6       0      0 :::5355                 :::*                    LISTEN      23950/systemd-resol
tcp6       0      0 :::80                   :::*                    LISTEN      27741/java
tcp6       0      0 :::22                   :::*                    LISTEN      19096/sshd
tcp6       0      0 :::5432                 :::*                    LISTEN      940/postgres
tcp6       0      0 :::443                  :::*                    LISTEN      27741/java
udp        0      0 0.0.0.0:5355            0.0.0.0:*                           23950/systemd-resol
udp        0      0 127.0.0.1:54514         127.0.0.1:54514         ESTABLISHED 939/postgres
udp        0      0 127.0.0.53:53           0.0.0.0:*                           23950/systemd-resol
udp        0      0 192.168.122.1:53        0.0.0.0:*                           1151/dnsmasq
udp        0      0 0.0.0.0:67              0.0.0.0:*                           1151/dnsmasq
udp        0      0 0.0.0.0:68              0.0.0.0:*                           740/dhclient
udp        0      0 127.0.0.1:58536         127.0.0.1:58536         ESTABLISHED 940/postgres
udp6       0      0 :::5355                 :::*                                23950/systemd-resol

EDIT2: 我将其更改为 tcp 但它仍然没有响应 http:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      28573/java

端口 80 像以前一样关闭。你知道我现在可以用它做什么吗?对于此事的任何提示,我将不胜感激。

编辑:如果我有端口为 :8080 和 :443 的连接器,现在它可以工作了,虽然它已经在防火墙中启用并且我以 root 身份运行 Tomcat,但 :80 仍然不起作用,为什么可以那我不是在 :80 上运行它吗?Tomcat 在端口 :80 上监听并且连接总是被拒绝

编辑:

我当前的 server.xml:

<Service name="Catalina">
    <Connector port="80" redirectPort="443" protocol="HTTP/1.1" connectionTimeout="20000" address="0.0.0.0"/>
    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" KeystoreFile="/opt/tomcat/certificate/nombritech.pl.keystore" keystorePass="pass" />
    <Engine name="Catalina" defaultHost="localhost">
        <Realm className="org.apache.catalina.realm.LockOutRealm">
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" />
        </Realm>
        <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true"></Host>
    </Engine>
</Service>

最佳答案

我重新安装了我的 Ubuntu 服务器,现在它可以正常工作了。我不知道这个问题的确切原因,但它一定是防火墙或其他网络相关问题,因为 Tomcat 配置与以前相同。

感谢您在这件事上的帮助,我很高兴它开始起作用 :)。我希望我知道为什么它没有工作。

关于java - Tomcat 使用端口 :443 and doesn't with :80 despite of enabling firewall,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47896090/

相关文章:

java - SimpleMessageListenerContainer - 从失败中恢复

java - 如何在 java 中创建自定义编译器警告?

ubuntu - ffmpeg - Ubuntu - 将 mkv 转换为 mp4 和 hard sub

node.js - 无法从公共(public) IP 访问 AWS Linux (Ubuntu) 托管应用程序

sql - 无法将tomcat连接到MSSQL 2008 R2

java - 递归到普通循环转换

linux - bash 没有 $(函数参数) 的参数

Eclipse Tomcat 集成 : useBean class attribute [class] is invalid

linux - HTTP 状态 500 - 字体 'Arial' 对 JVM 不可用

java - OpenJDK 8 是 Java SE 8 的引用实现吗?