====== 25 Let's Encrypt リバースプロキシ ====== これ一個立てて置くと簡単で便利 ===== docker-compose.yml ===== version: '3' services: proxy: image: nginxproxy/nginx-proxy:alpine container_name: proxy restart: always ports: - 80:80 - 443:443 labels: com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true" volumes: - certs:/etc/nginx/certs:ro - vhost.d:/etc/nginx/vhost.d - html:/usr/share/nginx/html - /var/run/docker.sock:/tmp/docker.sock:ro - ./server.conf:/etc/nginx/conf.d/server.conf networks: - proxy-tier letsencrypt-companion: image: nginxproxy/acme-companion container_name: letsencrypt restart: always volumes: - certs:/etc/nginx/certs - acme:/etc/acme.sh - vhost.d:/etc/nginx/vhost.d - html:/usr/share/nginx/html - /var/run/docker.sock:/var/run/docker.sock:ro networks: - proxy-tier depends_on: - proxy volumes: certs: acme: vhost.d: html: networks: proxy-tier: ==== server.conf作成 ==== ファイルアップロードできるようにしておく。 デフォルト1M echo 'client_max_body_size 100m;' > ./server.conf === ファイルアップロードできないときのエラー === proxy | nginx.1 | 2024/02/27 23:34:26 [error] 381#381: *201402 client intended to send too large body: 1172615 bytes, client: X.X.X.X, server: dokuwiki.fl8.jp, request: "POST /lib/exe/ajax.php HTTP/2.0", host: "dokuwiki.fl8.jp", referrer: "https://dokuwiki.fl8.jp/?do=edit" ===== リバースプロキシを利用する側 ===== 利用しているネットワークを確認 # docker network ls NETWORK ID NAME DRIVER SCOPE da005313961c app_proxy-tier bridge local ab784e6540fd bridge bridge local 4fbd17879a28 host host local 4045783681f8 none null local --- version: '3' services: nginx: image: nginx:latest container_name: nginx ports: - "8080:80" volumes: - ./public:/usr/share/nginx/html environment: - VIRTUAL_HOST=hogehoge.com - LETSENCRYPT_HOST=hogehoge.com networks: - app_proxy-tier networks: app_proxy-tier: external: true {{tag>SSL Proxy}}