หากฉันมี virtualhosts อยู่แล้วฉันจะสร้างโฮสต์เสมือนเพื่อจัดการคำขอที่ไม่ตรงกับ virtualhosts ใด ๆ ได้อย่างไร (เช่นการเข้าถึงโดย IP โดเมนอื่นที่เชื่อมโยงกับ IP, .etc .etc)
หากฉันมี virtualhosts อยู่แล้วฉันจะสร้างโฮสต์เสมือนเพื่อจัดการคำขอที่ไม่ตรงกับ virtualhosts ใด ๆ ได้อย่างไร (เช่นการเข้าถึงโดย IP โดเมนอื่นที่เชื่อมโยงกับ IP, .etc .etc)
คำตอบ:
ชื่อเซิร์ฟเวอร์ _; และ default_server บนการกำหนดค่าการฟังคือสิ่งที่คุณกำลังมองหา
ตัวอย่าง:
server {
   listen 80 default_server;
   server_name _;
   root /var/www/default; (or wherever)    
}
              owncloud 9จะไม่ตอบกลับ ทำไม? Owncloud VHOST มี server_name และไม่ใช่ default_server
                    80แค่ 443 เท่านั้นที่เปิดอยู่
                    /var/www/defaultในกรณีนี้ ฉันจะต้องสั่งซื้อตัวอย่างได้อย่างไร
                    หากคุณใช้ SSL คุณต้องมีการวางท่อเพิ่มเติมสำหรับ default_server - ใบรับรองและคีย์ (ซึ่งสามารถลงชื่อด้วยตนเองได้)
server {
    server_name _;
    listen 80 default_server;
    listen 443 ssl default_server;
    ssl_certificate <path to cert>;
    ssl_certificate_key <path to key>;
    return 404; # or whatever
}
Nginx จะพยายามยอมรับการเชื่อมต่อ SSL บน default_server ที่ตรงกับ IP / พอร์ต หากเซิร์ฟเวอร์ดังกล่าวไม่มีใบรับรอง / คีย์ nginx จะทำการยกเลิกการเชื่อมต่อ จะไม่ลองใช้เซิร์ฟเวอร์อื่น ดังนั้นอย่าลืมใบรับรอง / คีย์
nginx -tพูดว่า "ok")
                    server {
  listen 80 default_server;
  listen 443 ssl default_server;
  listen [::]:80 default_server;
  listen [::]:443 ssl default_server;
  server_name _;
  root /path/to/default;
}
รายการมีไว้สำหรับพอร์ต 80 (HTTP), พอร์ต 443 (HTTPS), พอร์ต 80 IPv6 และพอร์ต 443 IPv6 ตามลำดับ
คุณสามารถพิจารณาเพิ่มlog_not_found off;เพื่อหลีกเลี่ยงการเพิ่มรายการบันทึกสำหรับไม่พบหน้า
listen 443 ssl default_server;