我最近创建了一个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实现吗?
提前感谢您提供任何帮助
答案 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