ฉันมีเว็บไซต์ไม่กี่แห่งในเซิร์ฟเวอร์ของตัวเอง{} บล็อกใน nginx โดยมีการกำหนดโดเมนไว้ในคำสั่งของเซิร์ฟเวอร์ เว็บไซต์หนึ่งมีบล็อกเซิร์ฟเวอร์ https{} ทั้งหมดอยู่ใน IP เดียวกัน

ฉันจะสร้างบล็อกเซิร์ฟเวอร์ที่จะรับคำขอไปยังhttp://1.2.3.4 และ https://1.2.3.4แต่ไม่ใช่โดเมนใด ๆ ได้อย่างไร ฉันได้ลองสร้างรูปแบบต่างๆ ของเซิร์ฟเวอร์ "เริ่มต้น" แต่ถ้า nginx เห็นบล็อก https เริ่มต้น ก็ใช้บล็อกนั้นสำหรับการเชื่อมต่อ https ทั้งหมด รวมถึงเว็บไซต์ที่มีบล็อกเซิร์ฟเวอร์ https ของตัวเอง

nginx 1.4.2 บน Ubuntu 12.04

ขอบคุณสำหรับความช่วยเหลือใด ๆ

answer

nginx vhost perference อธิบายไว้ใน: http://nginx.org/en/docs/http/request_processing.html#mixed_name_ip_based_servers

การตั้งค่า default_server ใช้งานได้ดีตราบใดที่คุณมีเว็บไซต์ SSL เพียงแห่งเดียวสำหรับ IP:

server {
    listen x.x.x.x:443;
}

ปัจจุบัน nginx ไม่รองรับ SNI อย่างถูกต้องซึ่งจะอนุญาตให้คุณระบุใบรับรอง SSL หลายรายการสำหรับที่อยู่ IP เดียว: http://nginx.org/en/docs/http/configuring_https_servers.html#compatibility