EC2にDockerをインストールしてnginxのdockerを動かしました。
DockerのイメージはDockerfileからビルドしました。
使用したDockerfileは以下のgithubから取得しました。
NginxのDockerfile
また、普段利用しているリバプロ設定を施したnginx.confのコピーをDockerfileに追記しました。具体的には以下です。
COPY docker-entrypoint.sh / COPY 10-listen-on-ipv6-by-default.sh /docker-entrypoint.d COPY 20-envsubst-on-templates.sh /docker-entrypoint.d COPY 30-tune-worker-processes.sh /docker-entrypoint.d ## 以下に2行追加 COPY nginx.conf /etc/nginx/ COPY index.html /usr/share/nginx/html/ ## ENTRYPOINT ["/docker-entrypoint.sh"]
これによりnginx.confとindex.htmlをdocker内に追加しました。index.htmlはテスト用です。
nginxのリバプロ設定について抜粋します。S3へのプロキシという設定をしています。S3のアドレスにアクセスし、80版でコンテンツが見れていることは確認済みです。
server { listen 80; listen [::]:80; server_name _; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location /example/ { proxy_pass 【s3リージョン名:80/html/】; resolver 8.8.8.8 valid=5s; } error_page 404 /404.html; location = /404.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
これで
/example/ にリバプロとして動けばよいのですが、なぜか動きませんでした。なおindex.htmlは無事設定したものが表示されているため、dockerのイメージはうまく作れていると思います。また、execコマンドで確認したところ、きちんとnginx.confも/etc/nginx/以下にコピーされておりました。
原因調査をしているのですが、どうにも先に進めなくなってしまったため、御指南いただければと思います。
なおアクセスした際のdocker上に表示されているnginxのコンソールログは以下です。
126.216.10.40 - - [24/Aug/2021:09:33:03 +0000] "GET /example/index.html HTTP/1.1" 404 555 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko ) Chrome/92.0.4515.159 Safari/537.36" "-" 2021/08/24 09:33:03 [error] 31#31: *1 open() "/usr/share/nginx/html/example/index.html" failed (2: No such file or directory), client: 126.216.10.40, server: localhost, reque st: "GET /example/index.html HTTP/1.1", host: "13.114.209.41:8080"
あなたの回答
tips
プレビュー