1. 程式人生 > >如何讓你的web應用執行在80埠

如何讓你的web應用執行在80埠

前言

        實際上,我們在開發的過程中總是會遇到伺服器的預設埠是8080,而HTTP協議的預設埠是80的問題,但是,在linux系統中,只有以root使用者啟動的程式才有資格佔用80埠,而實際上,在一般的伺服器維護中,我們很少用root使用者去啟動一個應用,如jetty、tomcat等。這樣做實在不安全,可以說是在為自己挖坑啊!那麼,我們如何解決呢?

解決方案

        看來我們只能另闢蹊徑了,如何才好?我們可以在8080埠和80埠之間做一個NAT轉化,具體的方法如下:

1、使用 ipchains(Linux 核心 2.2 以上) 
/sbin/ipchains -I input --proto TCP --dport 80 -j REDIRECT 8080 
2、使用 iptables(Linux 核心 2.4 以上) 
/sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 

        這樣的話,我們就將80埠的TCP包轉發給8080埠了,可以說解決了我們的問題。
        當然,有的同學說了,可以採取nginx轉發啊,好吧,這種方法暫時不在本文討論之列,因為畢竟要借用到外來的工具啦!可是,有的同學說了,假如,我要去掉這條規則怎麼辦?這好像看似比較複雜。哈哈,方法如下:
1、檢視目前80埠的對映規則:iptables -t nat -L -n | grep 80
2、刪除對應規則:iptables -t nat -D PREROUTING -p tcp –dport 8080 -j REDIRECT –to-port 80

總結

        啊哈,今天的分享就到這裡了,今天主要討論瞭如何在linux機器上新增埠轉發規則以及刪除埠轉發規則,解決我們服務執行在80埠上的問題,當然,只是間接的解決了啦!希望阿福的分享能給你帶來收穫!