การตั้งค่า Nginx ให้ตรวจสอบ vhost ที่ไม่ได้จัดการทั้งหมด


41

หากฉันมี virtualhosts อยู่แล้วฉันจะสร้างโฮสต์เสมือนเพื่อจัดการคำขอที่ไม่ตรงกับ virtualhosts ใด ๆ ได้อย่างไร (เช่นการเข้าถึงโดย IP โดเมนอื่นที่เชื่อมโยงกับ IP, .etc .etc)

คำตอบ:


52

ชื่อเซิร์ฟเวอร์ _; และ default_server บนการกำหนดค่าการฟังคือสิ่งที่คุณกำลังมองหา

ตัวอย่าง:

server {

   listen 80 default_server;
   server_name _;

   root /var/www/default; (or wherever)    

}

1
และสำหรับกรณี https:listen 443 ssl default_server;
James T Snell

เมื่อฉันเปิดใช้งานสิ่งนี้ฉันowncloud 9จะไม่ตอบกลับ ทำไม? Owncloud VHOST มี server_name และไม่ใช่ default_server
Corni

ฉันไม่ได้ใช้80แค่ 443 เท่านั้นที่เปิดอยู่
Corni

หากฉันเพิ่มสิ่งนี้พร็อพเพอร์ตี้อื่น ๆ ของฉันใน / etc / nginx / sites-enabled / จะถูกละเว้น โดเมนทั้งหมดไปที่/var/www/defaultในกรณีนี้ ฉันจะต้องสั่งซื้อตัวอย่างได้อย่างไร
rubo77

ฉันสามารถสร้าง vhos เพื่อเชื่อมต่อ postgresql ได้ไหม?
Erlon Charles

4

หากคุณใช้ 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 จะทำการยกเลิกการเชื่อมต่อ จะไม่ลองใช้เซิร์ฟเวอร์อื่น ดังนั้นอย่าลืมใบรับรอง / คีย์


หมายเหตุสำคัญเกี่ยวกับใบรับรอง SSL! หากใบรับรองหายไปเซิร์ฟเวอร์ nginx ทั้งหมดจะไม่ทำงาน (แม้ว่าจะnginx -tพูดว่า "ok")
Philipp

3
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;เพื่อหลีกเลี่ยงการเพิ่มรายการบันทึกสำหรับไม่พบหน้า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.