โฮสต์โฟลเดอร์ในโฮมไดเรกทอรีโดยใช้ nginx


11

ฉันต้องการเพิ่มเงื่อนไขในสคริปต์ผู้ใช้เพื่ออัปเดต nginx.conf เพื่อให้โหลด ~ / www เป็นhttp: // ipaddress / ~ ผู้ใช้ทุกครั้งที่ฉันสร้างผู้ใช้ใหม่

และเมื่อผู้ใช้ชื่อ www.domainname มันจะโฮสต์ชื่อโดเมนนั้นในโฟลเดอร์ ~ / www

มีสคริปต์ที่ทำสิ่งนี้อยู่แล้ว?


ไม่ไม่มี
mailq

คำตอบ:


24

คุณไม่จำเป็นต้องเพิ่มอะไรลงใน nginx เมื่อสร้างผู้ใช้ ใช้สิ่งนี้ในบล็อกเซิร์ฟเวอร์ของคุณ:

location ~ ^/~(.+?)(/.*)?$ {
    alias /home/$1/www$2;
    autoindex on;
}

ตรวจสอบการแจกแจงของคุณ / etc / skel

หากคุณ mkdir / etc / skel / www userdirs ทั้งหมดที่สร้างโดย adduser (หรือการกระจายของคุณ adduser-script) จะมีไดเรกทอรีนี้เป็นค่าเริ่มต้น


ตอนนี้จะเกิดอะไรขึ้นถ้าฉันต้องการให้ผู้ใช้ลบล้างสิ่งนี้หนึ่งครั้งจากนั้นชี้ dns ไปยังเซิร์ฟเวอร์นั้น
Joseph Le Brech

ฉันไม่เข้าใจคำถาม / ปัญหา: /
Franz Bettag

หากผู้ใช้มีไซต์ที่โฮสต์บน ~ ชื่อผู้ใช้จะมีวิธีสำหรับผู้ใช้ที่จะเปลี่ยนเป็นชื่อโดเมน
Joseph Le Brech

คุณสามารถให้ผู้ใช้มีความเป็นไปได้ที่จะมี nginx.conf ของตัวเองเช่น (ไม่ถูกต้อง 100% แต่มีทิศทางอยู่ที่นั่น): ถ้า (-e /home/$1/.nginx.conf) {include (/ home / $ 1 / .nginx.conf); } ที่นั่นผู้ใช้สามารถทำการตั้งค่าของเขาเอง แต่ยังทำลายเซิร์ฟเวอร์รีสตาร์ท นี่เป็นปัญหาเล็กน้อยที่คอมไพล์แล้ว
Franz Bettag

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