ฉันมี ตัวอย่าง.คอม
และกรณีการใช้งานต่อไปนี้:
- SSL เท่านั้น
- www.จะถูกเปลี่ยนเส้นทางไปที่ example.com (ไม่มี www.)
- example.com จะย้อนกลับพร็อกซีเป็น :3000
- fix1.example.com จะย้อนกลับพร็อกซีเป็น :3001
- fix2.example.com จะย้อนกลับ proxy เป็น :3002
- ...
- *.example.com จะย้อนกลับพร็อกซีเป็น :4000
- *.example.com/admin จะย้อนกลับพร็อกซีเป็น :5000
- example.com/admin, fix1.example.com, fix2.example.com,... จะไม่มี /admin และต้องไม่ย้อนกลับพร็อกซีเป็น :5000
ในการกำหนดค่าปัจจุบันของฉัน ฉันมีไฟล์ต่อไปนี้ในไซต์พร้อมใช้งาน / เปิดใช้งานไซต์ของฉัน:
- ตัวอย่าง.คอม
- fix1.example.com
- fix2.example.com
- ...
- wild.example.com
แต่ละไฟล์กำหนดค่าส่วนของตัวเองเนื่องจากไม่มีไฟล์อื่น แต่ฉันลงเอยด้วยการกำหนดค่าที่ซ้ำกันหรือขัดแย้งกัน ฉันจึงคิดว่าต้องมีวิธีการที่ดีกว่าในไฟล์เดียว ซึ่งจัดการทั้งโดเมนด้วยกรณีการใช้งานทั้งหมด
SSL เท่านั้นและไม่มี www ส่วนใดที่ง่าย:
เซิร์ฟเวอร์ {
ถ้า ($host = www.example.com) {
ส่งคืน 301 https://$host$request_uri;
}
server_name www.example.com;
ส่งคืน 301 $scheme://example.com$request_uri;
}
เซิร์ฟเวอร์ {
ถ้า ($host = example.com) {
ส่งคืน 301 https://$host$request_uri;
}
ฟัง 80;
server_name example.com;
ส่งคืน 301 http://$server_name$request_uri;
}
แต่ฉันจะตั้งค่าโดเมนย่อยคงที่และโดเมนย่อยไวด์การ์ดร่วมกับเส้นทาง /admin ได้อย่างไร
นี่คือบล็อกที่ฉันใช้สำหรับ ตัวอย่าง.คอม พร็อกซี:
เซิร์ฟเวอร์ {
ฟัง 443 ssl http2;
server_name example.com;
ที่ตั้ง / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อ 'อัปเกรด';
proxy_set_header โฮสต์ $host;
proxy_cache_bypass $http_upgrade;
}
ssl_certificat#...
ssl_certificat_key #...
}