nginx ไม่มีไดเรกทอรีที่มีอยู่ในเว็บไซต์


190

ฉันติดตั้ง Nginx บน Centos 6 และฉันพยายามตั้งค่าโฮสต์เสมือน ปัญหาที่ฉันพบคือฉันไม่สามารถหา/etc/nginx/sites-availableไดเรกทอรีได้

มีบางอย่างที่ฉันต้องทำเพื่อสร้างมันขึ้นมาไหม? ฉันรู้ว่า Nginx เปิดใช้งานแล้วเพราะฉันสามารถเรียกดูได้


หากคุณต้องการแยกไฟล์ปรับแต่งขนาดใหญ่หนึ่งไฟล์ออกเป็นไฟล์ขนาดเล็กคุณสามารถใช้สคริปต์ของฉันเพื่อแยกไฟล์: stackoverflow.com/a/38635284/1069083
rubo77

คำตอบ:


354

ดีฉันคิดว่า nginx โดยตัวของมันเองไม่ได้มีในการตั้งค่าเพราะแพคเกจดูแลรักษา Ubuntu ทำมันเป็นแบบแผนเพื่อเลียนแบบการตั้งค่า Apache ของ Debian คุณสามารถสร้างมันขึ้นมาเองได้ถ้าคุณต้องการเลียนแบบการตั้งค่าเดียวกัน

สร้าง/etc/nginx/sites-availableและ/etc/nginx/sites-enabledจากนั้นแก้ไขhttpบล็อกภายใน/etc/nginx/nginx.confและเพิ่มบรรทัดนี้

