這幾天在設定nginx的conf,想讓網址listen不同的port,原本想說只要conf配置好,firewall開放端口就好,但重啟nginx卻出現
nginx: [emerg] bind() to 0.0.0.0:8089 failed (13: Permission denied)
這個錯誤訊息,很明顯是在說權限不足,通常會有這問題幾乎是selinux造成的,以下是解決辦法
查詢目前開放的http port
semanage port -l | grep http_port_t
一般會顯示 80,81,443,488,8009,8443,9000 這幾個port
設定新的http port
我們假設要listen 8089 這個port 那我們可以執行以下指令
semanage port -a -t http_port_t -p tcp 8089
接著下來在設定防火牆開放(看有沒有要對外)
firewall-cmd --zone=public --add-port=8089/tcp --permanent
firewall-cmd --reload
這邊要注意一點,那就是 semanage port 要先執行,假如先執行firewall 的話,會出現下面這個訊息,無法添加成功
ValueError: Port tcp/8089 already defined
文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)
原文連結:
https://blog.aidec.tw/post/nginx-bind-permission-denied
若有業務合作需求,可寫信至: opweb666@gmail.com
創業、網站經營相關內容未來將發布在 小易創業筆記