Nginxでバーチャルホスト設定時に「a duplicate default server for 0.0.0.0:443」エラー

Linux

※mkcertを使ってローカル環境もHTTPS化しているため、HTTPの場合のエラーメッセージは a duplicate default server for 0.0.0.0:80 になります。
mkcertのセットアップ手順はこちらの記事を参照して下さい。

結論

server {
    listen       443 ssl http2 default_server;
    listen       [::]:443 ssl http2 default_server;

confファイル、serverセクションのdefault_serverが重複していないか確認。

経緯

久々に開発環境に新規サイト(C)の追加。

開発サーバーでWebルートフォルダ(/home/www/C/)を作成。

既存サイト(A)の設定ファイル、/etc/nginx/conf.d/A.conf を /etc/nginx/conf.d/C.conf にコピー。

/etc/nginx/conf.d/C.confの中で、server_nameとrootをAからCに書き換え。HTTPS化しているので、ssl_certificateとssl_certificate_keyもC用に作成した鍵ファイルを指定。

systemctl restart nginx をすると
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

コピー元にしたファイルAが、デフォルトサーバー設定が入ったものだったので、C.confからdefault_serverを削除して無事起動。

コメント

タイトルとURLをコピーしました