ฉันใช้เซิร์ฟเวอร์ Tomcat บนubuntu
เครื่องที่โฮสต์ในอินสแตนซ์ของ AWS ฉันสามารถเข้าถึงเซิร์ฟเวอร์ผ่านทางpublic_ip:8080
แต่เมื่อฉันเปลี่ยนพอร์ตฟังบนserver.xml
จาก8080
การ80
เชื่อมต่อถูกปฏิเสธโดยโฮสต์ระยะไกล
หมายเลขพอร์ตเปิดใช้งานบน80
AWS firewall
ฉันตรวจสอบufw
ผ่านsudo ufw status
แต่ผลลัพธ์คือinactive
คือufw
front-end ของกลไกไฟร์วอลล์พื้นฐาน?
ฉันสามารถเปิดใช้งานพอร์ต80
บนfirewall
?
ขอขอบคุณล่วงหน้า.
Ouptut ของiptables -S
:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
ผลผลิตของ netstat -punta
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:3306 0.0.0.0:* LISTEN 785/mysqld
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 613/sshd
tcp 0 0 172.31.1.56:22 92.45.23.114:3913 ESTABLISHED 5825/sshd: ubuntu [
tcp 0 0 172.31.1.56:22 92.45.23.114:19374 ESTABLISHED 7320/sshd: ubuntu [
tcp 0 0 172.31.1.56:22 92.45.23.114:28051 ESTABLISHED 6901/sshd: ubuntu [
tcp 0 272 172.31.1.56:22 92.45.23.114:9327 ESTABLISHED 7428/sshd: ubuntu [
tcp 0 0 172.31.1.56:22 92.45.23.114:7597 ESTABLISHED 7034/sshd: ubuntu [
tcp 0 0 127.0.0.1:3306 127.0.0.1:45655 ESTABLISHED 785/mysqld
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 7275/java
tcp6 0 0 :::8080 :::* LISTEN 7275/java
tcp6 0 0 :::22 :::* LISTEN 613/sshd
tcp6 0 0 127.0.0.1:45655 127.0.0.1:3306 ESTABLISHED 7275/java
udp 0 0 0.0.0.0:68 0.0.0.0:* 538/dhclient3
เอาต์พุตของnetstat -na |grep \:80
ก่อนเปลี่ยนพอร์ตเป็น80
:
tcp6 0 0 127.0.0.1:8005 :::* LISTEN
tcp6 0 0 :::8080 :::* LISTEN
ผลลัพธ์ของnetstat -na |grep \:80
หลังจากเปลี่ยนพอร์ตเป็น80
:
tcp6 0 0 127.0.0.1:8005 :::* LISTEN
ผลลัพธ์ของเบราว์เซอร์บนพอร์ต80
:
ERROR
The requested URL could not be retrieved
The following error was encountered while trying to retrieve the URL: http://54.194.236.229/TransportationAutomation/personnel.xhtml
Connection to 54.194.236.229 failed.
The system returned: (111) Connection refused
The remote host or network may be down. Please try the request again.
Your cache administrator is webmaster.
Generated Fri, 14 Feb 2014 15:01:06 GMT by proxy (squid/2.7.STABLE7)
ส่วนนิยามพอร์ตของ server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
ส่วนหนึ่งของ Catalina.out เมื่อเริ่มต้น tomcat บนport 80
:
Feb 14, 2014 3:04:25 PM org.apache.coyote.AbstractProtocol init
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-80"]
java.net.BindException: Permission denied <null>:80
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:391)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:554)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:409)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:956)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:815)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:594)
at org.apache.catalina.startup.Catalina.load(Catalina.java:619)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)
Caused by: java.net.BindException: Permission denied
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:181)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:378)
... 17 more
อัปเดต 2:
ฉันติดตั้งโพงผ่านapt-get
ดังนั้นมันจึงเป็นเวอร์ชั่นใหม่ของโพงแคท ที่นี่มีข้อความระบุว่าการใช้ Tomcat เป็นรูทจะช่วยแก้ปัญหา แต่ที่นี่มันบอกว่าTomcat should not be run under the root user.
ไม่มีวิธีที่เป็นไปได้ที่จะจัดการกับอินสแตนซ์ Tomcat ที่บรรจุใหม่หรือไม่
อัปเดต 3:
ฉันเดาว่านี่คือคำตอบสำหรับคำถามของฉัน
apt-get
ฉันแค่ต้องการชี้ให้เห็นว่าการเปลี่ยนพอร์ตserver.xml
โดยทั่วไปไม่เพียงพอเพราะพอร์ต 80 เป็นพอร์ตที่มีสิทธิพิเศษ คุณเช็คอินcatalina.out
เพื่อดูว่าคุณมีข้อผิดพลาดหรือไม่?