Cara Menyiapkan Pelayan Web Nginx di Ubuntu 18.04 Bionic Beaver Linux

Cara Menyiapkan Pelayan Web Nginx di Ubuntu 18.04 Bionic Beaver Linux

Objektif

Ketahui cara memasang dan mengkonfigurasi pelayan web nginx di Ubuntu 18.04 Bionic Beaver

Keperluan

  • Keizinan akar

Konvensyen

  • # - Memerlukan arahan Linux yang diberikan dengan keistimewaan akar sama ada
    secara langsung sebagai pengguna akar atau dengan menggunakan sudo perintah
  • $ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Versi lain dalam tutorial ini

Ubuntu 20.04 (Focal Fossa)

Pengenalan

Pelayan Web Nginx, bersama -sama dengan Apache, adalah salah satu pelayan web yang paling terkenal dan digunakan di dunia. Secara amnya kurang sumber sumber daripada Apache, dan juga boleh digunakan sebagai proksi terbalik.

Dalam tutorial ini, kita akan melihat cara memasang dan mengkonfigurasi pelayan web nginx di Ubuntu 18.04 Bionic Beaver.

Langkah 1 - Pemasangan

Memasang Nginx di Ubuntu 18.04 sangat mudah, kita hanya perlu menggunakan apt-get:

$ sudo apt-get update & & sudo apt-get install nginx

Perintah pertama menyegerakkan mesin kami dengan repositori Ubuntu, sementara yang kedua sebenarnya memasang pakej nginx. Beberapa saat dan pelayan akan dipasang pada sistem kami. Skrip pemasangan juga akan menjaga perkhidmatan nginx.

Kami dapat dengan mudah mengesahkan bahawa perkhidmatan sedang berjalan menggunakan arahan Linux berikut:

$ sudo systemctl adalah nginx aktif

Perintah di atas akan kembali aktif Sekiranya perkhidmatan itu selesai: sememangnya, jika kita menunjuk penyemak imbas ke alamat pelayan, atau ke localhost Jika kita beroperasi dari mesin itu sendiri, kita harus memvisualisasikan halaman Selamat Datang Nginx:

Halaman Selamat Datang Nginx

Langkah 2 - Persediaan Firewall

Untuk menjadikan pelayan kami dapat melayani halaman ke mesin lain, kami mesti menyediakan firewall untuk membolehkan trafik masuk melalui pelabuhan 80 (lalai), dan port 443 Sekiranya kita mahu menggunakan https Protokol. Perintah yang tepat untuk dijalankan untuk mencapai itu, bergantung kepada pengurus firewall yang digunakan pada mesin, tetapi di sini saya akan menganggap ufw sedang berjalan, kerana ia adalah lalai di Ubuntu.

Pertama, kami mengesahkan bahawa firewall aktif:

status $ sudo ufw

Sekiranya bukan anda boleh mengaktifkannya dengan melaksanakan arahan Linux berikut:

$ sudo ufw membolehkan

Walau bagaimanapun berhati -hati apabila, kerana sebagai sistem akan memberitahu anda, mengaktifkan firewall boleh memusnahkan sambungan yang ada sekarang. Untuk membenarkan sambungan masuk melalui port 80, kita harus menjalankan:

$ sudo ufw membenarkan 80/tcp

Untuk membenarkan port 443, sebaliknya:

$ sudo ufw membenarkan 443/tcp

Akhirnya, untuk memvisualisasikan status semasa firewall, kita boleh menjalankan:

$ SUDO UFW Status Nombor Status: Aktif ke Tindakan dari------- ---- [1] 443/TCP Benarkan di mana-mana [2] 80/TCP Benarkan di mana-mana [3] 443/TCP (V6) Benarkan di mana sahaja (V6) [4] 80/TCP (V6) Benarkan di mana -mana sahaja (V6) 

Seperti yang anda lihat, arahan di atas akan memberi kami gambaran keseluruhan peraturan yang dikonfigurasikan, diindeks oleh nombor.

Blok pelayan nginx (tuan rumah maya)

