nginx で 443 port (SSL/TLS)ポートが listen にならない場合の対処法(not listening)
HTTP/2 にするために必要なことだが、CentOS6.x などでは nginx の tar ボールからコンパイルする必要がある。
その nginx で 443 port (SSL/TLS)ポートが listen にならない場合、以下の項目を確認する。
・iptables で 443 ポートが開いているかの確認
(確認方法は # iptables -L や # iptables -F など)
・*.conf で 443 ssl http2; などの設定がされているかの確認
・# service nginx reload を行ったか(CentOS6.xの場合)
・↑ を行ったあと、# service nginx stop # service nginx start を行うのも手
・サーバを再起動する
コレでも直らない人が Stack Overflow などでも多かったので、多分以下のケースの方がこの手の罠にかかったのかもしれない。
・nginx の tar ボールから # ./configure(プレフィックスなど略) & make & make install した場合、参照する "nginx.conf" のパスが変わっていることに気づかず、必死で今まで使っていた yum でインストールされた nginx.conf もしくは *.conf をいじっていた
・解決策は nginx.conf のシンボリックリンクを変更することだが、それに気づかなかった
・新たに作られた nginx.conf に過去の作った *.conf を参照にする命令を忘れていた(nginx.conf に include /etc/nginx/conf.d/*.conf を 入れること、シンボリックリンクで nginx.conf を参照にしている場合は不要)
言うまでもないが、tar ボールからインストールされた nginx のフルパスを # service nginx start(stop|reload) で実行できるように修正すると楽になれるし、nginx を自動でアップデートしないように /etc/yum.conf で exclude=nginx などと入力しても構わないかもしれない(但しこれは自己責任で)。