【问题标题】:Spring Boot port forwarding 80 to 8080Spring Boot端口转发80到8080
【发布时间】:2018-04-25 00:59:12
【问题描述】:

我最近创建了一个 Spring Boot 应用程序并将其启动到我的远程服务器。我正在运行 centos7 并且我已经修改了 iptables 以将端口 80 发送到 8080 但这似乎什么也没做。我目前也有这个在 .htaccess 文件中以使其工作:

RewriteCond %{SERVER_PORT} 80$ [NC]
RewriteRule index.html$ http://%{HTTP_HOST}:8080/ [P,S=1]
RewriteRule (.*) http://%{HTTP_HOST}:8080%{REQUEST_URI} [P]

我对当前解决方案的问题是它适用于基本网址 blah.com,但该页面的任何后续链接都将具有 blah.com:8080/page.html。因此,我如何更好地管理显示给客户端的 URL,以便它们没有端口。

我认为真正的问题是 hepsia 正在运行并且似乎已经在端口 80 上安装了 httpd。有谁知道我可以在哪里添加一个 veirtualhost 到 hepsia 的 httpd 实现?

提前感谢您的帮助

【问题讨论】:

    标签: spring .htaccess spring-boot thymeleaf centos7


    【解决方案1】:

    除非您的应用程序在许多 Linux 发行版上以 root 身份运行,否则上述答案将不起作用。绕过此问题的标准方法是在网络服务器(在端口 80 上运行)运行您的应用程序,并将这些网络服务器请求转发到您的应用程序。

    如果这对你来说太过分了,你可以设置 iptables 路由/重定向。

    首先确保你的端口是开放的

    sudo iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
    sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
    

    然后重定向如下

    sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
    

    【讨论】:

      【解决方案2】:

      将启动应用更改为侦听端口 80。

      application.properties...

      server.port=80
      

      祝你好运。

      【讨论】:

        猜你喜欢
        • 2015-01-06
        • 2014-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-21
        • 2015-04-06
        • 2016-03-10
        • 1970-01-01
        相关资源
        最近更新 更多