WordPressサーバーに繋がらなくなった

スポンサーリンク
WordPress

WordPress サーバーが死んだり生き返ったりする

tldr;

nginx-proxyの設定ミスとVPCネットワークの設定忘れ

気づき

JetPackから大量のアラートが飛んでくる

gateway timeoutが出てるのを確認

調査

  1. 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を入れれば動きそうとのこと

→治らない

  1. default.confが間違っているのを確認

jwilder/nginx-proxydocker-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

  1. VPCのStaticIPを割り振ってるインスタンスが間違っていた

nginx-proxyのログを見ててそもそもリクエストがたどり着かないことに気づく

サーバーのIPはGCPのVPCでStaticにしたが、それが現在のインスタンスに割り振られていない

→直した

→繋がる

→fin!!

根本原因

前日に別件でインスタンスを削除して作り直してて、インスタンス名が変わっていたのが原因

→Cloudflareがキャッシュであたかも生きてるかのように返してくれてたので気づきに時間がかかった

docker ps

コメント

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