Blok pelayan nginx, bersamaan dengan Apache Virtualhosts, dan digunakan untuk menjalankan lebih dari satu tapak pada mesin pelayan yang sama. Pada pemasangan standard nginx, kita dapat mencari lalai blok pelayan adalah /etc/nginx/laman web yang tersedia/lalai. Mari kita melihatnya:

# Konfigurasi pelayan lalai # Server Dengar 80 default_server; Dengar [::]: 80 default_server; [… .] root/var/www/html; # Tambah indeks.PHP ke senarai jika anda menggunakan Indeks Indeks PHP.Indeks HTML.Indeks HTM.nginx-debian.html; nama pelayan _; Lokasi /  # Percubaan Pertama untuk Melayani Permintaan sebagai Fail, Kemudian # sebagai direktori, kemudian kembali untuk memaparkan 404. try_files $ uri $ uri/ = 404;  [.. .] 
Salinan

Yang di atas adalah versi yang diperkemas (saya hanya mengeluarkan komen) dari blok pelayan nginx lalai di Ubuntu 18.04. Seperti yang anda lihat, setiap arahan berakhir dengan titik koma. Perkara pertama yang kita lihat di dalam Pelayan seksyen, pada baris 4-5, adalah Dengarkan arahan. Yang pertama adalah untuk IPv4 sementara yang kedua untuk IPv6. Sebenarnya ini dapat dipendekkan sebagai Dengar [::]: 80 ipv6only = off.

The default_server Arahan menetapkan blok pelayan ini sebagai lalai, yang bermaksud bahawa ia akan digunakan jika tidak ada konfigurasi lain yang sesuai dengan nama yang diminta. Arahan ini hanya boleh digunakan pada satu blok pelayan pada satu masa.

The akar Arahan pada baris 8 menetapkan jalan ke direktori root untuk tapak yang akan disampaikan oleh blok: pada dasarnya bersamaan dengan Apache Documentroot.

The indeks Arahan pada baris 11 mentakrifkan fail yang boleh digunakan sebagai indeks. Fail akan diperiksa mengikut urutan.

Pada baris 13, nama pelayan Arahan digunakan untuk menentukan nama pelayan yang akan diberikan kepada konfigurasi, dan menentukan blok pelayan yang akan mengendalikan permintaan tersebut. Apabila menentukan nama pelayan, ada kemungkinan menggunakan kad liar dan ekspresi biasa. Dalam kes ini, nilai yang diberikan adalah _: Ini digunakan kerana nilai yang tidak sah, dan tidak akan sepadan dengan nama hos sebenar (ingat bahawa konfigurasi ini adalah tangkapan).

Akhirnya, kami mempunyai Lokasi Arahan pada baris 15: Ia mengubah cara permintaan ditangani di dalam blok pelayan. Dalam kes ini, jalan yang akan dipadankan untuk arahan yang berlaku, adalah /. Bahagian URI yang akan dipadankan adalah yang selepas segmen tuan rumah.

Di dalam lokasi "stanza", pada baris 18 kita dapat melihat arahan lain, cuba_files: ia memeriksa kewujudan fail dalam urutan yang ditentukan, menggunakan yang pertama ditemui untuk memenuhi permintaan tersebut. Dalam kes ini, seperti yang dicadangkan dari komen di bahagian ini, pertama kali cuba memadankan fail, daripada direktori. Sekiranya tiada yang memenuhi permintaan, halaman 404 akan dipaparkan kepada pengguna. Perhatikan bahawa permintaan itu diwakili sebagai $ uri pemboleh ubah, dan apa yang mentakrifkannya sebagai direktori adalah slash trailing.



Menentukan blok pelayan tersuai

Sekarang kita harus membuat blok pelayan tersuai untuk melayani laman web HTML. Sebagai perkara pertama, kami akan membuat direktori yang akan berfungsi sebagai akar dokumen untuk blok, mari kita panggil contohnya:

$ sudo mkdir/var/www/contoh

Kita juga perlu membuat indeks.Halaman HTML akan dipaparkan apabila kami sampai ke laman web:

$ echo "selamat datang ke contoh!"| sudo tee/var/www/contoh/indeks.html> /dev /null

