Folder Hosting di direktori home menggunakan nginx

11

Saya ingin menambahkan sebuah kondisi dalam skrip adduser untuk memperbarui nginx.conf agar ia memuat ~ / www sebagai http: // ipaddress / ~ pengguna setiap kali saya membuat pengguna baru.

Dan ketika seorang pengguna bernama www.domainname ia akan menghosting nama domain itu di folder ~ / www.

Apakah ada skrip yang sudah melakukan ini?

Joseph Le Brech
sumber
Tidak, tidak ada.
mailq

Jawaban:

24

Anda tidak perlu menambahkan apa pun ke nginx saat membuat pengguna. Cukup gunakan sesuatu seperti ini di blok server Anda:

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

Periksa distribusi Anda / etc / skel

jika Anda mkdir / etc / skel / www semua userdir yang dibuat oleh adduser (atau skrip adduser distribusi Anda) akan memiliki direktori ini secara default.

Franz Bettag
sumber
sekarang bagaimana jika saya ingin para pengguna untuk menimpa ini sekali kemudian mengarahkan dns mereka ke server itu?
Joseph Le Brech
Saya tidak mengerti pertanyaan / masalah: /
Franz Bettag
jika pengguna memiliki situs yang dihosting pada ~ nama pengguna, apakah ada cara bagi pengguna untuk mengubahnya ke nama domain
Joseph Le Brech
Anda dapat memberi pengguna kemungkinan untuk memiliki nginx.conf sendiri, sesuatu seperti (tidak 100% benar, tetapi arahnya ada): if (-e /home/$1/.nginx.conf) {include (/ home / $ 1 / .nginx.conf); } di sana pengguna dapat melakukan pengaturannya sendiri, tetapi juga merusak server-restart. ini sedikit masalah yang dikompilasi.
Franz Bettag
1
yang benar-benar mengguncang :)
Joseph Le Brech