Aktifkan HTTP / 2 di Nginx pada Ubuntu 16.04

HTTP / 2 adalah versi baru protokol HTTP / 1.1 yang sudah usang dan telah diseragamkan pada tahun 1999. Banyak yang telah berubah di web sejak itu. Aplikasi kami lebih kompleks daripada sebelumnya, jadi untuk mengatasinya, perlu dilakukan perubahan dalam protokol pengangkutan yang mendasari. Perkara yang paling penting mengenai HTTP / 2 adalah menjadikan laman web anda lebih pantas untuk pengguna akhir.

Secara ringkas HTTP / 2 menambah 5 ciri utama:

  • Sambungan tunggal, berterusan
  • Pelbagai mod
  • Pemampatan tajuk
  • Keutamaan sumber
  • Lapisan pengangkutan selamat (hanya sah untuk penyemak imbas)

Menjelaskan semua ciri ini di luar ruang lingkup tutorial ini tetapi jika anda ingin menggali topik ini dengan lebih mendalam, saya boleh mengesyorkan petikan dari buku Rangkaian Penyemak Imbas Berprestasi Tinggi - petikan HTTP / 2 .

Dalam panduan ini kita akan memasang Nginx versi stabil terbaru di Ubuntu 16.04 (Xenial), menghasilkan Sijil SSL yang ditandatangani sendiri, mengaktifkan protokol HTTP / 2 di Nginx dan memasang penyemak imbas berasaskan teks elinksuntuk bertindak sebagai klien HTTP.

Pasang Nginx

Untuk memasang Nginx versi stabil terbaru, kita perlu mengeluarkan beberapa arahan:

  1. Kita perlu memuat turun kunci PGP awam Nginx yang digunakan untuk menandatangani pakej dan repositori dan menambahkannya ke dalam keyring yang digunakan oleh pengurus pakej untuk mengesahkan kesahihan pakej yang dimuat turun dari repositori.

    wget https://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key
    
  2. Padamkan kunci PGP dari sistem fail:

    rm nginx_signing.key
    
  3. Tambahkan repositori baru

    printf "deb http://nginx.org/packages/ubuntu/ xenial nginx \ndeb-src http://nginx.org/packages/ubuntu/ xenial nginx \n" >> /etc/apt/sources.list.d/nginx.list
    
  4. Kemas kini senarai pakej anda dan pasang Nginx:

    apt update && apt install nginx -y
    
  5. Untuk mengesahkan versi Nginx kita boleh menggunakan yang berikut:

    nginx -v 
    # nginx version: nginx/1.10.1
    

    Sekiranya semuanya berjalan lancar, anda akan melihat corak seperti 1.10.xpada output semasa menjalankan nginx -vperintah.

Sijil yang ditandatangani sendiri dan HTTP / 2

Walaupun spesifikasi HTTP / 2 tidak memaksa penyemak imbas untuk melaksanakan HTTP / 2 melalui TLS, semua penyemak imbas utama memutuskan untuk hanya menerapkan HTTP / 2 melalui TLS, tetapi tidak versi TLS apa pun, hanya TLS 1.2 atau lebih tinggi.

