服務器設備,如果申請域名之后,端口默認指向的為80端口,但是我們更多的服務是發布在了tomcat當中,更多的是使用的8080端口
眾所周知,服務器安裝nginx能夠做端口映射,然后將服務制定到大家想要的地方。
工作需求,提供一個不需要安裝nginx的情況下,將80端口映射到8080端口,從而達到直接訪問服務器去到達8080端口的服務。
用tomcat用戶登錄,啟動tomcat,發現tomcat無法啟動,出現錯誤:LifecycleException: Protocol handler initialization failed: java.net.BindException: Permission denied <null>:80
通過 netstat -lnp|grep 80 發現沒有程序占用80端口
原因是只有root用戶才可訪問1024以下的端口。
解決方法:
重將server.xml中的端口改為8080 ,然后通過iptables將80端口跳轉到8080端口
通過iptables去做端口映射,將80端口映射到8080
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
缺陷:這樣的話,如果偶然原因服務器需要重新啟動,端口映射需要重新添加,從新執行下上面的命令即可。
如果是個人服務器使用,並且配置不是很高,不想安裝nginx的情況下,使用這個方法能夠解決你所遇到的問題。