如何在端口80上运行Spring Boot应用程序

5人

我无法在端口80上启动应用程序。

我已经在本地计算机(使用IDE和本地服务器)上尝试过,没有运气。

我检查了其他类似的帖子,并确保我在具有root用户的服务器上运行jar。

这是错误:

 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)
奥斯卡·达诺维奇(Oskar Dajnowicz)

在Linux上,只能由root用户打开低于1024的端口,因此默认情况下限制端口80

如果要在80端口上发布应用,则需要将请求从80端口重定向到要运行springapp(例如8080)端口的端口

解决方案1:HTTP代理服务器

您可以使用默认情况下允许在端口80上运行的Apache2服务器,并且可以将对您的请求转发到Tomcat

Debian的示例配置

sudo apt-get install apache2

a2enmod proxy
a2enmod proxy_http   

cd /etc/apache2/sites-enabled
sudo nano 000-default.conf

编辑文件:

<VIRTUALHOST *:80>

    ProxyPreserveHost On

    # ...

    ProxyPass / http://localhost:8080/
</VIRTUALHOST>

保存文件:Ctrl+ OENTERCtrl+X

注意:要了解有关虚拟主机配置的更多信息,您可以通过单击此处查看关于该主题的详细Apache手册

重新启动Apache2以应用更改:

sudo service apache2 restart

或者

sudo systemctl restart apache2

解决方案2:端口转发

使用iptables进行重定向

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

如果您需要使用本地主机,也添加此

iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

Spring Boot应用程序即服务

来自分类Dev

如何在同一服务器上运行两个spring boot应用程序?

来自分类Dev

多个应用程序如何在同一端口(80)上侦听?

来自分类Dev

在Amazon AWS上启动Spring Boot应用程序,如何设置目标运行时

来自分类Dev

如何在不使用VHOST的情况下通过80端口在Dokku上运行应用程序?

来自分类Dev

从Spring Boot应用程序访问SessionFactory

来自分类Dev

SSH访问Spring Boot应用程序

来自分类Dev

Spring Boot:更改Web应用程序的端口

来自分类Dev

黄瓜测试Spring Boot应用程序

来自分类Dev

在Bluemix上运行Spring Boot应用程序时出错

来自分类Dev

Spring Boot-非Web应用程序的长期运行的应用程序

来自分类Dev

如何为Windows 2008上不同平台上运行的应用程序共享端口80

来自分类Dev

如何在Spring Boot应用程序的管理端口上禁用安全性?

来自分类Dev

如何在Spring Boot应用程序中配置PageableHandlerMethodArgumentResolver

来自分类Dev

更改Spring Boot应用程序的端口而不更改代码

来自分类Dev

如何在Spring Boot应用程序中运行多个控制器?

来自分类Dev

如何扩展Spring Boot应用程序?

来自分类Dev

Spring Boot应用程序未更改

来自分类Dev

如何在Spring Boot / PostgreSQL应用程序中检查长期运行的查询?

来自分类Dev

Spring Boot应用程序IntelliJ

来自分类Dev

多个Spring Boot应用程序

来自分类Dev

集群Spring Boot应用程序

来自分类Dev

如何在独立 Tomcat 中运行的 Spring Boot 应用程序中设置 cookie 名称?

来自分类Dev

Spring boot 应用程序启动错误

来自分类Dev

如何在没有 Eclipse 的情况下运行 Spring Boot 应用程序?

来自分类Dev

Spring Boot 应用程序无法启动?

来自分类Dev

如何在 spring boot 启动期间关闭应用程序

来自分类Dev

Spring Boot 应用程序 - Maven 问题

来自分类Dev

在服务器上运行 spring boot 应用程序

Related 相关文章

  1. 1

    Spring Boot应用程序即服务

  2. 2

    如何在同一服务器上运行两个spring boot应用程序?

  3. 3

    多个应用程序如何在同一端口(80)上侦听?

  4. 4

    在Amazon AWS上启动Spring Boot应用程序,如何设置目标运行时

  5. 5

    如何在不使用VHOST的情况下通过80端口在Dokku上运行应用程序?

  6. 6

    从Spring Boot应用程序访问SessionFactory

  7. 7

    SSH访问Spring Boot应用程序

  8. 8

    Spring Boot:更改Web应用程序的端口

  9. 9

    黄瓜测试Spring Boot应用程序

  10. 10

    在Bluemix上运行Spring Boot应用程序时出错

  11. 11

    Spring Boot-非Web应用程序的长期运行的应用程序

  12. 12

    如何为Windows 2008上不同平台上运行的应用程序共享端口80

  13. 13

    如何在Spring Boot应用程序的管理端口上禁用安全性?

  14. 14

    如何在Spring Boot应用程序中配置PageableHandlerMethodArgumentResolver

  15. 15

    更改Spring Boot应用程序的端口而不更改代码

  16. 16

    如何在Spring Boot应用程序中运行多个控制器?

  17. 17

    如何扩展Spring Boot应用程序?

  18. 18

    Spring Boot应用程序未更改

  19. 19

    如何在Spring Boot / PostgreSQL应用程序中检查长期运行的查询?

  20. 20

    Spring Boot应用程序IntelliJ

  21. 21

    多个Spring Boot应用程序

  22. 22

    集群Spring Boot应用程序

  23. 23

    如何在独立 Tomcat 中运行的 Spring Boot 应用程序中设置 cookie 名称?

  24. 24

    Spring boot 应用程序启动错误

  25. 25

    如何在没有 Eclipse 的情况下运行 Spring Boot 应用程序?

  26. 26

    Spring Boot 应用程序无法启动?

  27. 27

    如何在 spring boot 启动期间关闭应用程序

  28. 28

    Spring Boot 应用程序 - Maven 问题

  29. 29

    在服务器上运行 spring boot 应用程序

热门标签

归档