เกิดอะไรขึ้น?
คุณต้องใช้ Debian หรืออูบุนตูตั้งแต่ชั่วร้าย sites-available
/ sites-enabled
ตรรกะไม่ได้ถูกใช้โดยบรรจุภัณฑ์ต้นน้ำของ Nginxจากhttp://nginx.org/packages/
ในทั้งสองกรณีทั้งสองจะถูกนำมาใช้เป็นที่ประชุมกำหนดค่าด้วยความช่วยเหลือของมาตรฐานสั่งในinclude
/etc/nginx/nginx.conf
นี่เป็นตัวอย่างข้อมูล/etc/nginx/nginx.conf
จากแพ็คเกจต้นน้ำอย่างเป็นทางการของ nginx จาก nginx.org:
http {
…
include /etc/nginx/conf.d/*.conf;
}
นี่เป็นตัวอย่างข้อมูล/etc/nginx/nginx.conf
จาก Debian / Ubuntu :
http {
…
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
ดังนั้นจากมุมมองของ NGINX ที่แตกต่างกันเท่านั้นที่จะเป็นไปได้ว่าไฟล์จากconf.d
ได้รับการประมวลผลเร็วและเป็นเช่นถ้าคุณมีการกำหนดค่าที่เงียบขัดแย้งกับแต่ละอื่น ๆ แล้วผู้ที่มาจากอาจจะมีความสำคัญมากกว่าผู้ที่อยู่ในconf.d
sites-enabled
conf.d
ปฏิบัติที่ดีที่สุดคือ
คุณควรใช้/etc/nginx/conf.d
เนื่องจากเป็นแบบแผนมาตรฐานและควรทำงานได้ทุกที่
หากคุณต้องการปิดการใช้งานเว็บไซต์เพียงแค่เปลี่ยนชื่อไฟล์ให้ไม่มี.conf
ส่วนต่อท้ายง่ายตรงไปตรงมาและป้องกันข้อผิดพลาด:
sudo mv -i /etc/nginx/conf.d/default.conf{,.off}
หรือตรงกันข้ามเพื่อเปิดใช้งานไซต์:
sudo mv -i /etc/nginx/conf.d/example.com.conf{.disabled,}
หลีกเลี่ยงsites-available
& sites-enabled
ค่าใช้จ่ายทั้งหมด
ฉันเห็นว่าไม่มีเหตุผลที่จะใช้sites-available
/ sites-enabled
:
บางคนได้กล่าวถึงnginx_ensite
และnginx_dissite
สคริปต์ - ชื่อของสคริปต์เหล่านี้เลวร้ายยิ่งกว่าส่วนที่เหลือของความล้มเหลวนี้ - แต่สคริปต์เหล่านี้ก็ไม่มีที่จะพบ - พวกเขากำลังขาดจากnginx
แพคเกจแม้ใน Debian (และอาจเป็นใน Ubuntu) และไม่ปรากฏอยู่ในแพ็คเกจของพวกเขาเองรวมทั้งคุณต้องการสคริปต์ของบุคคลที่สามที่ไม่ได้มาตรฐานทั้งหมดเพื่อย้ายและ / หรือเชื่อมโยงไฟล์ระหว่างสองไดเรกทอรีหรือไม่!
และหากคุณไม่ได้ใช้สคริปต์ (ซึ่งอันที่จริงแล้วเป็นตัวเลือกที่ฉลาดตามข้างบน) แล้วคุณจะจัดการกับปัญหาได้อย่างไร:
- คุณสร้างลิงก์สัญลักษณ์จาก
sites-available
ถึงsites-enabled
หรือไม่
- คัดลอกไฟล์หรือไม่
- ย้ายไฟล์หรือไม่
- แก้ไขไฟล์ที่อยู่ใน
sites-enabled
?
ด้านบนอาจดูเหมือนว่ามีปัญหาเล็กน้อยที่จะแก้ไขจนกระทั่งหลายคนเริ่มจัดการระบบหรือจนกว่าคุณจะตัดสินใจได้อย่างรวดเร็วเพียงลืมเรื่องนี้ไปหลายเดือนหรือหลายปี ...
ซึ่งนำเราไปยัง:
จะปลอดภัยที่จะลบไฟล์จากsites-enabled
? มันเป็นลิงค์อ่อนหรือไม่? ลิงค์ยาก? หรือเฉพาะการกำหนดค่าเท่านั้น ตัวอย่างสำคัญของการกำหนดค่านรก
ไซต์ใดถูกปิดใช้งาน (ด้วยconf.d
, เพียงแค่ทำการค้นหาไฟล์ที่ไม่ลงท้ายด้วย.conf
- find /etc/nginx/conf.d -not -name "*.conf"
หรือใช้grep -v
.)
ไม่เพียง แต่ทั้งหมดข้างต้น แต่ยังทราบเฉพาะinclude
คำสั่งที่ใช้โดย Debian / Ubuntu - /etc/nginx/sites-enabled/*
- ไม่มีคำต่อท้ายชื่อไฟล์ที่ระบุไว้สำหรับแตกต่างสำหรับsites-enabled
conf.d
- สิ่งนี้หมายความว่าถ้าวันหนึ่งคุณตัดสินใจที่จะแก้ไขไฟล์หนึ่งหรือสองไฟล์อย่างรวดเร็ว
/etc/nginx/sites-enabled
และคุณemacs
สร้างไฟล์สำรองอย่างdefault~
ทันทีทันใดคุณมีทั้งสองอย่างdefault
และdefault~
รวมเป็นการตั้งค่าที่ใช้งานซึ่งขึ้นอยู่กับคำสั่งที่ใช้ คำเตือนใด ๆ และทำให้เซสชันการดีบักเป็นเวลานานขึ้น (ใช่มันเกิดขึ้นกับฉันมันเป็นช่วงแฮ็คฮ็อตและฉันงงเลยว่าทำไมความลับของฉันถึงไม่ทำงาน)
ดังนั้นฉันมั่นใจว่าsites-enabled
เป็นความชั่วร้ายที่บริสุทธิ์!
www-data
เป็นหัวข้อแยกต่างหาก ระบบปฏิบัติการส่วนใหญ่กำหนดผู้ใช้แยกต่างหากด้วยสิทธิ์ที่ต่ำกว่าซึ่งกระบวนการสามารถทำงานได้หลังจากผูกกับพอร์ต 80 ในฐานะรูท มันกำหนดไว้ในไฟล์ปรับแต่ง ใช้แนวทางปฏิบัติด้านความปลอดภัยขั้นพื้นฐานจากที่นั่น อย่าให้ผู้ใช้เขียนสิ่งใดก็ตามที่เว็บเซิร์ฟเวอร์ไม่จำเป็นต้องเขียนลงไปอย่าให้ผู้ใช้คนอื่นเขียนไฟล์เว้นแต่ว่าจะมีเจตนา