ฉันมีโครงสร้างโครงการดังนี้:
âââ นักเทียบท่า-compose.dev.yml
âââ นักเทียบท่า-compose.prod.yml
âââ นักเทียบท่า-compose.yml
âââ โฮมไอดี
â âââ ไฟล์นักเทียบท่า
â âââ nginx.conf
â âââ เว็บไซต์
âââ พร็อกซีย้อนกลับ
â âââ ไฟล์นักเทียบท่า
â âââ dev.homebooker.conf
â âââ homebooker.conf
â âââ nginx.conf
และฉันมีโดเมน homebooker.fr
และโดเมนย่อย dev.homebooker.fr
และฉันต้องการเพิ่ม https
ผมจึงได้รับใบรับรองจาก ให้เข้ารหัส
และฉันใส่ลงในคอนเทนเนอร์ Nginx แต่ https ไม่ทำงาน ไม่รู้ว่าฉันทำอะไรผิด
นี่คือเนื้อหาของไฟล์:
นักเทียบท่า-compose.yml
รุ่น: '3'
บริการ:
reverse_proxy:
สร้าง:
บริบท: ./reverse-proxy
นักเทียบท่าไฟล์: Dockerfile
ชื่อคอนเทนเนอร์: reverse_proxy
รีสตาร์ท: เสมอ
ปริมาณ:
- ~/letsencrypt:/etc/letsencrypt
เครือข่าย:
- dev_network
- prod_network
พอร์ต:
- "80:80"
- "433:433"
เครือข่าย:
dev_network:
ผลิตภัณฑ์เครือข่าย:
นักเทียบท่า-compose.dev.yml
รุ่น: '3'
บริการ:
homeid_dev:
สร้าง:
บริบท: ./homeid
นักเทียบท่าไฟล์: Dockerfile
ชื่อคอนเทนเนอร์: homeid_dev
รีสตาร์ท: เสมอ
เครือข่าย:
- dev_network
พอร์ต:
- '8001:80'
เครือข่าย:
dev_network:
นักเทียบท่า-compose.prod.yml
รุ่น: '3'
บริการ:
homeid_prod:
สร้าง:
บริบท: ./homeid
นักเทียบท่าไฟล์: Dockerfile
ชื่อคอนเทนเนอร์: homeid_prod
รีสตาร์ท: เสมอ
เครือข่าย:
- prod_network
พอร์ต:
- "8002:80"
เครือข่าย:
ผลิตภัณฑ์เครือข่าย:
ไฟล์ Docker ของ homeid:
จาก nginx:1.21.6-อัลไพน์
RUN apk --update --no-cache อัปเกรด
RUN apk เพิ่ม python3 python3-dev py3-pip build-base libressl-dev musl-dev libffi-dev สินค้าสนิม
RUN pip3 ติดตั้ง pip --upgrade
RUN pip3 ติดตั้ง certbot-nginx
RUN mkdir /etc/letsencrypt
เวิร์กดีอาร์ /usr/share/nginx/html
คัดลอก nginx.conf /etc/nginx/conf.d/default.conf
คัดลอก ./เว็บไซต์ package.json package-lock.json ./
ติดตั้ง RUN npm
ย้อนกลับพร็อกซี Dockerfile:
จาก nginx:1.21.6-อัลไพน์
RUN apk --update --no-cache อัปเกรด
RUN apk เพิ่ม python3 python3-dev py3-pip build-base libressl-dev musl-dev libffi-dev สินค้าสนิม
RUN pip3 ติดตั้ง pip --upgrade
RUN pip3 ติดตั้ง certbot-nginx
RUN mkdir /etc/letsencrypt
คัดลอก nginx.conf /etc/nginx/nginx.conf
WORKDIR /etc/nginx/sites-available
คัดลอก homebooker.conf /etc/nginx/sites-available/homebooker.fr.conf
WORKDIR /etc/nginx/sites-available
คัดลอก 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
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
server_name dev.homebooker.fr www.dev.homebooker.fr;
สถานที่ = / สถานะ {
access_log off;
default_type ข้อความ/ธรรมดา;
add_header ประเภทเนื้อหา ข้อความ/ธรรมดา;
คืน 200 "มีชีวิต";
}
ที่ตั้ง / {
proxy_pass http://homeid_dev;
}
error_page 500 502 503 504 /50x.html;
ตำแหน่ง = /50x.html {
รูท /usr/share/nginx/html;
}
}
homebooker.fr.conf
เซิร์ฟเวอร์ {
ฟัง 80 ;
ฟัง [::]:80 ;
server_name homebooker.fr www.homebooker.fr;
กลับ 301 https://homebooker.fr;
}
เซิร์ฟเวอร์ {
ฟัง 443 ssl;
server_name homebooker.fr www.homebooker.fr;
#ใบรับรองอ.ย
ssl_certificate /etc/letsencrypt/live/homebooker.fr/fullchain.pem; # จัดการโดย Certbot
ssl_certificate_key /etc/letsencrypt/live/homebooker.fr/privkey.pem; # จัดการโดย Certbot
รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
สถานที่ = / สถานะ {
access_log off;
default_type ข้อความ/ธรรมดา;
add_header ประเภทเนื้อหา ข้อความ/ธรรมดา;
คืน 200 "มีชีวิต";
}
ที่ตั้ง / {
proxy_pass http://homeid_prod/;
}
error_page 500 502 503 504 /50x.html;
ตำแหน่ง = /50x.html {
รูท /usr/share/nginx/html;
}
}
reverse-proxy/nginx.conf
ผู้ใช้ nginx;
worker_processes อัตโนมัติ
error_log /var/log/nginx/error.log ประกาศ;
pid /var/run/nginx.pid;
เหตุการณ์ {
worker_connections 1024;
}
http {
รวม /etc/nginx/sites-enabled/*;
แอปพลิเคชัน default_type/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request"'
'$สถานะ $body_bytes_sent "$http_referer"'
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log หลัก;
ส่งไฟล์บน;
#tcp_nopush บน;
keepalive_timeout 65;
#gzip บน;
รวม /etc/nginx/conf.d/*.conf;
}
homeid/nginx.conf
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
#access_log /var/log/nginx/host.access.log หลัก;
ที่ตั้ง / {
รูท /usr/share/nginx/html;
ดัชนี index.html index.htm;
}
#error_page 404 /404.html;
# เปลี่ยนเส้นทางหน้าข้อผิดพลาดของเซิร์ฟเวอร์ไปยังหน้าสแตติก /50x.html
#
error_page 500 502 503 504 /50x.html;
ตำแหน่ง = /50x.html {
รูท /usr/share/nginx/html;
}
}