Redhat

Azure 上的 RHEL 7.5 和 Tomcat 8.5,不監聽公共地址

  • November 21, 2018

我創建了一個託管在 Azure 上的 RHEL 7.5,並在其中安裝了 Tomcat 8.5。我已將 Tomcat 配置server.xml如下:

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

如果我在本地 CURL 頁面,它可以工作:

curl http://127.0.0.1:8080

inbound rule在 Azure 中為任何 IP打開了一個8080. 當我這樣做時,netstat -nap我得到了這個,我認為這是 Tomcat 只在 IP6 上監聽(我省略了不感興趣的記錄):

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0    352 10.0.0.4:22             85.195.192.179:58305    ESTABLISHED -
tcp6       0      0 :::8080                 :::*                    LISTEN      -

我已將 Tomcat 配置為作為服務執行。在裡面$CATALINA_HOME/bin/setenv.sh使用這個設置創建了:

JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true "

但是,或者它沒有選擇設置,或者我做錯了什麼。有什麼線索嗎?

您還需要確保在網路安全組 (NSG) 上打開埠 8080,或將虛擬機的 NSG 設置為無(不推薦)。NSG 文件在這裡:https ://docs.microsoft.com/en-us/azure/virtual-machines/windows/nsg-quickstart-portal

引用自:https://serverfault.com/questions/940522