天天看點

nginx 普通使用者使用80端口啟動nginx

方法一: 依次執行如下指令

cd /usr/local/nginx/sbin/ 
chown root nginx
chmod u+s nginx      

優點是,友善簡單,缺點是,既然sudo權限都不給了。這個set uid 最後也是讓nginx運作在root權限下。 ps -ef |grep nginx 檢視的時候,nginx的主程序是運作在root下的。 雖然是可以讓普通使用者運作nginx服務,但是不是所有nginx程序都在使用者本身下運作

方法二:iptables端口轉發

使用非80端口啟動程式,然後再用iptables做一個端口轉發。

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 
#用root使用者直接去執行就可以了! 
(
sysctl -w net.ipv4.ip_forward=1
iptables -F -t nat #清空nat表
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to:8088
)      

優點:可以用第三方使用者直接啟動,nginx的主程序就是使用者本身來啟動的。缺點,額外增加開銷,負載低的情況可以,負載高了 就不太好了

方案三:賦予nginx監聽80端口的能力

nginx核心 超過2.1版本以後 出現了能力的說法

我們可以給/usr/local/nginx/sbin/nginx 賦予監聽80端口的權限能力

setcap cap_net_bind_service =+ep /usr/local/nginx/sbin/nginx      

這樣就可以直接用普通使用者啟用nginx了。并且可以在高負載的情況下,減少由于端口轉發部分的負載開銷。

人們永遠沒有足夠的時間把它做好,但永遠有足夠的時間重新來過。

可是,因為并不是總有機會重做一遍,你必須做得更好,換句話說,

人們永遠沒有足夠的時間去考慮到底是不是想要它,但永遠有足夠的時間去為之後悔。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

淺掘千口井,不如深挖一口井!當知識支撐不了野心時,那就靜下心來學習吧!運維技術交流QQ群:618354452

個人微信公衆号,定期釋出技術文章和運維感悟。歡迎大家關注交流。

nginx 普通使用者使用80端口啟動nginx