ฉันสามารถติดตั้ง SSL ผ่าน certbot ลงในคอนเทนเนอร์ Nginx Docker ของฉันได้สำเร็จ
แต่หลังจากติดตั้งแล้ว การจราจรทั้งหมดก็เคลื่อนผ่าน HTTPS
ปฏิเสธที่จะเชื่อมต่อ
ขด https://www.example.com
หรือ ขด https://the_ip_of_server
curl: (7) ล้มเหลวในการเชื่อมต่อกับ example.com พอร์ต 443 หลังจาก 9822 ms: การเชื่อมต่อถูกปฏิเสธ
~พอร์ต 443 เปิดอยู่บนเซิร์ฟเวอร์ (AWS Lisghtsai)
ขด http://www.example.com
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.21.6</center>
</body>
</html>
แต่เมื่อ ขด http://the_ip_of_server
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.21.6</center>
</body>
</html>
ที่นี่คือ nginx.conf
#จำกัดการทำงานพร้อมกัน
limit_conn_zone $binary_remote_addr โซน=per_ip:10m;
เซิร์ฟเวอร์ {
server_name example.com www.example.com;
ที่ตั้ง / {
proxy_pass http://ขวด:8080/;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header โฮสต์ $host;
ปิด proxy_redirect;
เปิด proxy_intercept_errors;
limit_conn per_ip 12;
}
error_page 404 /notfound.html;
ตำแหน่ง /notfound.html {
รูท /var/www/html;
ภายใน;
}
error_page 500 502 503 504 /maintenance.html;
ตำแหน่ง /maintenance.html {
รูท /var/www/html;
ภายใน;
}
ฟัง 443 ssl; # จัดการโดย Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # จัดการโดย Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # จัดการโดย Certbot
รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot
}
เซิร์ฟเวอร์ {
ถ้า ($host = www.example.com) {
ส่งคืน 301 https://$host$request_uri;
} # จัดการโดย Certbot
ถ้า ($host = example.com) {
ส่งคืน 301 https://$host$request_uri;
} # จัดการโดย Certbot
ฟัง 80 default_server;
server_name example.com www.example.com;
กลับ 404; # จัดการโดย Certbot
}
นักเทียบท่า-compose.yml
รุ่น: '3.7'
บริการ:
กระติกน้ำ:
สร้าง: ./Flask App
container_name: กระติกน้ำ
รีสตาร์ท: เสมอ
สิ่งแวดล้อม:
- APP_NAME=Env
เปิดเผย:
- 8080
จิงซ์:
สร้าง: ./Nginx
ชื่อคอนเทนเนอร์: nginx
รีสตาร์ท: เสมอ
พอร์ต:
- "80:80"