nginx 403 Forbidden エラーの原因と対処法
症状 nginxでWebページにアクセスすると「403 Forbidden」が表示される。 結論:まずこれを確認 ドキュメントルートのパーミッションが755以上か ファイルの所有者がnginxユーザーで読めるか indexファイル(index.html等)が存在するか トラブルシューティングフロー flowchart TD A[403 Forbidden 発生] --> B{エラーログを確認} B -->|Permission denied| C[パーミッション/所有者を確認] B -->|directory index is forbidden| D[index設定を確認] B -->|SELinux関連| E[SELinuxコンテキストを確認] C --> F[chmod/chownで修正] D --> G[indexファイル配置 or autoindex設定] E --> H[restorecon実行] F --> I[nginx再起動して確認] G --> I H --> I よくある原因 ディレクトリのパーミッション不足 - nginxユーザーがディレクトリを読めない(755未満) ファイルのパーミッション不足 - nginxユーザーがファイルを読めない(644未満) indexファイルが存在しない - index.htmlやindex.phpがなく、autoindexも無効 親ディレクトリの実行権限がない - 途中のディレクトリに+xがない SELinuxによるブロック - CentOS/RHELでSELinuxがアクセスを拒否している nginx.confのallow/deny設定 - IPベースのアクセス制限に引っかかっている ファイル所有者の問題 - ファイルがrootのみ読める状態になっている 確認手順 ステップ1: エラーログを確認する sudo tail -50 /var/log/nginx/error.log 🔍 チェックポイント: Permission denied、directory index is forbidden、SELinux などのキーワードを探す ...