Tôi có một cấu trúc dự án như thế này:
âââ docker-compose.dev.yml
âââ docker-compose.prod.yml
âââ docker-compose.yml
âââ gia đình
– âââ Dockerfile
â âââ nginx.conf
â âââ trang web
âââ proxy ngược
– âââ Dockerfile
â âââ dev.homebooker.conf
â âââ homebooker.conf
â âââ nginx.conf
và tôi có một tên miền homebooker.fr
và một tên miền phụ dev.homebooker.fr
, và tôi muốn thêm https
, vì vậy tôi đã nhận được chứng chỉ từ cho phép mã hóa
và tôi đã chuyển nó vào vùng chứa Nginx, nhưng https không hoạt động, không biết tôi đang làm gì sai.
Đây là nội dung của các tập tin:
docker-compose.yml
phiên bản: '3'
dịch vụ:
đảo ngược_proxy:
xây dựng:
ngữ cảnh: ./reverse-proxy
dockerfile: dockerfile
container_name: reverse_proxy
khởi động lại: luôn luôn
khối lượng:
- ~/letsencrypt:/etc/letsencrypt
mạng:
- dev_mạng
- sản_mạng
cổng:
- "80:80"
- "433:433"
mạng:
dev_mạng:
sản_mạng:
docker-compose.dev.yml
phiên bản: '3'
dịch vụ:
homeid_dev:
xây dựng:
ngữ cảnh: ./homeid
dockerfile: dockerfile
container_name: homeid_dev
khởi động lại: luôn luôn
mạng:
- dev_mạng
cổng:
- '8001:80'
mạng:
dev_mạng:
docker-compose.prod.yml
phiên bản: '3'
dịch vụ:
homeid_prod:
xây dựng:
ngữ cảnh: ./homeid
dockerfile: dockerfile
container_name: homeid_prod
khởi động lại: luôn luôn
mạng:
- sản_mạng
cổng:
- "8002:80"
mạng:
sản_mạng:
Dockerfile gia đình:
TỪ nginx:1.21.6-alpine
RUN apk --update --no-cache nâng cấp
CHẠY apk thêm python3 python3-dev py3-pip build-base libressl-dev musl-dev libffi-dev hàng rỉ sét
CHẠY pip3 cài đặt pip --upgrade
CHẠY pip3 cài đặt certbot-nginx
CHẠY mkdir /etc/letsencrypt
WORKDIR /usr/share/nginx/html
SAO CHÉP nginx.conf /etc/nginx/conf.d/default.conf
SAO CHÉP ./website pack.json package-lock.json ./
CHẠY cài đặt npm
Dockerfile proxy ngược:
TỪ nginx:1.21.6-alpine
RUN apk --update --no-cache nâng cấp
CHẠY apk thêm python3 python3-dev py3-pip build-base libressl-dev musl-dev libffi-dev hàng rỉ sét
CHẠY pip3 cài đặt pip --upgrade
CHẠY pip3 cài đặt certbot-nginx
CHẠY mkdir /etc/letsencrypt
SAO CHÉP nginx.conf /etc/nginx/nginx.conf
WORKDIR /etc/nginx/sites-available
SAO CHÉP homebooker.conf /etc/nginx/sites-available/homebooker.fr.conf
WORKDIR /etc/nginx/sites-available
SAO CHÉP dev.homebooker.conf /etc/nginx/sites-available/dev.homebooker.fr.conf
WORKDIR /etc/nginx/sites-enabled
CHẠY ln -s /etc/nginx/sites-available/homebooker.fr.conf . \
&& ln -s /etc/nginx/sites-available/dev.homebooker.fr.conf .
dev.homebooker.fr.conf
người phục vụ {
nghe 80;
nghe [::]:80;
server_name dev.homebooker.fr www.dev.homebooker.fr;
vị trí = /trạng thái {
truy cập_đăng xuất;
default_type văn bản/đơn giản;
add_header Văn bản kiểu nội dung/đơn giản;
trả lại 200 "còn sống";
}
địa điểm / {
proxy_pass http://homeid_dev;
}
error_page 500 502 503 504 /50x.html;
vị trí = /50x.html {
gốc /usr/share/nginx/html;
}
}
homebooker.fr.conf
người phục vụ {
nghe 80 ;
nghe [::]:80 ;
server_name homebooker.fr www.homebooker.fr;
trả lại 301 https://homebooker.fr;
}
người phục vụ {
nghe 443 ssl;
server_name homebooker.fr www.homebooker.fr;
# Chứng chỉ RSA
ssl_certificate /etc/letsencrypt/live/homebooker.fr/fullchain.pem; # được quản lý bởi Certbot
ssl_certificate_key /etc/letsencrypt/live/homebooker.fr/privkey.pem; # được quản lý bởi Certbot
bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
vị trí = /trạng thái {
truy cập_đăng xuất;
default_type văn bản/đơn giản;
add_header Văn bản kiểu nội dung/đơn giản;
trả lại 200 "còn sống";
}
địa điểm / {
proxy_pass http://homeid_prod/;
}
error_page 500 502 503 504 /50x.html;
vị trí = /50x.html {
gốc /usr/share/nginx/html;
}
}
proxy ngược/nginx.conf
người dùng nginx;
worker_processes tự động;
thông báo error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
sự kiện {
công_nhân kết_nối 1024 ;
}
http {
bao gồm /etc/nginx/sites-enabled/*;
ứng dụng default_type/octet-stream;
log_format chính '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log chính;
gửi tệp trên;
#tcp_nopush bật;
keepalive_timeout 65;
#gzip trên;
bao gồm /etc/nginx/conf.d/*.conf;
}
homeid/nginx.conf
người phục vụ {
nghe 80;
nghe [::]:80;
#access_log /var/log/nginx/host.access.log chính;
địa điểm / {
gốc /usr/share/nginx/html;
chỉ mục index.html index.htm;
}
#lỗi_trang 404 /404.html;
# chuyển hướng trang lỗi máy chủ sang trang tĩnh /50x.html
#
error_page 500 502 503 504 /50x.html;
vị trí = /50x.html {
gốc /usr/share/nginx/html;
}
}