默認狀況下Linux的1024如下端口是隻有root用戶纔有權限佔用,咱們的tomcat,apache,nginx等等程序若是想要用普通用戶來佔 用80端口的話就會拋出java.net.BindException: Permission denied:80的異常。
解決辦法有兩種:
1.使用非80端口啓動程序,而後再用iptables作一個端口轉發。
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
用root用戶直接去執行就能夠了!
2.假設咱們須要啓動的程序是nginx,那麼這麼作也能夠達到目的。
一開始咱們查看nginx的權限描述:
-rwxr-xr-x 1 nginx dev 2408122 Sep 5 16:01 nginx
這個時候必然是沒法正常啓動的。
首先修改文件所屬用戶爲root:
chown root nginx
而後再加上s權限:
chmod u+s nginx
再次查看權限描述的時候:
-rwsr-xr-x 1 root root 2408122 Sep 5 16:01 nginx
這樣就能啓動了。java