ฉันมีการกำหนดค่าที่ใช้งานได้ใน nginx สำหรับเว็บไซต์หนึ่งของฉัน แต่ฉันทำพังเมื่อฉันพยายามทำให้มันทำงานกับ 2 โดเมนที่แตกต่างกัน ซึ่งหนึ่งในนั้นมี 2 โดเมนย่อย ซึ่งทั้งหมดให้บริการไซต์หรือแอปพลิเคชันที่แตกต่างกัน เพื่อทำให้เรื่องยากขึ้นสำหรับฉัน โดเมนที่ใช้งาน 2 แอปอยู่ในเครื่องที่แยกจากกัน และฉันพยายามส่งคำขอพร็อกซีสำหรับโดเมนนั้นไปยังเครื่องที่ถูกต้องบน LAN ของฉัน ดูด้านล่าง:
การกำหนดค่า NGINX ของฉันเป็นหายนะ แต่มีดังนี้:
เซิร์ฟเวอร์ {
ฟัง 80 default_server;
ฟัง [::]:80 default_server;
รูท /home/pi/sites/main;
# เพิ่ม index.php ในรายการหากคุณใช้ PHP
ดัชนี index.html index.htm index.nginx-debian.html โดเมน1_index.html;
ชื่อเซิร์ฟเวอร์ _;
ที่ตั้ง / {
# ความพยายามครั้งแรกในการให้บริการคำขอเป็นไฟล์ จากนั้น
# เป็นไดเร็กทอรี จากนั้นถอยกลับไปแสดง 404
try_files $uri $uri/ =404;
}
}
เซิร์ฟเวอร์ {
รูท /home/pi/sites/main;
ดัชนี index.html index.htm index.nginx-debian.html;
server_name internal.domain1.info; # จัดการโดย Certbot
ที่ตั้ง / {
# ความพยายามครั้งแรกในการให้บริการคำขอเป็นไฟล์ จากนั้น
# เป็นไดเร็กทอรี จากนั้นถอยกลับไปแสดง 404
try_files $uri $uri/ =404;
}
ฟัง [::]:443 ssl ipv6only=เปิด; # จัดการโดย Certbot
ฟัง 443 ssl; # จัดการโดย Certbot
ssl_certificate /etc/letsencrypt/live/internal.domain1.info/fullchain.pem; # จัดการโดย Certbot
ssl_certificate_key /etc/letsencrypt/live/internal.domain1.info/privkey.pem; # จัดการโดย Certbot
รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot
}
เซิร์ฟเวอร์ {
ถ้า ($host = internal.domain1.info) {
ส่งคืน 301 https://$host$request_uri;
} # จัดการโดย Certbot
ฟัง 80 ;
ฟัง [::]:80 ;
server_name internal.domain1.info;
กลับ 404; # จัดการโดย Certbot
}
เซิร์ฟเวอร์ {
server_name shiba.com www.shiba.com กระซิบ.shiba.com;
ที่ตั้ง / {
proxy_pass http://<machine2'sIP>:8888;
}
}
เซิร์ฟเวอร์ {
server_name yling.shiba.com;
ที่ตั้ง / {
proxy_pass http://<machine2'sIP>:8555;
}
}
ฉันจะได้รับสิ่งนี้เพื่อให้บริการเว็บไซต์ตามที่ระบุในภาพของฉันได้อย่างไร?
ขอบคุณ.
แก้ไข: การกำหนดค่าใหม่ที่ฉันเสนอ
|มีไซต์ | ซิมลิงก์ --> | เปิดใช้งานไซต์
conf1 | | คอนเฟิร์ม1
#httpsเว็บไซต์
เซิร์ฟเวอร์ {
รูท /home/pi/sites/main;
ดัชนี index.html index.htm index.nginx-debian.html;
ที่ตั้ง / {
# ความพยายามครั้งแรกในการให้บริการคำขอเป็นไฟล์ จากนั้น
# เป็นไดเร็กทอรี จากนั้นถอยกลับไปแสดง 404
try_files $uri $uri/ =404;
}
ฟัง [::]:443 ssl ipv6only=เปิด; # จัดการโดย Certbot
ฟัง 443 ssl; # จัดการโดย Certbot
ssl_certificate /etc/letsencrypt/live/internal.domain1.info/fullchain.pem; # จัดการโดย Certbot
ssl_certificate_key /etc/letsencrypt/live/internal.domain1.info/privkey.pem; # จัดการโดย Certbot
รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot
}
#http เปลี่ยนเส้นทางเว็บไซต์
เซิร์ฟเวอร์ {
ถ้า ($host = internal.domain1.info) {
ส่งคืน 301 https://$host$request_uri;
} # จัดการโดย Certbot
ฟัง 80 ;
ฟัง [::]:80 ;
server_name internal.domain1.info;
กลับ 404; # จัดการโดย Certbot
}
|มีไซต์ | ซิมลิงก์ --> | เปิดใช้งานไซต์
conf2 | | คอนเฟิร์ม2
เซิร์ฟเวอร์ {
ฟัง 80 ;
ฟัง [::]:80 ;
server_name กระซิบ.shiba.info;
กลับ 301 http://xxx.xxx.x.xx:8555;
}
|มีไซต์ | ซิมลิงก์ --> | เปิดใช้งานไซต์
conf3 | | คอนเฟิร์ม3
เซิร์ฟเวอร์ {
ฟัง 80 ;
ฟัง [::]:80 ;
server_name yling.shiba.info;
กลับ 301 http://xxx.xxx.x.xx:8888;
}