Cara Memasang Nginx dengan Hos Maya dan Sijil SSL

Cara Memasang Nginx dengan Hos Maya dan Sijil SSL

Nginx (ringkasan untuk Enjin-x) adalah sumber percuma, sumber terbuka, kuat, berprestasi tinggi dan berskala HTTP dan pelayan proksi terbalik, mel dan pelayan proksi TCP/UDP standard. Ia mudah digunakan dan dikonfigurasikan, dengan bahasa konfigurasi yang mudah. Nginx kini menjadi perisian pelayan web pilihan untuk menggerakkan tapak yang banyak dimuatkan, kerana skalabilitas dan prestasinya.

Dalam artikel ini akan membincangkan cara menggunakan NGINX sebagai pelayan HTTP, konfigurasikannya untuk melayani kandungan web, dan menyediakan tuan rumah maya berasaskan nama, dan membuat dan memasang SSL untuk penghantaran data yang selamat, termasuk sijil ditandatangani sendiri di Ubuntu dan CentOS.

Cara memasang pelayan web nginx

Mula pertama dengan memasang pakej nginx dari repositori rasmi menggunakan pengurus pakej anda seperti yang ditunjukkan.

------------ Di Ubuntu ------------ $ sudo apt update $ sudo apt pemasangan nginx ------------ Pada Centos ------------ $ sudo yum update $ sudo yum memasang epel-release $ sudo yum install nginx 

Selepas pakej nginx dipasang, anda perlu memulakan perkhidmatan buat masa ini, membolehkannya menjadi auto-start pada masa boot dan melihatnya status, menggunakan arahan berikut. Perhatikan bahawa pada Ubuntu, ia harus dimulakan dan didayakan secara automatik semasa pakej pra-konfigurasi.

$ sudo systemctl start nginx $ sudo systemctl enable nginx $ sudo systemctl status nginx 
Mulakan dan periksa status nginx

Pada ketika ini, pelayan web nginx harus berjalan dan berjalan, anda boleh mengesahkan status dengan perintah netstat.

$ sudo netstat -tlpn | grep nginx 
Periksa status port nginx

Sekiranya sistem anda mempunyai firewall diaktifkan, anda perlu membuka pelabuhan 80 dan 443 membenarkan Http dan Https masing -masing lalu lintas, melalui itu, dengan berjalan.

------------ Pada Centos ------------ $ sudo firewall-cmd --permanent --add-port = 80/tcp $ sudo firewall-cmd --permanent --add-port = 443/tcp $ sudo firewall cmd-reload ------------ Di Ubuntu ------------ $ sudo ufw membenarkan 80/tcp $ sudo ufw membenarkan 443/tcp $ sudo ufw semula 

Kaedah yang ideal untuk menguji pemasangan nginx dan memeriksa sama ada ia berjalan dan dapat melayani laman web adalah dengan membuka pelayar web dan menunjuk ke IP pelayan.

http: // your -ip-address atau http: // your-domain.com 

Pemasangan kerja harus ditunjukkan oleh skrin berikut.

Semak laman web nginx

Cara mengkonfigurasi pelayan web nginx

Fail konfigurasi nginx terletak di direktori /etc/nginx dan fail konfigurasi global terletak di /etc/nginx/nginx.Conf di kedua -dua centos dan ubuntu.

Nginx terdiri daripada modul yang dikawal oleh pelbagai pilihan konfigurasi, yang dikenali sebagai arahan. A arahan sama ada mudah (dalam nama dan nilai borang yang ditamatkan dengan a ;) atau blok (Mempunyai arahan tambahan yang dilampirkan menggunakan ). Dan arahan blok yang mengandungi arahan lain dipanggil a konteks.

Semua arahan dijelaskan secara komprehensif dalam dokumentasi Nginx di laman web projek. Anda boleh merujuknya untuk maklumat lanjut.

Cara melayani kandungan statik menggunakan nginx dalam mod mandiri

Pada tahap asas, Nginx boleh digunakan untuk melayani kandungan statik seperti HTML dan fail media, dalam mod mandiri, di mana hanya blok pelayan lalai yang digunakan (sama dengan Apache di mana tiada tuan rumah maya telah dikonfigurasi).

Kami akan bermula secara ringkas menerangkan struktur konfigurasi dalam fail konfigurasi utama.

 $ sudo vim/etc/nginx/nginx.Conf 

Jika anda melihat fail konfigurasi nginx ini, struktur konfigurasi harus muncul seperti berikut dan ini disebut sebagai konteks utama, yang mengandungi banyak arahan mudah dan blok lain. Semua trafik web dikendalikan dalam konteks HTTP.

pengguna nginx; worker_processes 1; ... error_log/var/log/nginx/ralat.log amaran; pid/var/run/nginx.pid; ... events ... http Server .. .  ... 

