GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur Nginx dengan Dukungan HTTP/2 di Ubuntu 18.04

Nginx adalah server web sumber terbuka yang kuat, cepat, andal, dan dinamis yang populer untuk melayani situs dengan lalu lintas tinggi. Selain itu, ia terkenal karena kemudahan konfigurasi, skalabilitas tinggi, dan dukungan untuk berbagai protokol.
Di antara protokol yang didukung oleh Nginx adalah protokol HTTP/2 baru yang keunggulan utamanya dibandingkan pendahulunya HTTP 1.1 adalah kecepatan transfer tinggi yang diperlukan untuk situs web kaya konten.

Dalam panduan ini, kita akan mempelajari instalasi dan pengaturan server Nginx yang aman dengan Dukungan HTTP/2:

Prasyarat

Untuk memulai, mari kita periksa penerbangan dan lihat apakah kita memiliki yang berikut

  • Instance server Ubuntu 18.04 LTS
  • Nginx versi 1.9.5 atau lebih tinggi (Untuk memverifikasi versi Nginx, jalankan nginx -v ), baca Instal Nginx di Ubuntu 18.04.
  • OpenSSL versi 1.0.2 atau lebih tinggi (Periksa versi menggunakan versi openssl)
  • Pengguna non-root biasa dengan hak istimewa sudo
  • Nama Domain yang Penuh Kualifikasi (FQDN) Dalam hal ini, kita akan menggunakan crazytechgeek.info dibeli dari GoDaddy.

    Catatan A nama domain harus mengarah ke alamat IP server. crazytechgeek.info telah diarahkan ke 216.200.116.207.

  • Sertifikat SSL (Sertifikat yang ditandatangani sendiri atau dari Let's encrypt SSL. Demikian pula, Anda dapat membeli satu dari penyedia yang berbeda.

Langkah 1 – Mengaktifkan Dukungan HTTP /2.0

Untuk memulai, diasumsikan bahwa Anda telah mengonfigurasi blok server Nginx di

/etc/nginx/sites-available/your_domain

Dalam kasus kami, blok server adalah /etc/nginx/sites-available/crazytechgeek.info .

Menggunakan editor teks favorit Anda, buka file blok server dan temukan listen direktif seperti yang ditunjukkan

Arahan pertama menunjukkan koneksi IPv6 sedangkan yang kedua adalah untuk koneksi IPv4

Sekarang, kita akan memodifikasi setiap direktif untuk menyertakan http2 bendera seperti yang ditunjukkan

Ini akan menginstruksikan Nginx untuk menggunakan HTTP/2 pada browser yang didukung

Simpan file konfigurasi dan keluar dari editor Anda.

Selanjutnya, buka /etc/nginx/sites-available/default file dan buat perubahan yang sama

Simpan dan keluar dari editor teks.

Hanya untuk memastikan bahwa tidak ada kesalahan sintaks di salah satu file Nginx, jalankan perintah di bawah ini

$ sudo nginx -t

Keluaran

Langkah 2 – Membersihkan Cipher Lama dan Tidak Aman

Agar HTTP/2 berfungsi seperti yang diharapkan, kita harus menghindari penggunaan sandi lama dan tidak aman yang telah masuk dalam daftar hitam HTTP/2. Rangkaian sandi adalah algoritme kriptografi yang menentukan bagaimana lalu lintas akan dienkripsi.

Jika certbot digunakan untuk mendapatkan sertifikat, maka sandi di jalur /etc/letsencrypt/options-ssl-nginx.conf tidak cukup aman untuk HTTP/2. Namun, modifikasi file ini hanya akan menyebabkan kesalahan dan mencegah certbot menerapkan pembaruan. Ini berarti kita harus menentukan daftar sandi dan menginstruksikan Nginx untuk mengabaikan file

Buka file konfigurasi untuk blok server domain Nginx Anda

$ vim /etc/nginx/sites-available/crazytechgeek.info

Komen baris ini

# include /etc/letsencrypt/options-ssl-nginx.conf;

Di bawah baris itu, tambahkan baris di bawah ini untuk menentukan sandi yang diizinkan

ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

Simpan file dan keluar dari editor teks

Jika sertifikat yang ditetapkan sendiri digunakan, atau sertifikat pihak ketiga, maka buka file

/etc/nginx/snippets/ssl-params.conf 
$ sudo vim /etc/nginx/snippets/ssl-params.conf

Cari baris seperti yang ditunjukkan di bawah ini

...
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
...

Ubah file sesuai seperti yang ditunjukkan di bawah ini


...
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

Terakhir simpan dan keluar dari file konfigurasi

Sekali lagi periksa apakah ada kesalahan konfigurasi Nginx

$ sudo nginx -t

Jika semuanya berjalan dengan baik, Anda akan melihat output di bawah ini seperti yang ditunjukkan sebelumnya

Mulai ulang Nginx

$ sudo systemctl reload nginx

Pada langkah selanjutnya, kita akan menguji apakah server kita dapat meng-server halaman HTTP/2

Langkah 3 – Menguji Jika HTTP/2 diaktifkan

Sekarang mari kita uji apakah HTTP berjalan dan diaktifkan di server web Nginx kami
Di terminal Anda, jalankan perintah di bawah ini

curl -I -L https://your_domain

Dalam kasus kami, itu akan menjadi

curl -I -L https://crazytechgeek.info

Keluaran

Atau, Anda dapat memverifikasi HTTP/2 dengan membuka alat pengembang Google dengan menekan

Ctrl + Shift + I 

Selanjutnya, klik Network Tab.

Dalam Protocol kolom, pastikan untuk menemukan label h2

Langkah 4 – Menerapkan Keamanan Transportasi Ketat HTTP

Terakhir, meskipun kami tahu dengan sangat jelas bahwa server kami dapat mengalihkan permintaan HTTP ke HTTPS, kami ingin mengaktifkan HSTS HTTP Strict Transport Security untuk menghilangkan pengalihan tersebut. Jika browser kebetulan menemukan header HSTS, browser tidak akan mencoba menyambung ke server lagi untuk jangka waktu tertentu. TI hanya akan bertukar data melalui protokol HTTPS yang aman dan terenkripsi.

Untuk mencapai ini, Buka file konfigurasi Nginx

$ vim /etc/nginx/nginx.conf

Tambahkan baris di bawah

add_header Strict-Transport-Security "max-age=15768000" always;

max-age disetel dalam hitungan detik

Jika situs Anda memiliki subdomain, dan Anda ingin menerapkan HSTS ke semuanya, tambahkan includeSubDomains bendera di akhir baris

add_header Strict-Transport-Security "max-age=15768000; includeSubDomains" always;

Simpan dan keluar dari file konfigurasi.

Seperti biasa, periksa apakah ada kesalahan

$ sudo nginx -t


Akhirnya, mulai ulang Nginx

$ sudo systemctl restart nginx

Kesimpulan

Pada titik ini, server Nginx Anda sekarang melayani halaman HTTP/2.
Anda juga dapat mengunjungi https://tools.keycdn.com/http2-test untuk menguji status HTTP/2 situs Anda seperti yang ditunjukkan

Atau, Anda juga dapat mengunjungi situs ini

https://http2.pro/

Untuk hasil yang lebih detail, gunakan

https://www.ssllabs.com/ssltest/


Linux
  1. Cara Menginstal HTTP Git Server Dengan Nginx di Ubuntu 16.04

  2. Cara Menginstal HTTP Git Server dengan Nginx di Ubuntu 20.04

  3. Cara Mengatur Nginx sebagai Proxy Terbalik di Ubuntu 20.04

  1. Cara Mengatur Blok Server Nginx di Ubuntu 20.04

  2. Cara Mengatur Apache dengan HTTP/2 di Ubuntu 16.04

  3. Cara Mengatur Nginx dengan Dukungan HTTP/2 di Debian 9

  1. Cara Mengaktifkan HTTP/2 di Nginx

  2. Cara Menginstal HTTP Git Server dengan Nginx di Ubuntu 18.04 LTS

  3. Cara Mengonfigurasi HTTP/2 di Nginx di Ubuntu 20.04