include /etc/nginx/sites-enabled/*;

แน่นอนว่าไฟล์ทั้งหมดจะอยู่ข้างในsites-availableและคุณต้องสร้าง symlink sites-enabledสำหรับไฟล์เหล่านั้นสำหรับผู้ที่คุณต้องการเปิดใช้งาน


23
ญาติ RedHat (เช่น Fedora และ Centos) ไม่มีคุณลักษณะนี้นอกกรอบเช่น Debian / Ubuntu มันง่ายในการคัดลอกตามที่ @Mammamm กล่าวว่าอย่างไรก็ตามการไม่มีค่าเริ่มต้นที่ดีนั้นสร้างความสับสนให้กับผู้มาใหม่
MGP

36
พระเจ้าฉันไม่สามารถบอกได้ว่าฉันทำการค้นหาจำนวนเท่าใด ฉันใช้ Amazon Linux AMI release 2014.03 ไดเรกทอรีเหล่านี้จะไม่ถูกสร้างขึ้นโดยอัตโนมัติหากคุณติดตั้ง nginx จากไฟล์ rpm (ไม่ว่าจะเป็น nginx 1.6.2 หรือ nginx 1.7.5) แต่ตัวอย่างการกำหนดค่า nginx จำนวนมากอ้างถึงสิ่งเหล่านี้ ... ทำให้คุณสงสัยว่า nginx ของคุณติดตั้งอย่างถูกต้องหรือไม่
so_mv

1
เยี่ยมมากขอบคุณ symlink ล่ะ? ไวยากรณ์ของฉันถูกต้องหรือไม่ ดูเหมือนจะไม่ได้รับการพบโดยคำสั่งรวม
เลขศูนย์และ

7
ฉันแก้ไขแล้วเริ่มต้นใหม่และสร้างลิงค์ sym แบบนี้: sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.confไม่แน่ใจว่าทำไมเส้นทางแบบเต็มสร้างความแตกต่าง: /
เลขศูนย์และ

1
ขอบคุณมาก. สร้าง nginx จากแหล่งที่มาและไม่ทราบว่าอูบุนตูทำเช่นนี้
Sean Norwood

66

หากคุณต้องการแนวทางที่ตรงกว่าวิธีที่ไม่ยุ่งกับ symlinking ระหว่าง/etc/nginx/sites-availableและ/etc/nginx/sites-enabledให้ทำดังต่อไปนี้:

  1. ค้นหาไฟล์ nginx.conf ของคุณ มีแนวโน้มที่/etc/nginx/nginx.conf
  2. ค้นหาบล็อก http
  3. อยู่ที่ไหนสักแห่งในบล็อก http เขียนinclude /etc/nginx/conf.d/*.conf;สิ่งนี้บอก nginx เพื่อดึงไฟล์ใด ๆ ในconf.dไดเรกทอรีที่ลงท้าย.confด้วย (ฉันรู้ว่า: มันแปลกที่ไดเรกทอรีสามารถมี.ในนั้น)
  4. สร้างconf.dไดเรกทอรีหากยังไม่มีอยู่ (ตามเส้นทางในขั้นตอนที่ 3) อย่าลืมให้สิทธิ์ / ความเป็นเจ้าของที่ถูกต้อง มีแนวโน้มที่จะรูทหรือ www-data
  5. ย้ายหรือคัดลอก config ไฟล์แยกต่างหากของคุณ (เช่นเดียวกับที่คุณมีใน/etc/nginx/sites-available) conf.dลงในไดเรกทอรี
  6. โหลดซ้ำหรือรีสตาร์ท nginx
  7. กินไอศครีมโคน

.confไฟล์ใด ๆที่คุณใส่ลงในconf.dไดเรกทอรีจากที่นี่ออกจะใช้งานได้ตราบเท่าที่คุณโหลด / รีสตาร์ท nginx หลังจาก

หมายเหตุ: คุณสามารถใช้วิธี+ conf.dและพร้อมกันหากคุณต้องการ ผมชอบที่จะทดสอบบนกล่อง dev ของฉันโดยใช้ รู้สึกเร็วกว่า symlinking และ unsymlinkingsites-enabledsites-availableconf.d


13
ประเด็นของการเชื่อมโยง "ระเบียบ" คือคุณสามารถเก็บรักษาแฟ้มการกำหนดค่าและยังคงปิดการใช้งานโฮสต์เสมือนได้อย่างง่ายดาย หากคุณใช้วิธีการของคุณคุณต้องย้ายไฟล์ออกจาก conf.d เมื่อคุณต้องการปิดการใช้งานเว็บไซต์ที่ฉันไม่คิดว่าจะยุ่งน้อยไปกว่าการลบ symlink อย่างสะดวก
bviktor

@bviktor ฉันได้ยินคุณ ฉันใช้ทั้งสองวิธีจริงๆ ฉันเพิ่งพบว่ามันน่าเบื่อกว่า [เมื่อทดสอบการกำหนดค่า] เพื่อตีกลับไปมาระหว่างไซต์ที่พร้อมใช้งานและไซต์ที่เปิดใช้งานไซต์ ในการผลิตของฉัน env ฉันวางแผนที่จะใช้ symlinking
elbowlobstercowstand

1
ใช่ฉันเห็นด้วยว่าการพิมพ์ ln -s ../sites-available/...ค่อนข้างน่าเบื่อเมื่อทำการทดสอบสิ่งต่าง ๆ ได้อย่างรวดเร็ว แต่ในระยะยาวมันมีประโยชน์และจัดการได้ง่ายขึ้น :)
bviktor

@bviktor ขอบคุณมากสำหรับความสามารถในการกดแท็บในเทอร์มินัลเมื่อเขียนชื่อพา ธ และดูการทำให้สมบูรณ์โดยอัตโนมัติ ไม่รู้เรื่องนั้นซักพักแล้วจนกระทั่งฉันดูวิดีโอกับคนที่ใช้มันอยู่ ฉันคิดว่าพวกเขาพิมพ์ที่ 300 wpm! จากนั้นฉันก็ไปต่อ :)
elbowlobstercowstand

12
@bvktor เฉพาะเว็บไซต์ที่มีนามสกุล .conf รวมอยู่ด้วย หากคุณไม่ต้องการให้เว็บไซต์เปิดใช้งานให้เพิ่มส่วนขยาย. ปิดการใช้งานลงในไฟล์ configuratoin นั่นคือการประชุมมาตรฐานใน CentOS / Apache และจะใช้กับ Nginx เช่นกัน
SenG

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