WordPress サーバーが死んだり生き返ったりする
tldr;
nginx-proxy
の設定ミスとVPCネットワークの設定忘れ
気づき
JetPackから大量のアラートが飛んでくる
gateway timeoutが出てるのを確認
調査
docker ps
でnginx-proxyが死んでいるのを確認
nginx-proxy
のログ
[email protected]:/home/wordpress/nginx-proxy$ docker-compose ps
Name Command State Ports
-----------------------------
[email protected]:/home/wordpress/nginx-proxy$ docker-compose up
Creating nginx-proxy ... done
Creating letsencrypt-nginx ... done
Attaching to nginx-proxy, letsencrypt-nginx
nginx-proxy | WARNING: /etc/nginx/dhparam/dhparam.pem was not found. A pre-generated dhparam.pem will be used for now while a new one
nginx-proxy | is being generated in the background. Once the new dhparam.pem is in place, nginx will be reloaded.
nginx-proxy | forego | starting dockergen.1 on port 5000
nginx-proxy | forego | starting nginx.1 on port 5100
nginx-proxy | nginx.1 | 2019/10/02 05:59:03 [emerg] 26#26: PEM_read_bio_DHparams("/etc/nginx/dhparam/dhparam.pem") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: DH PARAMETERS)
nginx-proxy | forego | starting nginx.1 on port 5200
nginx-proxy | forego | sending SIGTERM to dockergen.1
nginx-proxy | forego | sending SIGTERM to nginx.1
letsencrypt-nginx | Info: Custom Diffie-Hellman group found, generation skipped.
letsencrypt-nginx | Reloading nginx proxy (f95a3c2b8ea1e8db1a71d4fe6dc6479d9e9af41db655c3bff692d0aa753af766)...
letsencrypt-nginx | Sleep for 3600s
nginx-proxy exited with code 0
これを永遠と繰り返して死んでた
内部からwordpressサーバーのnginxにたどり着けない
Issue with recent container update and SSL · Issue #1226 · jwilder/nginx-proxy
I'm seeing the below error when recently updating the container (within the last 24-48 hours) nginx.1 | 2019/01/30 02:25:16 33#33: PEM_read_bio_DHparams(&q...
からlatestを入れれば動きそうとのこと
→治らない
- default.confが間違っているのを確認
jwilder/nginx-proxy
はdocker-gen
というツールで/etc/nginx/default.conf
を生成している
# www.nozograph.com
upstream www.nozograph.com {
## Can be connected with "common_link" network
# kusanagi-1_kusanagi-nginx_1
server 172.18.0.5:443; #←これ
}
server {
server_name www.nozograph.com;
listen 80 ;
access_log /var/log/nginx/access.log vhost;
include /etc/nginx/vhost.d/default;
location / {
proxy_pass https://www.nozograph.com;
}
}
server {
server_name www.nozograph.com;
listen 443 ssl http2 ;
access_log /var/log/nginx/access.log vhost;
return 500;
ssl_certificate /etc/nginx/certs/default.crt;
ssl_certificate_key /etc/nginx/certs/default.key;
}
upstream
に記述されたserver 172.18.0.5:443;
のIPが間違っている
自動生成されるので直書きできない
→ホストにマウントしてたので削除して何度か再生成
→default.confはあってる
内部からwordpressのnginxにはたどり着けた
→依然としてgateway timeout
- VPCのStaticIPを割り振ってるインスタンスが間違っていた
nginx-proxyのログを見ててそもそもリクエストがたどり着かないことに気づく
サーバーのIPはGCPのVPCでStaticにしたが、それが現在のインスタンスに割り振られていない
→直した
→繋がる
→fin!!
根本原因
前日に別件でインスタンスを削除して作り直してて、インスタンス名が変わっていたのが原因
→Cloudflareがキャッシュであたかも生きてるかのように返してくれてたので気づきに時間がかかった
docker ps
コメント