Kami akan membuat sijil yang ditandatangani sendiri untuk example.comdomain fiksyen , untuk pengeluaran anda memerlukan domain yang sah dan menggunakan CA yang dipercayai.

  1. Jana kunci peribadi:

    openssl genrsa -aes128 -out example.com.key 2048
    

    Setelah menjalankan perintah ini, anda perlu memasukkan frasa laluan 2 kali. Kerana frasa laluan mengganggu kita akan menghapusnya.

  2. Keluarkan frasa laluan dari kunci peribadi:

    openssl rsa -in example.com.key -out example.com.key
    
  3. Buat Permintaan Penandatanganan Sijil (CSR):

    openssl req -new -sha256 -key example.com.key -out cert-request.csr 
    

    Kami membuat sijil domain tunggal, jadi kami perlu menetapkan bidang nama bersamaan dengan example.comdomain

  4. Buat sijil:

    openssl x509 -req -days 365 -in cert-request.csr -signkey example.com.key -out example.com.crt
    
  5. Isi sijil dan kunci peribadi:

    mkdir -p /etc/ssl/testing/private && mkdir /etc/ssl/testing/certs
    mv example.com.key /etc/ssl/testing/private && mv example.com.crt /etc/ssl/testing/certs
    
  6. Buat direktori hos maya nginx

    mkdir /etc/nginx/sites-available && mkdir /etc/nginx/sites-enabled
    
  7. Kemudian jalankan nano /etc/nginx/nginx.confdan cari arahan include /etc/nginx/conf.d/*.conf;. Di bawah arahan ini tambahkan include /etc/nginx/sites-enabled/*;Save ( CTRL + O ) dan kemudian berhenti ( CTRL + X ).

    ##
    # Virtual Hosts
    ##
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    
  8. Buat fail yang disebut example.com.confdalam /etc/nginx/sites-availabledirektori dengan perintah ini nano /etc/nginx/sites-available/example.com.confdan salin / tampal kod berikut:

    server {
        listen 80;
        listen [::]:80;
        server_name example.com;
        return 301 https://$host$request_uri;
    }
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name example.com;
        root /var/www/html;
        index index.nginx-debian.html;
    
        ssl_certificate /etc/ssl/testing/certs/example.com.crt;
        ssl_certificate_key /etc/ssl/testing/private/example.com.key;
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
        ssl_prefer_server_ciphers on;
    }
    

    Tahniah, anda kini mempunyai pelayan web yang didayakan HTTP / 2 . Menambah http2parameter ke listenarahan di dalam hos maya HTTPS akan memberi anda sokongan HTTP / 2 .

  9. Buat pautan simbolik untuk /etc/nginx/sites-available/example.com.confdengan arahan ini:

    ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled
    
  10. Sintaks konfigurasi ujian

    nginx -t
    
  11. Mulakan semula Nginx untuk menerapkan perubahan anda:

    systemctl restart nginx
    
  12. Tambahkan example.comdomain ke /etc/hostsfail

    echo '127.0.0.1    example.com' >> /etc/hosts
    

Untuk menguji hos maya anda, kami memerlukan penyemak imbas berasaskan teks - elinks.

  1. Untuk memasang elinks gunakan arahan berikut:

    apt install elinks
    
  2. Untuk menguji example.comjalannya hos maya anda :

    elinks https://example.com
    
  3. Untuk keluar dari penyemak imbas elinks tekan q pada papan kekunci anda dan kemudian Enter .

Uji HTTP / 2

Untuk melihat protokol apa yang diiklankan oleh pelayan, kaedah termudah adalah menggunakan openssltoolkit.

    openssl s_client -connect example.com:443 -nextprotoneg ''

Dalam output arahan ini, anda akan melihat sesuatu seperti ini:

    CONNECTED(00000003)
    Protocols advertised by server: h2, http/1.1      

Untuk melihat HTTP / 2 beraksi, anda boleh menggunakan alat pembangun penyemak imbas. Protokol HTTP / 2 ditunjukkan sama ada dengan h2atau HTTP/2.0pengecam. Buka panel rangkaian dalam alat dev dan muat semula halaman anda.

Kesimpulannya

Sekarang anda harus menyedari betapa "mudahnya" untuk mengaktifkan HTTP / 2 dalam konfigurasi Nginx, tetapi itu bukan keseluruhan gambaran keseluruhan. Mula-mula anda harus memikirkan untuk mengaktifkan TLS / SSL di pelayan anda dengan suite cipher yang kuat dan pastikan anda tidak menggunakan cipher senarai hitam . Hanya setelah mengaktifkan TLS / SSL yang kuat di pelayan anda, anda boleh mula memikirkan untuk mengaktifkan HTTP / 2 .



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut