TECH

failed (13: Permission denied)

投稿日:

 

Nginxで任意のポート番号をconfファイルに正しく設定したのに
以下のエラーが出てしまった場合の原因はSELinuxの可能性があります。

bind() to 0.0.0.0:<任意のポート番号> failed (13: Permission denied)


Redhatのドキュメントでは以下のように説明されています。

ポリシー設定に応じて、サービスの実行が許可されるのは特定のポート番号に限られます。ポリシーを変更せず、サービスが実行されるポートを変えようとすると、サービスの起動に失敗する場合があります。
(引用:3.4.4. ポート番号を変更する


この場合、SELinuxを解除するのではなく
SELinuxが許可しているポートに、任意のポート番号を追加しましょう。

ポート番号の確認

# semanage port -l | grep -w http_port_t

ポート番号の追加

# semanage port -a -t http_port_t -p tcp <任意のポート番号>

ポート番号の削除

# semanage port -d -t http_port_t -p tcp <任意のポート番号>

ぜひ参考にしてください。
ちなみに実践した環境はRHEL7.7、Nginx1.16となります。

-TECH
-,

Copyright© 紳士は変態がお好き , 2020 All Rights Reserved.