Berikut adalah contoh konfigurasi utama nginx (/etc/nginx/nginx.Conf) fail, di mana blok HTTP di atas mengandungi arahan termasuk yang memberitahu nginx di mana untuk mencari fail konfigurasi laman web (konfigurasi hos maya).

Fail konfigurasi nginx
Pengguna www-data; worker_processes auto; pid /run /nginx.pid; peristiwa worker_connections 768; # multi_accept on;  http termasuk/etc/nginx/mime.jenis; default_type Application/Octet-stream; Sertakan/etc/nginx/mime.jenis; default_type Application/Octet-stream; akses_log/var/log/nginx/akses.log; error_log/var/log/nginx/ralat.log; Sendfile pada; #TCP_NOPUSH ON; Keepalive_timeout 65; #gzip on; termasuk/etc/nginx/conf.d/*.Con;  

Perhatikan bahawa pada Ubuntu, Anda juga akan mendapat tambahan termasuk Arahan (termasuk/etc/nginx/sites-enabled/*;), di mana direktori /etc/nginx/enabled sites/ menyimpan symlink ke fail konfigurasi laman web yang dibuat di /etc/nginx/sites-tersedia/, untuk membolehkan laman web. Dan memadam symlink melumpuhkan laman web tertentu.

Berdasarkan sumber pemasangan anda, anda akan menemui fail konfigurasi laman web lalai di /etc/nginx/conf.d/lalai.Conf (Sekiranya anda memasang dari rasmi Nginx repositori dan Epel) atau /etc/nginx/sites-enabled/lalai (Sekiranya anda memasang dari repositori Ubuntu).

Ini adalah blok pelayan nginx lalai sampel kami yang terletak di /etc/nginx/conf.d/lalai.Conf pada sistem ujian.

pelayan mendengar 80 default_server; Dengar [::]: 80 default_server; nama pelayan _; root/var/www/html/; Indeks indeks.html; lokasi / try_files $ uri $ uri / = 404;  

Penjelasan ringkas mengenai arahan dalam konfigurasi di atas:

  • Dengarkan: Menentukan pelabuhan pelayan mendengar pada.
  • nama pelayan: mentakrifkan nama pelayan yang boleh menjadi nama tepat, nama wildcard, atau ungkapan biasa.
  • akar: Menentukan direktori di mana nginx akan melayani laman web dan dokumen lain.
  • indeks: Menentukan jenis fail indeks (s) yang akan disampaikan.
  • Lokasi: digunakan untuk memproses permintaan untuk fail dan folder tertentu.

Dari pelayar web, apabila anda menunjuk ke pelayan menggunakan Nama Host localhost atau alamat IPnya, ia memproses permintaan dan menyampaikan fail /var/www/html/indeks.html, dan segera menjimatkan acara ke log aksesnya (/var/log/nginx/akses.log) dengan Respons 200 (OK). Sekiranya berlaku (peristiwa gagal), ia merekodkan mesej dalam log ralat (/var/log/nginx/ralat.log).

Ujian Laman Lalai Nginx

Untuk mengetahui lebih lanjut mengenai log masuk Nginx, Anda boleh merujuk cara mengkonfigurasi format log akses atau ralat tersuai di nginx.

Daripada menggunakan fail log lalai, anda boleh menentukan fail log tersuai untuk laman web yang berbeza, seperti yang akan kita lihat kemudian, di bawah seksyen "Menyediakan tuan rumah maya berasaskan nama (blok pelayan)".

Cara menyekat akses ke laman web dengan nginx

Untuk menyekat akses ke laman web/aplikasi anda atau beberapa bahagian daripadanya, anda boleh menyiapkan pengesahan HTTP asas. Ini boleh digunakan pada dasarnya untuk menyekat akses ke seluruh pelayan HTTP, blok pelayan individu atau blok lokasi.

Mulakan dengan membuat fail yang akan menyimpan kelayakan akses anda (kata laluan nama pengguna) dengan menggunakan htpasswd utiliti.

 $ yum Pasang httpd-tools #rhel/centos $ sudo apt install apache2-utils #debian/ubuntu 

Sebagai contoh, mari tambahkan admin pengguna ke senarai ini (anda boleh menambah sebanyak mungkin pengguna), di mana -c pilihan digunakan untuk menentukan fail kata laluan, dan -B untuk menyulitkan kata laluan. Sebaik sahaja anda memukul [Masukkan], Anda akan diminta memasukkan kata laluan pengguna:

$ sudo htpasswd -bc/etc/nginx/conf.d/.HtPasswd Admin 

Kemudian, mari kita berikan keizinan dan pemilikan yang betul ke fail kata laluan (ganti pengguna dan kumpulan nginx dengan www-data di Ubuntu).

$ sudo chmod 640/etc/nginx/conf.d/.htpasswd $ sudo chown nginx: nginx/etc/nginx/conf.d/.htpasswd 

Seperti yang telah disebutkan sebelumnya, anda boleh menyekat akses ke webserver anda, laman web tunggal (menggunakan blok pelayannya) atau direktori atau fail tertentu. Dua arahan berguna boleh digunakan untuk mencapai ini:

  • auth_basic - menghidupkan pengesahan nama pengguna dan kata laluan menggunakan "Pengesahan asas HTTP"Protokol.
  • AUTH_BASIC_USER_FILE - Menentukan fail kelayakan.

Sebagai contoh, kami akan menunjukkan cara untuk melindungi kata laluan direktori /var/www/html/dilindungi.

pelayan mendengar 80 default_server; server_name localhost; root/var/www/html/; Indeks indeks.html; lokasi / try_files $ uri $ uri / = 404;  lokasi / dilindungi / auth_basic "akses terhad!"; auth_basic_user_file/etc/nginx/conf.d/.htpasswd;  

Sekarang, simpan perubahan dan mulakan semula perkhidmatan nginx.

$ sudo systemctl mulakan semula nginx 

Kali berikutnya anda menunjukkan penyemak imbas anda ke direktori di atas (http: // localhost/dilindungi) anda akan diminta memasukkan kelayakan log masuk anda (nama pengguna admin dan kata laluan yang dipilih).

Log masuk yang berjaya membolehkan anda mengakses kandungan direktori, jika tidak, anda akan mendapat "401 kebenaran diperlukan"Ralat.

Cara Menyiapkan Hos Maya Berbasis Nama (Blok Pelayan) di Nginx

Konteks pelayan membolehkan pelbagai domain/tapak disimpan dan disajikan dari mesin fizikal yang sama atau pelayan peribadi maya (VPS). Blok pelayan berganda (mewakili tuan rumah maya) boleh diisytiharkan dalam konteks HTTP untuk setiap tapak/domain. Nginx memutuskan pelayan mana yang memproses permintaan berdasarkan pengepala permintaan yang diterima.

Kami akan menunjukkan konsep ini menggunakan domain dummy berikut, masing -masing terletak di direktori yang ditentukan:

  • wearetecmint.com - /var/www/html/wearetecmint.com/
  • WELOVELINUX.com - /var/www/html/welovelinux.com/

Seterusnya, berikan kebenaran yang sesuai di direktori untuk setiap laman web.

$ sudo chmod -r 755/var/www/html/wearetecmint.com/public_html $ sudo chmod -r 755/var/www/html/welovelinux.com/public_html 

Sekarang, buat sampel indeks.html fail di dalam setiap public_html direktori.

  www.wearetecmint.com   

Ini adalah halaman indeks www.wearetecmint.com

Seterusnya, buat fail konfigurasi blok pelayan untuk setiap tapak di dalam /etc/httpd/conf.d direktori.

$ sudo vi/etc/nginx/conf.d/wearetecmint.com.conf $ sudo vi/etc/nginx/conf.D/WELOVELINUX.com.Conf 

Tambahkan pengisytiharan blok pelayan berikut di wearetecmint.com.Conf fail.

wearetecmint.com.Conf
pelayan mendengar 80; server_name weareTecmint.com; root/var/www/html/wearetecmint.com/public_html; Indeks indeks.html; lokasi / try_files $ uri $ uri / = 404;  

Seterusnya, tambahkan pengisytiharan blok pelayan berikut di WELOVELINUX.com.Conf fail.

WELOVELINUX.com.Conf
pelayan mendengar 80; server_name welovelinux.com; root/var/www/html/welovelinux.com/public_html; Indeks indeks.html; lokasi / try_files $ uri $ uri / = 404;  

Untuk menggunakan perubahan baru -baru ini, mulakan semula pelayan web nginx.

$ sudo systemctl mulakan semula nginx 

Dan menunjuk pelayan web anda ke alamat di atas harus membuat anda melihat halaman utama domain dummy.

http: // wearetecmint.com http: // welovelinux.com 
Uji laman web tuan rumah maya nginx

Penting: Jika anda mempunyai Selinux Diaktifkan, konfigurasi lalai tidak membenarkan Nginx mengakses fail di luar lokasi yang diberi kuasa yang terkenal (seperti /etc/nginx untuk konfigurasi, /var/log/nginx untuk log, /var/www/html untuk fail web dll ...).

Anda boleh mengendalikan ini dengan melumpuhkan selinux, atau menetapkan konteks keselamatan yang betul. Untuk maklumat lanjut, rujuk panduan ini: Menggunakan Nginx dan Nginx Plus dengan Selinux di laman web Nginx Plus.

Cara memasang dan mengkonfigurasi SSL dengan nginx

SSL Sijil membantu untuk membolehkan HTTP selamat (Https) di laman web anda, yang penting untuk mewujudkan sambungan yang dipercayai/selamat antara pengguna akhir dan pelayan anda dengan menyulitkan maklumat yang dihantar ke, dari, atau di dalam laman web anda.

Kami akan meliputi cara membuat dan memasang sijil yang ditandatangani sendiri, dan menghasilkan permintaan menandatangani sijil (CSR) untuk memperoleh sijil SSL dari pihak berkuasa sijil (Ca), untuk digunakan dengan nginx.

Sijil yang ditandatangani sendiri bebas untuk mencipta dan praktikal untuk pergi untuk tujuan ujian dan untuk perkhidmatan Lan-Only dalaman. Untuk pelayan yang dihadapi awam, sangat disyorkan untuk menggunakan sijil yang dikeluarkan oleh CA (contohnya mari kita enkripsi) untuk menegakkan kesahihannya.

Untuk membuat sijil yang ditandatangani sendiri, mula-mula membuat direktori di mana sijil anda akan disimpan.

$ sudo mkdir/etc/nginx/ssl-serts/ 

Kemudian menghasilkan sijil yang ditandatangani sendiri dan kunci menggunakan OpenSSL Alat baris arahan.

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout/etc/nginx/ssl -serts/nginx.kunci -out/etc/nginx/ssl -certs/nginx.Crt 

Mari kita terangkan secara ringkas pilihan yang digunakan dalam perintah di atas:

  • Req -x509 - menunjukkan kami membuat sijil x509.
  • -nod (no des) - bermaksud "Jangan menyulitkan kunci".
  • -Hari 365 - Menentukan bilangan hari sijil akan sah.
  • -Newkey RSA: 2048 - Menentukan bahawa kunci yang dihasilkan menggunakan algoritma RSA mestilah 2048-bit.
  • -keyout/etc/nginx/ssl-certs/nginx.kunci - Menentukan jalan penuh kunci RSA.
  • -keluar/etc/nginx/ssl-certs/nginx.Crt - Menentukan jalan penuh sijil.
Buat sijil SSL dan kunci untuk nginx

Seterusnya, buka fail konfigurasi hos maya anda dan tambahkan baris berikut ke deklarasi blok pelayan yang mendengar di port 443. Kami akan menguji dengan fail tuan rumah maya /etc/nginx/conf.d/wearetecmint.com.Conf.

$ sudo vi/etc/nginx/conf.d/wearetecmint.com.Conf 

Kemudian tambahkan arahan SSL ke fail konfigurasi Nginx, ia sepatutnya kelihatan sama seperti di bawah.

pelayan mendengar 80; Dengar [::]: 80; Dengar 443 SSL; Dengar [::]: 443 SSL; SSL ON; ssl_certificate/etc/nginx/ssl-serts/nginx.CRT; ssl_trusted_certificate/etc/nginx/ssl-serts/nginx.CRT; ssl_certificate_key/etc/nginx/ssl-serts/nginx.kunci; server_name weareTecmint.com; root/var/www/html/wearetecmint.com/public_html; Indeks indeks.html; lokasi / try_files $ uri $ uri / = 404;  

Sekarang mulakan semula nginx dan arahkan penyemak imbas anda ke alamat berikut.

https: // www.wearetecmint.com 
Semak laman web Nginx SSL

Sekiranya anda ingin membeli sijil SSL dari CA, anda perlu menghasilkan permintaan menandatangani sijil (CSR) seperti yang ditunjukkan.

$ sudo openssl req -newkey rsa: 2048 -nodes -keyout/etc/nginx/ssl -certs/contoh.com.Kunci -out/etc/nginx/ssl -certs/contoh.com.CSR 

Anda juga boleh membuat CSR dari kunci persendirian yang ada.

$ sudo openssl req -key/etc/nginx/ssl -certs/contoh.com.Kunci -OW -OUT/ETC/NGINX/SSL -CERTS/Contoh.com.CSR 

Kemudian, anda perlu menghantar CSR yang dijana kepada a Ca Untuk meminta pengeluaran sijil SSL yang ditandatangani CA. Sebaik sahaja anda menerima sijil anda dari CA, anda boleh mengkonfigurasinya seperti yang ditunjukkan di atas.

Baca juga: Panduan Terbaik untuk Mengamankan, Mengeraskan dan Meningkatkan Prestasi Pelayan Web Nginx

Ringkasan

Dalam artikel ini, kami telah menjelaskan cara memasang dan mengkonfigurasi nginx; Dilindungi Cara Menyiapkan Hosting Maya Berbasis Nama Dengan SSL untuk Mengamankan Penghantaran Data antara Pelayan Web dan Pelanggan.

Sekiranya anda mengalami kemunduran semasa proses pemasangan/konfigurasi Nginx anda atau mempunyai sebarang pertanyaan atau komen, gunakan borang maklum balas di bawah untuk sampai ke kami.