Memasang Nginx:
Nginx boleh didapati di repositori pakej rasmi CentOS 8. Oleh itu, sangat mudah dipasang.
Pertama, kemas kini cache repositori pakej DNF seperti berikut:
$ sudo dnf makecache
Sekarang, pasang Nginx dengan arahan berikut:
$ sudo dnf pasang nginx
Untuk mengesahkan pemasangan, tekan Y dan kemudian tekan
Nginx harus dipasang.
Menguruskan Perkhidmatan nginx:
Secara lalai, nginx perkhidmatan semestinya tidak aktif (tidak berjalan) dan kurang upaya (tidak akan dimulakan secara automatik semasa boot).
$ sudo systemctl status nginx
Anda boleh memulakan nginx perkhidmatan seperti berikut:
$ sudo systemctl mulakan nginx
nginx perkhidmatan semestinya berlari.
$ sudo systemctl status nginx
Sekarang, tambah nginx perkhidmatan untuk permulaan sistem seperti berikut:
$ sudo systemctl mengaktifkan nginx
Mengkonfigurasi Firewall:
Anda mesti mengkonfigurasi firewall untuk membenarkan akses ke port HTTP 80 dan port HTTPS 443 untuk mengakses pelayan web Nginx dari komputer lain di rangkaian.
Anda boleh membenarkan akses ke port HTTP dan HTTPS dengan arahan berikut:
$ sudo firewall-cmd --add-service = http, https --permanent
Sekarang, agar perubahan berlaku, jalankan arahan berikut:
$ sudo firewall-cmd --muat semula
Menguji Pelayan Web:
Anda mesti mengetahui alamat IP atau nama domain pelayan web Nginx untuk mengaksesnya.
Anda boleh mendapatkan alamat IP pelayan web Nginx anda dengan arahan berikut:
$ ip aDalam kes saya, alamat IP adalah 192.168.20.175. Ia akan berbeza bagi anda. Oleh itu, pastikan untuk menggantinya dengan milik anda mulai sekarang.
Sekarang, lawati http: // 192.168.20.175 dari penyemak imbas web anda. Anda mesti melihat halaman berikut. Ini bermaksud pelayan web Nginx berfungsi.
Fail konfigurasi nginx:
Fail konfigurasi pelayan web Nginx ada di / dll / nginx / direktori.
$ pokok / etc / nginx
/ etc / nginx / nginx.pengesahan adalah fail konfigurasi Nginx utama.
Direktori root web lalai pelayan web Nginx adalah / usr / kongsi / nginx / html /. Jadi, di sinilah anda harus menyimpan fail laman web anda.
Menyiapkan Pelayan Web Asas:
Di bahagian ini, saya akan menunjukkan kepada anda cara menyediakan pelayan web Nginx asas.
Pertama, ambil sandaran fail konfigurasi Nginx yang asli dengan arahan berikut:
$ sudo mv -v / etc / nginx / nginx.conf / etc / nginx / nginx.pengesahan.asli
Sekarang, buat fail konfigurasi Nginx baru seperti berikut:
$ sudo nano / etc / nginx / nginx.pengesahan
Sekarang, ketik baris berikut di / etc / nginx / nginx.pengesahan fail dan simpan fail tersebut.
pengguna nginx nginx;pekerja_proses automatik;
ralat_log / var / log / nginx / ralat.log;
pid / larian / nginx.pid;
acara
pekerja_sambungan 1024;
http
sertakan / etc / nginx / mime.jenis;
aplikasi default_type / octet-stream;
pelayan
dengar 80;
contoh nama pelayan.com www.contoh.com;
root / usr / share / nginx / html;
indeks indeks.html;
akses_log / var / log / nginx / akses.log;
Di sini, pengguna pilihan digunakan untuk menetapkan pengguna dan kumpulan Nginx run ke nginx masing-masing.
The ralat_log pilihan digunakan untuk menetapkan laluan fail log kesilapan ke / var / log / nginx / ralat.balak. Di sinilah ralat yang berkaitan dengan pelayan Nginx akan disimpan.
Konfigurasi pelayan Nginx utama ditentukan dalam pelayan bahagian di dalam http bahagian. Anda boleh menentukan lebih daripada satu pelayan bahagian di dalam http bahagian sekiranya diperlukan.
Di dalam pelayan bahagian,
dengar pilihan digunakan untuk mengkonfigurasi Nginx untuk mendengarkan port 80 (port HTTP) untuk permintaan web.
nama pelayan pilihan digunakan untuk menetapkan satu atau lebih nama domain untuk pelayan web Nginx. Sekiranya tetapan DNS anda betul, anda boleh mengakses pelayan web Nginx menggunakan nama domain ini.
capaian_log digunakan untuk menetapkan laluan fail log akses ke / var / log / nginx / akses.balak. Apabila seseorang cuba mengakses pelayan web Nginx, maklumat akses (i.e. Alamat IP, URL, kod status HTTP) akan dimasukkan ke fail ini.
The lokasi pilihan digunakan untuk menetapkan direktori root pelayan web Nginx.
Di sini, akar direktori adalah / usr / kongsi / nginx / html /.
Di sinilah semua fail laman web harus disimpan. The indeks set pilihan indeks.html sebagai fail lalai untuk disajikan jika tidak ada fail khusus yang diminta. Contohnya, jika anda melayari http: // 192.168.20.175 / myfile.html, maka anda Nginx akan kembali myfile.html fail. Tetapi, jika anda melayari http: // 192.168.20.175 /, maka Nginx akan menghantar indeks kepada anda.fail html kerana tidak ada fail khusus yang diminta.
Sekarang, keluarkan semua fail dari / usr / kongsi / nginx / html / direktori (root web) seperti berikut:
$ sudo rm -rfv / usr / share / nginx / html / *
Sekarang, buat yang baru indeks.html fail di / usr / kongsi / nginx / html / direktori seperti berikut:
Sekarang, taip baris berikut di indeks.html fail dan simpan fail tersebut.
Hai dunia
© 2020 LinuxHint.com
Sekarang, mulakan semula nginx perkhidmatan seperti berikut:
$ sudo systemctl mulakan semula nginx
Sekarang, lawati http: // 192.168.20.175 dari penyemak imbas web anda dan anda akan melihat halaman berikut. Tahniah! Anda telah menyediakan pelayan web Nginx pertama anda.
Mengkonfigurasi Halaman Ralat:
Anda boleh mengkonfigurasi halaman ralat di Nginx. Sebagai contoh, jika halaman / fail / direktori tidak tersedia, kod status HTTP 404 akan dikembalikan ke penyemak imbas. Anda boleh menetapkan halaman ralat HTML khusus untuk kod status HTTP 404 yang akan dikembalikan ke penyemak imbas.
Untuk melakukannya, tambahkan baris berikut di pelayan bahagian dari nginx.pengesahan fail.
pelayan…
ralat_ halaman 404/404.html;
…
Sekarang, buat fail 404.html dalam root web Nginx / usr / kongsi / nginx / html / seperti berikut:
$ sudo nano / usr / share / nginx / html / 404.html
Sekarang, taip baris berikut di 404.html dan simpan failnya.
Ralat 404
Laman tidak dijumpai
© 2020 LinuxHint.com
Sekarang, mulakan semula nginx perkhidmatan seperti berikut:
$ sudo systemctl mulakan semula nginx
Sekarang, cuba akses jalan yang tidak wujud (http: // 192.168.20.175 / nopage.html) dan anda akan melihat halaman ralat berikut.
Sekiranya 404.html fail berada di jalan sistem fail yang berbeza (katakanlah / usr / share / nginx / html / ralat / direktori), anda boleh memetakan URL / 404.html seperti berikut:
pelayan…
ralat_ halaman 404/404.html;
lokasi / 404.html
root / usr / share / nginx / html / ralat;
…
Sekarang, buat direktori baru / usr / share / nginx / html / ralat / seperti berikut:
$ sudo mkdir / usr / share / nginx / html / ralat
Sekarang, buat fail baru 404.html dalam direktori / usr / share / nginx / html / ralat / seperti berikut:
$ sudo nano / usr / share / nginx / html / ralat / 404.html
Sekarang, ketik baris berikut di 404.html fail dan simpan fail tersebut.
LAMAN TIDAK DIJUMPAI
BALIK RUMAH
Sekarang, mulakan semula nginx perkhidmatan seperti berikut:
$ sudo systemctl mulakan semula nginx
Sekarang, cuba akses jalan yang tidak ada (http: // 192.168.20.175 / nopage.html) dan anda akan melihat halaman ralat yang dikemas kini.
Dengan cara yang sama, anda boleh menetapkan halaman ralat untuk kod status HTTP yang lain.
Anda juga boleh menetapkan halaman ralat yang sama untuk beberapa kod status HTTP. Contohnya, untuk menetapkan halaman ralat yang sama / 404.html untuk kod status HTTP 403 dan 404, tuliskan halaman ralat pilihan seperti berikut:
ralat_halaman 403 404/404.html;Mengkonfigurasi Log:
Di Nginx, the ralat_log dan capaian_log pilihan digunakan untuk mencatat mesej ralat dan mengakses maklumat.
Format ralat_log dan capaian_log pilihan adalah:
error_log / path / to / error / log / file [pilihan: custom-log-name];access_log / path / to / access / log / file [pilihan: custom-log-name];
Anda boleh menentukan log ralat anda sendiri dan format log akses jika anda mahu.
Untuk melakukannya, gunakan format_ log pilihan di http bahagian untuk menentukan format log tersuai anda seperti berikut.
http…
log_format sederhana '[$ time_iso8601] $ request_mode $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bait';
…
pelayan
…
akses_log / var / log / nginx / akses.log mudah;
…
Di sini, nama format log adalah sederhana. Beberapa pemboleh ubah nginx digunakan untuk menentukan format log tersuai. Lawati Manual Pemboleh ubah Terbenam Nginx untuk mengetahui tentang semua pemboleh ubah Nginx.
Format log tersuai harus dilampirkan dalam petikan tunggal. Format log dapat ditentukan dalam satu baris atau dalam beberapa baris. Saya telah menunjukkan cara menentukan format log dalam beberapa baris dalam artikel ini. Anda tidak akan menghadapi masalah dengan format log baris tunggal, percayalah!
Setelah format log sederhana ditakrifkan, capaian_log pilihan digunakan untuk memberitahu Nginx menggunakannya sebagai log akses.
Dengan cara yang sama, anda dapat menetapkan format log ralat tersuai menggunakan ralat_log pilihan.
Saya hanya mengkonfigurasi format log tersuai untuk log masuk dalam artikel ini.
Sekarang, mulakan semula nginx perkhidmatan seperti berikut:
$ sudo systemctl mulakan semula nginx
Sekarang, anda boleh memantau fail log akses seperti berikut:
$ sudo tail -f / var / log / nginx / akses.balak
Anda juga dapat memantau fail log ralat seperti berikut:
$ sudo tail -f / var / log / nginx / error.balak
Sekiranya anda mahu, anda dapat memantau log akses dan fail log ralat pada masa yang sama seperti berikut:
$ sudo tail -f / var / log / nginx / ralat, akses.balak
Seperti yang anda lihat, format log akses baru sedang digunakan.
Menolak Akses ke Laluan Tertentu:
Anda boleh menggunakan ungkapan biasa untuk mencocokkan jalur URI tertentu dan menolak akses ke Nginx.
Katakanlah, laman web anda diuruskan oleh Git, dan anda mahu menolak akses ke .git / direktori pada root web anda.
Untuk melakukannya, taipkan baris berikut di pelayan bahagian dari / etc / nging / nginx.pengesahan fail:
pelayan…
lokasi ~ \.git
menafikan semua;
…
Seperti yang anda lihat, akses ke mana-mana jalan yang mengandungi .git ditolak.
Mengkonfigurasi Mampatan:
Anda boleh memampatkan kandungan web sebelum menghantarnya ke penyemak imbas menggunakan gzip untuk menjimatkan penggunaan jalur lebar pelayan web Nginx.
Saya mempunyai beberapa gambar JPEG di / usr / kongsi / nginx / html / gambar / direktori.
Saya dapat mengakses gambar-gambar ini menggunakan jalan URI / gambar.
Untuk mengaktifkan pemampatan gzip hanya untuk gambar JPEG di jalur URI / gambar, taip baris berikut di pelayan bahagian dari / etc / nginx / nginx.pengesahan fail.
pelayan…
lokasi / gambar
gzip dihidupkan;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_tipe gambar / jpeg;
…
Di sini, gzip_comp_level digunakan untuk menetapkan tahap pemampatan. Ia boleh berupa nombor 1 hingga 9. Semakin tinggi tahapnya, semakin kecil fail yang dimampatkan.
Fail hanya akan dimampatkan jika ukuran fail di atas gzip_min_length. Saya telah menetapkannya sekitar 100 KB dalam contoh ini. Jadi, fail JPEG yang lebih kecil daripada 100 KB tidak akan dimampatkan gzip.
The jenis-jenis gzip digunakan untuk menetapkan jenis mime dari fail yang akan dimampatkan.
Anda boleh mendapatkan jenis mime dari sambungan fail seperti berikut:
$ grep jpg / etc / nginx / mime.jenisSeperti yang anda lihat, untuk .jpg atau .jpeg sambungan fail, jenis mime adalah gambar / jpeg.
Anda boleh menetapkan satu atau lebih jenis mime menggunakan jenis-jenis gzip pilihan.
Sekiranya anda ingin menetapkan beberapa jenis mime, pastikan untuk memisahkannya dengan ruang seperti berikut:
"gzip_types image / jpeg image / png image / gif;
Sekarang, mulakan semula nginx perkhidmatan seperti berikut:
$ sudo systemctl mulakan semula nginx
Seperti yang anda lihat, Nginx menghantar fail gambar termampat gzip ke penyemak imbas apabila diminta.
Seperti yang anda lihat dalam tangkapan skrin di bawah, fail termampat gzip lebih kecil daripada fail asal.
$ sudo tail -f / var / log / nginx / akses.balak
Mengaktifkan HTTPS:
Anda boleh mengaktifkan SSL di Nginx dengan sangat mudah. Di bahagian ini, saya akan menunjukkan kepada anda cara menetapkan sijil SSL yang ditandatangani sendiri di Nginx.
Pertama, arahkan ke / dll / ssl / direktori seperti berikut:
$ cd / etc / ssl
Sekarang, jana kunci SSL pelayan.kunci dan perakuan pelayan.crt dengan arahan berikut:
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyoutpelayan.pelayan key -out.crt
NOTA: Awak mesti ada terbuka dipasang untuk berfungsi. Sekiranya arahan openssl tidak tersedia, pasang terbuka dengan arahan berikut:
$ sudo dnf install openssl -ySekarang, taipkan kod negara 2 huruf anda (i.e. AS untuk AS, UK untuk United Kingdom, RU untuk Rusia, CN untuk China) dan tekan
Sekarang, taipkan nama Negeri / Wilayah anda dan tekan
Sekarang, taipkan nama Bandar anda dan tekan
Sekarang, taipkan nama Syarikat anda dan tekan
Sekarang, taipkan nama unit organisasi syarikat anda yang akan menggunakan sijil ini dan tekan
Sekarang, taipkan nama domain yang memenuhi syarat (FQDN) pelayan web Nginx anda dan tekan
Sekarang, taipkan alamat e-mel anda dan tekan
Sijil SSL anda mesti siap.
Sijil dan kunci SSL harus dihasilkan di / dll / ssl / direktori.
$ ls -lh
Sekarang, buka fail konfigurasi Nginx / etc / nginx / nginx.pengesahan dan berubah dengar pelabuhan ke 443 dan taipkan baris berikut di pelayan bahagian.
pelayan…
ssl pada;
ssl_certificate / etc / ssl / pelayan.crt;
ssl_certificate_key / etc / ssl / pelayan.kunci;
…
Sekarang, mulakan semula nginx perkhidmatan seperti berikut:
$ sudo systemctl mulakan semula nginx
Dalam kehidupan sebenar, anda akan mempunyai persediaan DNS yang betul. Tetapi untuk tujuan pengujian, saya telah mengkonfigurasi nama domain berdasarkan fail tempatan di komputer yang saya gunakan untuk mengakses pelayan web Nginx dari.
Sekiranya anda ingin mengikuti, buka / dll / tuan rumah fail seperti berikut:
$ sudo nano / etc / host
Kemudian, tambahkan baris berikut ke / dll / tuan rumah fail.
192.168.20.175 www.contoh.com
Sekarang, cuba lawati https: // www.contoh.com dan anda mesti melihat halaman berikut. Awak akan lihat Sambungan anda tidak selamat mesej kerana ia adalah sijil yang ditandatangani sendiri. Ini baik untuk tujuan ujian sahaja.
Dalam kehidupan sebenar, anda akan membeli sijil SSL dari Pihak Berkuasa Sijil (CA) dan menggunakannya. Jadi, anda tidak akan melihat jenis mesej ini.
Seperti yang anda lihat, Nginx melayan laman web melalui HTTPS. Oleh itu, SSL berfungsi.
Maklumat SSL www.contoh.com.
Mengarahkan Permintaan HTTP ke HTTPS:
Sekiranya seseorang mengunjungi laman web anda melalui protokol HTTP (http: // www.contoh.com atau http: // 192.168.20.175) bukannya HTTPS (https: // www.contoh.com), anda tidak mahu menolak permintaan HTTP. Sekiranya anda melakukannya, anda akan kehilangan pelawat. Apa yang sebenarnya harus anda lakukan ialah mengarahkan pengguna ke laman web SSL. Ia sangat mudah dilakukan.
Pertama, buka fail konfigurasi Nginx / etc / nginx / nginx.pengesahan dan buat yang baru pelayan bahagian di dalam http bahagian seperti berikut:
http…
pelayan
dengar 80;
pelayan_nama www.contoh.com;
pulangkan 301 https: // www.contoh.com $ request_uri;
…
Ini adalah yang terakhir / etc / nginx / nginx.pengesahan fail:
pengguna nginx nginx;pekerja_proses automatik;
ralat_log / var / log / nginx / ralat.log;
pid / larian / nginx.pid;
acara
pekerja_sambungan 1024;
http
sertakan / etc / nginx / mime.jenis;
aplikasi default_type / octet-stream;
log_format sederhana '[$ time_iso8601] $ request_mode $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bait';
pelayan
dengar 80;
pelayan_nama www.contoh.com;
pulangkan 301 https: // www.contoh.com $ request_uri;
pelayan
dengar 443;
pelayan_nama www.contoh.com;
ssl pada;
ssl_certificate / etc / ssl / pelayan.crt;
ssl_certificate_key / etc / ssl / pelayan.kunci;
akses_log / var / log / nginx / akses.log mudah;
lokasi /
root / usr / share / nginx / html;
indeks indeks.html;
lokasi / gambar
gzip dihidupkan;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_tipe gambar / jpeg;
ralat_ halaman 404/404.html;
lokasi / 404.html
root / usr / share / nginx / html / ralat;
lokasi ~ \.git
menafikan semua;
Sekarang, mulakan semula nginx perkhidmatan seperti berikut:
$ sudo systemctl mulakan semula nginx
Sekarang, jika anda cuba mengakses http: // 192.168.20.175 atau http: // www.contoh.com, anda akan diarahkan ke https: // www.contoh.com.
Jadi, itulah cara anda memasang dan mengkonfigurasi pelayan web Nginx di CentOS 8. Terima kasih kerana membaca artikel ini.