ฉันต้องการโฮสต์เว็บไซต์และเรียกใช้โครงการ microservices บนเซิร์ฟเวอร์ของฉันเอง
เว็บไซต์จะทำงานด้วยเว็บเซิร์ฟเวอร์ Nginx โดเมนของเว็บไซต์จะมีลักษณะเหมือนกับ sampleapp.com และเว็บไซต์นี้จะใช้ freessl
หนึ่งในบริการของโครงการ Microservice จะทำงานด้วยเว็บเซิร์ฟเวอร์ Nginx เป็นบริการในคอนเทนเนอร์นักเทียบท่า บริการนี้ใช้โดเมนย่อยของ sampleapp.com ของฉัน เช่น api-dev.sampleapp.com และโดเมนย่อยเหล่านั้นควรทำงานกับ SSL ด้วย
เมื่อพยายามปรับใช้บริการด้วย docker-compose ฉันได้รับข้อผิดพลาดต่อไปนี้:
[คำเตือน] 1#1: ชื่อเซิร์ฟเวอร์ที่ขัดแย้งกัน "api-dev.sample.com" บน
0.0.0.0:80 ละเว้น
ข้อกังวลหลักคือฉันจะตั้งค่า ssl ภายใน docker ได้อย่างไร 443 เป็นพอร์ตเริ่มต้นสำหรับ HTTPS
ไฟล์กำหนดค่า Nginx ของ microservice ของฉันมีดังต่อไปนี้
worker_processes อัตโนมัติ
เหตุการณ์ {
worker_connections 1024;
}
http {
เซิร์ฟเวอร์ {
ฟัง 80 default_server;
ชื่อเซิร์ฟเวอร์ "";
กลับ 444;
}
เซิร์ฟเวอร์ {
server_name game-dev.sampleapp.com;
ที่ตั้ง / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header โฮสต์ $http_host;
proxy_set_header X-NginX-Proxy จริง;
proxy_http_version 1.1;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อ "อัปเกรด";
proxy_pass http://game_nodes;
ปิด proxy_redirect;
}
}
เซิร์ฟเวอร์ {
ถ้า ($host = game-dev.sampleapp.com) {
ส่งคืน 301 https://$host$request_uri;
}
ฟัง 80;
ฟัง [::]:80;
server_name game-dev.sampleapp.com;
กลับ 404;
}
ต้นน้ำ game_nodes {
# เปิดใช้งานเซสชันปักหมุด
#ip_hash;
เซิร์ฟเวอร์เกมอัลฟ่า:3000;
Keepalive 8;
}
เซิร์ฟเวอร์ {
server_name api-dev.sampleapp.com;
ที่ตั้ง / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header โฮสต์ $http_host;
proxy_set_header X-NginX-Proxy จริง;
proxy_pass http://main_nodes;
ปิด proxy_redirect;
}
}
เซิร์ฟเวอร์ {
# ถ้า ($host = api-dev.sampleapp.com) {
# ส่งคืน 301 https://$host$request_uri;
#}
ฟัง 80;
ฟัง [::]:80;
server_name api-dev.sampleapp.com;
กลับ 404;
}
ต้นน้ำ main_nodes {
เซิร์ฟเวอร์หลัก-alpha:8000;
เซิร์ฟเวอร์หลักเบต้า: 8000;
Keepalive 8;
}
}
ไฟล์การกำหนดค่า Nginx ของเว็บไซต์มีดังนี้
เซิร์ฟเวอร์ {
ฟัง 8080;
ฟัง [::]:8080;
ฟัง 8443 ssl http2;
ฟัง [::]:8443 ssl http2;
server_name sampleapp.com www.sampleapp.com;
รูท /var/www/sampleapp.com;
ดัชนี index.html;
ssl_certificate /etc/ssl/certs/sampleapp.com.pem;
ssl_certificate_key /etc/ssl/private/sampleapp.com.key;
ssl_client_certificate /etc/ssl/certs/origin-pull-ca.pem;
เปิด ssl_verify_client;
client_max_body_size 100M;
ปิดดัชนีอัตโนมัติ
ที่ตั้ง / {
try_files $uri $uri/ =404;
}
}
ฉันเป็นนักพัฒนา ไม่ใช่ผู้ดูแลระบบ ดังนั้นฉันจึงมีช่วงเวลาที่ยากลำบากในการหาวิธีที่ดีที่สุดในการดำเนินการนี้