Spring Boot端口转发80到8080

时间:2018-04-25 00:59:12

标签: spring .htaccess spring-boot thymeleaf centos7

我最近创建了一个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。 anyonke知道我可以在哪里添加一个veirtualhost到hepsia的httpd实现吗?

提前感谢您提供任何帮助

2 个答案:

答案 0 :(得分:0)

更改Boot应用程序以侦听端口80。

application.properties ...

server.port=80
祝你好运。

答案 1 :(得分:0)

除非您的应用程序在许多Linux发行版上以root用户身份运行,否则上述答案将无效。绕过这种情况的标准方法是在Web服务器(在端口80上运行)后面运行您的应用程序,并将这些Web服务器请求转发到您的应用程序。

如果这对你的目的来说太过分了,你可以看到iptablea routing / redirect。

首先确保您的端口已打开

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