====== 25 Let's Encrypt リバースプロキシ ======
これ一個立てて置くと簡単で便利
一点だけポート80を全開放しないといけない。
もし443だけを表示させて、80だけは表示させたくない場合。(80は403とかにしたい場合)は[[06_virtualization:05_container:33_let_encrypt_proxy2]]で行う。
===== 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:
name: 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 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:
- proxy-tier
networks:
proxy-tier:
external: true
{{tag>SSL Proxy}}