ワイ、そして IT ときどき何か。

日々のとりとめのない記録

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 などと入力しても構わないかもしれない(但しこれは自己責任で)。