在端口80上的Spring Boot运行应用程序
我无法启动端口80上的应用程序。 我已经尝试在本地计算机上的IDE和服务器上,没有运气。我检查了其他类似的帖子,并确保我使用root在服务器上运行jar。在端口80上的Spring Boot运行应用程序
这是错误:
till here all ok
...
java.net.SocketException: Permission denied
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:338)
at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:760)
at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:472)
at org.apache.catalina.connector.Connector.startInternal(Connector.java:986)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardService.addConnector(StandardService.java:237)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:186)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:149)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:288)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:957)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:946)
at com.andirod.StartApplication.main(StartApplication.java:20)
...
...
...
Exception in thread "main" java.lang.IllegalStateException: Tomcat connector in failed state
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:157)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:288)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:957)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:946)
at com.andirod.StartApplication.main(StartApplication.java:20)
在1024以下的Linux端口只能由根被打开,所以80端口被限制默认
如果你想在80端口上发布你的应用程序,你需要将请求从端口80重定向到你要运行你的端口pringapp(如8080)端口
可以使用的Apache2服务器至极默认情况下,允许端口80上的工作,可以为你的tomcat
为Debian
apt-get install apache2
a2enmod proxy
a2enmod proxy_http
cd /etc/apache2/sites-enabled
<VIRTUALHOST.*>
ProxyPreserveHost On
...
ProxyPass/http://localhost:8080/
</VIRTUALHOST>
服务的Apache2示例配置转发请求重新启动
或用iptables的重定向
的iptables -t NAT -A PREROUTING -p tcp的--dport 80 -j REDIRECT --to-POR牛逼8080
,如果你需要使用本地主机还添加此
iptables的NAT -t -I OUTPUT -p tcp的-d 127.0.0.1 --dport 80 -j REDIRECT --to端口8080
感谢iptables解决方案。 – heroin
添加-Djava.net.preferIPv4Stack=true
到VM选项
JavaMail API to iMail -- java.net.SocketException: Permission denied: connect
刚遇到这个问题。我在Ubuntu AWS实例上运行Spring Boot应用程序。
java -jar app.jar --server.port=80
会给我一个错误,就像你所描述的。解决方案,因为1024以下的端口只能由root打开,所以添加“sudo”。 sudo java -jar app.jar --server.port=80
。
感谢鼓舞我:D
在什么平台上?另见[这个答案](http://stackoverflow.com/a/414258/2970947)。 –