Kita semua tahu cara mengaktifkan situs web menggunakan apache di linux. Saya cukup yakin bahwa kita semua setuju untuk menggunakan perintah a2ensite.
Sayangnya tidak ada perintah setara standar yang datang dengan Nginx, tetapi kebetulan saya menginstal beberapa paket di ubuntu yang memungkinkan saya untuk mengaktifkan / menonaktifkan situs dan mendaftarnya.
Masalahnya adalah saya tidak ingat nama paket ini.
Adakah yang tahu apa yang saya bicarakan?
Tolong beritahu saya nama paket ini dan nama perintah.
nginx
command-line-interface
website
command
Ghassen Telmoudi
sumber
sumber
Jawaban:
Jika Anda telah menginstal
nginx
paket dari repositori Ubuntu, Anda akan memiliki dua direktori./etc/nginx/sites-enabled
dan/etc/nginx/sites-available
.Di konfigurasi nginx utama
/etc/nginx/nginx.conf
,, Anda memiliki baris berikut:Jadi pada dasarnya untuk mendaftar semua virtualhost yang tersedia, Anda dapat menjalankan perintah berikut:
Untuk mengaktifkan salah satunya, jalankan perintah berikut:
Skrip yang disertakan dengan Apache pada dasarnya hanyalah pembungkus shell sederhana yang melakukan sesuatu yang mirip seperti di atas.
Setelah menautkan file, ingatlah untuk menjalankan
sudo service nginx reload
/service nginx reload
sumber
Cukup buat skrip ini
/usr/bin/nginx_modsite
dan buat itu bisa dieksekusi.Bagaimana itu bekerja:
Untuk membuat daftar semua situs
Untuk mengaktifkan situs "test_website"
Untuk menonaktifkan situs "test_website"
sumber
Apakah Anda mengacu pada
nginx_ensite
dannginx_dissite
?sumber
NGINX
Jika Anda menggunakan salah satu paket hulu resmi nginx dari http://nginx.org/packages/ , cara terbaik adalah menavigasi ke
/etc/nginx/conf.d
direktori, dan mengganti nama file yang terpengaruh dari memiliki.conf
akhiran menjadi akhiran yang berbeda. nonaktifkan situs:sudo mv -i /etc/nginx/conf.d/default.conf{,.off}
Atau sebaliknya untuk mengaktifkannya:
sudo mv -i /etc/nginx/conf.d/example.com.conf{.disabled,}
Ini karena default
/etc/nginx/nginx.conf
memilikiinclude
arahan berikut :Debian / Ubuntu
Namun, jika Anda menggunakan turunan Debian / Ubuntu, maka selain itu
conf.d
, Anda juga mungkin memiliki direktori dan standar jahatsites-available
sites-enabled
, beberapa file yang mungkin dimasukkan dengan sembrono tanpa memperhatikan ekstensi mereka:Dengan demikian, di Debian / Ubuntu, Anda mungkin harus mencari tahu di mana konfigurasi situs berada.
Anda bisa menggunakan perintah berikut untuk mendapatkan daftar semua situs yang tersedia dengan menjalankan
find(1)
untuk menemukan semua file biasa yang cocok dengan topeng yang diberikan:find /etc/nginx -maxdepth 2 -type f \( -path "*/conf.d/*.conf" -or -path "*/sites-*/*" \)
Anda dapat menggunakan perintah berikut untuk mendapatkan daftar semua situs yang diaktifkan :
find /etc/nginx -maxdepth 2 \( -path "*/conf.d/*.conf" -or -path "*/sites-enabled/*" \)
Kemudian untuk menonaktifkan / mengaktifkan situs di Debian / Ubuntu:
Untuk menonaktifkan situs: jika konfigurasi dalam
conf.d
, cukup ganti nama file untuk tidak lagi memiliki.conf
akhiran; atau jika dalamsites-enabled
, pindahkan darisites-enabled
.Untuk mengaktifkan situs, cara terbaik adalah memindahkannya
/etc/nginx/conf.d
, dan mengganti nama menjadi.conf
sufiks.PS Mengapa saya pikir Debian itu
include /etc/nginx/sites-enabled/*;
jahat? Coba edit beberapa file di direktori itu, dan minta Andaemacs
membuat file cadangan (dengan~
akhiran), lalu tanya saya lagi.sumber
conf.d
direktori adalah konfigurasi di seluruh server seperti itu untuk modul, plugin, penangan fastcgi dll dan secara eksplisit tidak menyimpan host konfigurasi / vhost di dan 2) Seseorang tidak boleh mengedit file apa pun disites-enabled
serverfault.com/a/825297/86189conf.d
, karena ini termasuk pada konteks yang sama dengan kontekssites-enabled
satu-http
tingkat, jadi, arahan modul dan plugin mungkin tidak berlaku. Demikian juga, asumsi Anda bahwa seseorang tidak boleh mengedit filesites-enabled
hanya angan-angan - tidak ada instruksi seperti itu di dalam distro, atau di dalam direktori, jadi, itu murni asumsi Anda, yang sama sekali tidak ditegakkan oleh distribusi, jadi, Anda memiliki segala macam masalah yang timbul darinya, misalnya, stackoverflow.com/q/45852224/1122270 .conf.d
apa, mungkin, pengelola Debian Nginx (atau mungkin disimpan untuk kompatibilitas dengan hulu). Tentang tidak mengedit file disites-enabled
, itu bukan angan-angan tapi yang seharusnya mengalir di bawah Apache yang mereka coba tiru di Nginx. Dalam apache itu cukup jelas karena keberadaana2ensite
dana2dissite
skrip. Sayangnya tidak ada yang disediakan untuk Nginx yang menunjukkan betapa rendahnya kualitas perawatan paket itu di Debian. Keduanya kekurangan dokumentasi, benar.ls -al sites-enabled
di Apache atau Nginx menunjukkan bahwa file yang ada di direktori adalah symlinks-available
, ditto untuk modul di bawah Apache, bersama dengan yang disediakana2enmod
/a2dismod
scirpts.conf.d
apa adanya.Metode lain adalah mengubah nama file konfigurasi situs menjadi sesuatu yang berakhir tanpa .conf
Misalnya
sudo mv mysite.conf mysite.conf.disabled
Kemudian muat ulang nginx, dan vhost itu akan kembali ke default.
sumber
include /etc/nginx/sites-enabled/*;
hanya menyertakan conf dir as*.conf
sites-available
dansites-enabled
karena mereka memiliki jasa dan penggunaan. Seseorang mungkin hanya harus mengajukan laporan bug untuk baris menyinggung sebenarnya di nginx conf to/etc/nginx/sites-enabled/*.conf;
dan mereka mungkin akan melakukannya karena itu mungkin sebuah pengawasan. Tetapi jika Anda menghormati alur kerja Debian Anda tetap akan mengedit filesites-available
dan menghubungkan yang ingin Anda aktifkansites-enabled
.