2015年10月28日水曜日

nginxが自動起動しない

起動時のログを確認してみる
less /var/log/boot.log
fsck from util-linux 2.20.1
/dev/sda1: clean, 204174/3866624 files, 1423895/15466240 blocks
Skipping profile in /etc/apparmor.d/disable: usr.bin.firefox
Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd
* Starting AppArmor profiles ESC[80G ^MESC[74G[ OK ]
Starting memcached: memcached.
Starting nginx: nginx: [emerg] host not found in upstream "hogehoge.co.jp" in /etc/nginx/sites-enabled/default:18
nginx: configuration file /etc/nginx/nginx.conf test failed
※"hogehoge.co.jp"はproxy_passに設定しているドメイン


しかし、手動でコマンド実行では普通に起動する。
nginxは構文チェックの他に名前解決のチェックも行っているようである。
なるほど。ネットワークのサービスが完全に立ち上がる前にnginxが起動しているのが原因?

tester@tester-VirtualBox:~$ ls /etc/rc2.d/
README S20speech-dispatcher S50rsync S91apache2
S20kerneloops S30vboxadd S50saned S99acpi-support
S20memcached S30vboxadd-x11 S70dns-clean S99grub-common
S20nginx S35vboxadd-service S70pppd-dns S99ondemand
S20php5-fpm S50pulseaudio S75sudo S99rc.local
dnsってつくサービスよりも数字が早いぞ。 なので一度、nginxを消し去ってから
sudo update-rc.d -f nginx remove
再度以下コマンドで追加
sudo update-rc.d nginx defaults 91
しかしこれでは直らなかった。 結局hostsファイルにエラーになっていたドメインとIPを記述すると、正常に起動するようになった