Setelah selesai, kita boleh membuat blok pelayan di /etc/nginx/tapak yang tersedia Direktori, untuk konsistensi, kita akan menamakannya "contoh":

pelayan mendengar 80; root/var/www/contoh; Indeks indeks.html; server_name www.Contoh.LAN;  
Salinan

Untuk menguji bahawa konfigurasi kami betul dan tidak mengandungi sebarang ralat sintaks, kami boleh menjalankan arahan Linux berikut:

$ sudo nginx -t

Sekarang, kerana kami tidak mempunyai pelayan DNS di tempat, untuk menghantar permintaan ke pelayan kami dengan nama yang ditentukan, kami mesti menambah entri di /etc/hos fail mesin pelanggan. Dalam kes ini, alamat mesin yang saya gunakan sebagai pelayan (dalam persekitaran tuan rumah maya) adalah 192.168.122.89, Oleh itu:

# Fail pelanggan /etc /host [.. .] 192.168.122.89 www.Contoh.lan 
Salinan

Sebelum kita mengaktifkan blok pelayan baru kami, kami mempunyai peluang untuk mengesahkan bahawa konfigurasi lalai memang berfungsi sebagai penangkapan lalai. Sekiranya kita sekarang menavigasi ke "www.Contoh.LAN "dari mesin klien di mana kami baru sahaja menambah entri tuan rumah, kami dapat melihat bahawa pelayan akan memberi respons kepada permintaan kami dengan halaman nginx lalai (kerana blok baru belum diaktifkan).

Untuk mengaktifkan blok pelayan kami, kami mesti membuat symlink dari konfigurasi yang kami tulis /etc/nginx/tapak yang tersedia ke /etc/nginx/enabled tapak:

$ sudo ln -s/etc/nginx/sites-tersedia/contoh/etc/nginx/enabled sites

Selepas itu, kita perlu memulakan semula Nginx:

$ sudo systemctl mulakan semula nginx

Pada ketika ini, jika kita menavigasi ke "www.Contoh.Lan ", kita harus melihat halaman kita yang tidak begitu rumit:

Contoh halaman lalai

Menggunakan SSL

Untuk menggunakan SSL, kami pada dasarnya mempunyai dua pilihan: mendapatkan sijil dari pihak berkuasa sijil, atau menggunakan sijil yang ditandatangani sendiri. Dalam contoh pertama kami, kami akan menghasilkan sijil sendiri. Jalankan arahan Linux berikut untuk meneruskan:

$ sudo openssl req -x509 \ -days 365 \ -sha256 \ -newkey rsa: 2048 \ -nodes \ -keyout/etc/ssl/swasta/contoh.Kunci \ -out/etc/ssl/certs/contoh -cert.PEM 
Salinan

Dengan arahan ini, kami menjana sijil yang ditandatangani sendiri selama 365 hari, dan kunci RSA 2048 bit. Sijil dan kunci akan disimpan /etc/ssl/certs/contoh contoh.PEM dan /etc/ssl/swasta/contoh.kunci Fail masing -masing. Jawab sahaja soalan yang akan ditanya, memberi perhatian khusus ketika memasuki FQDN: ia mesti sepadan dengan domain yang akan menggunakan sijil untuk berfungsi dengan betul.

Anda akan diminta memasukkan maklumat yang akan dimasukkan ke dalam permintaan sijil anda. Apa yang hendak anda masukkan adalah apa yang disebut nama terkenal atau DN. Terdapat beberapa bidang tetapi anda boleh meninggalkan beberapa kosong untuk beberapa bidang akan ada nilai lalai, jika anda memasukkan '.', medan akan dibiarkan kosong. ----- Nama Negara (2 Kod Surat) [AU]: Nama Negeri atau Provinsi (Nama Penuh) [Some-State]: Nama Lokasi (misalnya, City) []: Nama Organisasi Milan (misalnya, Syarikat) [Internet Widgits Pty Ltd] : Kerosakan inc. Nama Unit Organisasi (misalnya, Seksyen) []: Nama Biasa (e.g. pelayan fqdn atau nama anda) []: www.Contoh.Alamat e -mel LAN []: 

