Am o structură de proiect ca aceasta:
âââ docker-compose.dev.yml
âââ docker-compose.prod.yml
âââ docker-compose.yml
âââ homeid
â âââ Dockerfile
â âââ nginx.conf
â âââ site-ul web
âââ proxy invers
â âââ Dockerfile
â âââ dev.homebooker.conf
â âââ homebooker.conf
â âââ nginx.conf
si am un domeniu homebooker.fr
și un subdomeniu dev.homebooker.fr
, și vreau să adaug https
, așa că am primit un certificat de la letsencrypt
și l-am montat în containerul Nginx, dar https nu funcționează, nu știu ce greșesc.
Iată conținutul fișierelor:
docker-compose.yml
versiunea: '3'
Servicii:
reverse_proxy:
construi:
context: ./reverse-proxy
dockerfile: Dockerfile
container_name: reverse_proxy
reporniți: întotdeauna
volume:
- ~/letsencrypt:/etc/letsencrypt
retele:
- dev_network
- prod_network
porturi:
- „80:80”
- „433:433”
retele:
dev_network:
prod_network:
docker-compose.dev.yml
versiunea: '3'
Servicii:
homeid_dev:
construi:
context: ./homeid
dockerfile: Dockerfile
container_name: homeid_dev
reporniți: întotdeauna
retele:
- dev_network
porturi:
- „8001:80”
retele:
dev_network:
docker-compose.prod.yml
versiunea: '3'
Servicii:
homeid_prod:
construi:
context: ./homeid
dockerfile: Dockerfile
container_name: homeid_prod
reporniți: întotdeauna
retele:
- prod_network
porturi:
- „8002:80”
retele:
prod_network:
homeid Dockerfile:
DE LA nginx:1.21.6-alpin
RUN apk --update --no-cache upgrade
RUN apk add python3 python3-dev py3-pip build-base libressl-dev musl-dev libffi-dev rust cargo
RUN pip3 install pip --upgrade
RUN pip3 instalează certbot-nginx
RUN mkdir /etc/letsencrypt
WORKDIR /usr/share/nginx/html
COPIEAZĂ nginx.conf /etc/nginx/conf.d/default.conf
COPIEAZĂ ./site-ul web package.json package-lock.json ./
RUN instalarea npm
Dockerfile cu proxy invers:
DE LA nginx:1.21.6-alpin
RUN apk --update --no-cache upgrade
RUN apk add python3 python3-dev py3-pip build-base libressl-dev musl-dev libffi-dev rust cargo
RUN pip3 install pip --upgrade
RUN pip3 instalează certbot-nginx
RUN mkdir /etc/letsencrypt
COPIEAZĂ nginx.conf /etc/nginx/nginx.conf
WORKDIR /etc/nginx/sites-available
COPIEAZĂ homebooker.conf /etc/nginx/sites-available/homebooker.fr.conf
WORKDIR /etc/nginx/sites-available
COPIEAZĂ dev.homebooker.conf /etc/nginx/sites-available/dev.homebooker.fr.conf
WORKDIR /etc/nginx/sites-enabled
RUN ln -s /etc/nginx/sites-available/homebooker.fr.conf . \
&& ln -s /etc/nginx/sites-available/dev.homebooker.fr.conf .
dev.homebooker.fr.conf
Server {
asculta 80;
asculta [::]:80;
nume_server dev.homebooker.fr www.dev.homebooker.fr;
locație = /status {
access_log off;
default_type text/plain;
add_header Content-Type text/plain;
returnează 200 „în viață”;
}
Locație / {
proxy_pass http://homeid_dev;
}
pagina_eroare 500 502 503 504 /50x.html;
locație = /50x.html {
root /usr/share/nginx/html;
}
}
homebooker.fr.conf
Server {
asculta 80 ;
asculta [::]:80 ;
nume_server homebooker.fr www.homebooker.fr;
returnare 301 https://homebooker.fr;
}
Server {
asculta 443 ssl;
nume_server homebooker.fr www.homebooker.fr;
# Certificat RSA
ssl_certificate /etc/letsencrypt/live/homebooker.fr/fullchain.pem; # gestionat de Certbot
ssl_certificate_key /etc/letsencrypt/live/homebooker.fr/privkey.pem; # gestionat de Certbot
includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
locație = /status {
access_log off;
default_type text/plain;
add_header Content-Type text/plain;
returnează 200 „în viață”;
}
Locație / {
proxy_pass http://homeid_prod/;
}
pagina_eroare 500 502 503 504 /50x.html;
locație = /50x.html {
root /usr/share/nginx/html;
}
}
reverse-proxy/nginx.conf
utilizator nginx;
worker_proceses auto;
error_log /var/log/nginx/error.log notificare;
pid /var/run/nginx.pid;
evenimente {
conexiuni_muncitor 1024;
}
http {
includ /etc/nginx/sites-enabled/*;
aplicație de tip_default/octet-stream;
log_format principal „$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 principal;
sendfile activat;
#tcp_nopush on;
keepalive_timeout 65;
#gzip activat;
includ /etc/nginx/conf.d/*.conf;
}
homeid/nginx.conf
Server {
asculta 80;
asculta [::]:80;
#access_log /var/log/nginx/host.access.log principal;
Locație / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirecționează paginile de eroare ale serverului către pagina statică /50x.html
#
pagina_eroare 500 502 503 504 /50x.html;
locație = /50x.html {
root /usr/share/nginx/html;
}
}