Sekarang kita mempunyai sijil dan kunci kami, kami mesti mengubah suai konfigurasi blok pelayan kami, supaya ia menjadi:

Server Dengar 443 SSL; server_name www.Contoh.LAN; ssl_certificate/etc/ssl/certs/contohnya.PEM; ssl_certificate_key/etc/ssl/swasta/contoh.kunci; root/var/www/contoh; Indeks indeks.html;  
Salinan

Seperti yang anda lihat, kami mengubahsuai Dengarkan Arahan di baris 2, menggunakan port 443 dan juga membolehkan SSL Parameter, kemudian kami menambah dua arahan baru, pada baris 4-5: ssl_certificate dan ssl_certificate_key, yang masing -masing menunjuk ke sijil dan lokasi utama sijil.

Setelah memulakan semula perkhidmatan nginx, jika kita sekarang menavigasi https: // www.Contoh.lan Kita harus melihat amaran yang dikeluarkan oleh penyemak imbas, kerana fakta bahawa sijil ditandatangani sendiri. Walau bagaimanapun, konfigurasi kami berfungsi dan kami menggunakan sambungan yang disulitkan:

Amaran Sijil Tidak Sah

Menggunakan Let's Encrypt

Alternatif kepada sijil yang ditandatangani sendiri adalah sijil yang dikeluarkan oleh pihak ketiga yang disahkan. Walaupun kami boleh membeli sijil dari pihak berkuasa sijil, kami juga mempunyai pilihan untuk menggunakan "mari enkripsi!".

"Mari kita enkripsi" adalah pihak berkuasa sijil percuma dan terbuka yang membolehkan kita mendapatkan sijil secara automatik yang dipercayai oleh penyemak imbas menggunakan Acme protokol dan ejen pengurusan sijil yang berjalan di pelayan. Satu -satunya syarat dapat menunjukkan bahawa kita mempunyai kawalan ke atas domain yang kita mahu menggunakan sijil untuk.

Untuk menggunakan perkhidmatan ini, perkara pertama yang perlu dilakukan ialah memasang Certbot Pelanggan ACME dan plugin khusus Nginx:

$ sudo apt-get update &&p-get pemasangan certbot python-certbot-nginx

Mendapatkan sijil agak mudah:

$ sudo certbot --nginx -m -d 

Jelas untuk ini berfungsi domain mesti menunjuk dengan betul ke IP pelayan yang boleh diakses awam kami. Certbot akan mendorong kami untuk menjawab beberapa soalan untuk tweak konfigurasi tapak, dan jika semuanya berjalan lancar, sijil dan kunci akan disimpan ke dalam /etc/letsencrypt/live/ direktori. CertBot juga akan menggunakan perubahan yang diperlukan pada blok pelayan dan memuatkan semula perkhidmatan.

Kesimpulan

Kami memasang pelayan web nginx di Ubuntu 18.04, melihat bagaimana membuka port firewall yang diperlukan, memeriksa blok pelayan Ubuntu lalai dan membuat konfigurasi tersuai. Akhirnya, kami menghasilkan sijil yang ditandatangani sendiri dan melaksanakan pengubahsuaian yang diperlukan ke blok pelayan untuk menggunakan protokol HTTPS.

Sebagai alternatif yang kami anggap melaksanakan "Let's Encrypt!", Yang dapat memberi kami sijil yang diiktiraf tanpa kos. Jangan teragak -agak untuk mengemukakan sebarang pertanyaan, dan lawati dokumentasi Nginx rasmi untuk maklumat yang lebih terperinci.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Ubuntu 20.04 Trik dan Perkara yang Anda Tidak Tahu
  • Ubuntu 20.04 Panduan
  • Ubuntu 20.04 Hadoop
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • 8 persekitaran desktop Ubuntu terbaik (20.04 Focal Fossa ..
  • Senarai dan Pemasangan Pelanggan FTP di Ubuntu 20.04 Linux ..
  • Ubuntu 20.04: WordPress dengan pemasangan nginx
  • Cara Memindahkan Apache ke Nginx dengan Menukar Virtualhosts ke ..