Cara Membolehkan Http/2 di Apache di Ubuntu

Cara Membolehkan Http/2 di Apache di Ubuntu

Sejak penubuhannya Web Web Web Web (www), The Http Protokol telah berkembang selama bertahun -tahun untuk memberikan kandungan digital yang selamat dan cepat melalui Internet.

Versi yang paling banyak digunakan adalah Http 1.1 Dan sementara ia dibungkus dengan peningkatan ciri dan pengoptimuman prestasi untuk menangani kekurangan versi terdahulu, ia kurang dari beberapa ciri penting lain yang telah ditangani oleh Http/2.

Apakah batasan http/1.1?

The Http/1.1 Protokol penuh dengan kekurangan berikut yang menjadikannya kurang sesuai terutamanya ketika menjalankan pelayan web trafik tinggi:

  1. Kelewatan dalam memuatkan laman web kerana tajuk HTTP yang panjang.
  2. Http/1.1 hanya dapat menghantar satu permintaan untuk setiap fail setiap sambungan TCP.
  3. Memandangkan http/1.1 memproses satu permintaan untuk setiap sambungan TCP, penyemak imbas terpaksa menghantar banjir sambungan TCP selari untuk memproses permintaan secara serentak. Ini membawa kepada kesesakan TCP dan akhirnya pembaziran jalur lebar dan kemerosotan rangkaian.

Masalah yang disebutkan di atas sering menyebabkan kemusnahan prestasi dan kos overhead yang tinggi dalam penggunaan jalur lebar. Http/2 masuk ke dalam gambar untuk menangani masalah ini dan kini menjadi masa depan untuk protokol HTTP.

Kelebihan menggunakan HTTP/2

Ia menawarkan kelebihan berikut:

  1. Pemampatan header yang meminimumkan permintaan pelanggan dan dengan itu menurunkan penggunaan jalur lebar. Kesan yang dihasilkan adalah kelajuan beban halaman pantas.
  2. Multiplexing beberapa permintaan melalui satu sambungan TCP. Kedua -dua pelayan dan pelanggan boleh memecahkan permintaan HTTP ke dalam pelbagai bingkai dan mengumpulkan semula mereka di hujung yang lain.
  3. Persembahan web lebih cepat yang seterusnya membawa kepada kedudukan SEO yang lebih baik.
  4. Keselamatan yang lebih baik kerana kebanyakan pelayar arus perdana memuat http/2 ke atas HTTPS.
  5. Http/2 dianggap lebih mesra mudah alih terima kasih kepada ciri mampatan header.

Yang berkata, kita akan membolehkan Http/2 pada Apache pada Ubuntu 20.04 LTS dan Ubuntu 18.04 LTS.

Prasyarat:

Sebelum memulakan, pastikan anda membolehkan Https di webserver Apache sebelum membolehkan Http/2. Ini kerana semua penyemak imbas arus perdana menyokong Http/2 berakhir Https. Saya mempunyai nama domain yang menunjuk pada suatu contoh Ubuntu 20.04 yang menjalankan pelayan Apache yang dijamin menggunakan sijil menyulitkan.

Juga, disarankan anda ada Apache 2.4.26 dan kemudian versi untuk pelayan pengeluaran yang berhasrat untuk membuat peralihan ke Http/2.

Untuk memeriksa versi Apache Anda berlari, laksanakan arahan:

$ apache2 -v 
Semak versi Apache di Ubuntu

Dari output, anda dapat melihat bahawa kami menggunakan versi terkini, iaitu Apache 2.4.41 Pada masa pening turun artikel ini.

Dayakan http/2 pada tuan rumah maya Apache

Untuk bermula, pertama mengesahkan bahawa webserver sedang berjalan Http/1.1. Anda boleh melakukan ini pada penyemak imbas dengan membuka bahagian Alat Pemaju di Google Chrome menggunakan Ctrl + shift + i gabungan. Klik pada 'Rangkaian'Tab dan cari'Protokol' kolum.

Sahkan versi protokol HTTP

Seterusnya, aktifkan Http/2 modul dihidupkan Ubuntu dengan menjalankan arahan berikut.

$ sudo a2enmod http2 
Dayakan http/2 di Ubuntu

Seterusnya, cari dan edit anda SSL fail hos maya, jika anda telah mengaktifkan https menggunakan Mari enkripsi, fail baru dibuat dengan a le-ssl.Conf akhiran.

$ sudo vim/etc/apache2/enabled sites/your-domain-name-le-ssl.Conf 

Masukkan arahan di bawah selepas tag.

Protokol H2 HTTP/1.1 
Dayakan http/2 di Apache

Untuk menyimpan perubahan, mulakan semula webserver Apache.

$ sudo Systemctl mulakan semula apache2 

Untuk memeriksa jika Http/2 diaktifkan, ambil tajuk HTTP menggunakan perintah curl berikut sebagai pertunjukan.

$ curl -i - -http2 -s https: // domain.com/ | GREP HTTP 
Semak Sokongan HTTP/2 di Apache

Anda harus mendapatkan output yang ditunjukkan.

Http/2 200 

Di penyemak imbas, muat semula laman web anda. Kemudian kembali ke alat pemaju dan sahkan http/2 yang dilambangkan oleh H2 label pada 'Protokol' kolum.

Sahkan versi protokol http/2

Semasa menggunakan modul mod_php dengan Apache

Sekiranya anda berlari Apache di samping mod_php modul, anda perlu beralih ke PHP-FPM. Ini kerana mod_php modul menggunakan prefork Mpm modul yang tidak disokong oleh Http/2. Anda perlu menyahpasang prefork Mpm dan beralih ke mpm_event modul yang akan disokong oleh Http/2.

Sekiranya anda menggunakan Php 7.4 mod_php Modul, sebagai contoh, melumpuhkannya seperti yang ditunjukkan:

$ sudo a2dismod php7.4 
Lumpuhkan Modul Mod_PHP

Selepas itu, lumpuhkan prefork Mpm modul.

$ sudo a2dismod mpm_prefork 
Lumpuhkan MPM Prefork di Apache

Setelah melumpuhkan modul, seterusnya, membolehkan MPM Acara, Fast_cgi, dan Setenvif modul seperti yang ditunjukkan.

$ sudo a2enmod mpm_event proxy_fcgi setenvif 
Dayakan MPM Acara di Apache

Pasang PHP-FPM di Ubuntu

Seterusnya, pasang dan mulakan PHP-FPM seperti yang ditunjukkan.

$ sudo apt memasang php7.4-fpm $ sudo Systemctl Mula Php7.4-fpm 

Kemudian aktifkan PHP-FPM Untuk bermula pada masa boot.

$ sudo systemctl enable php7.4-fpm 

Seterusnya, aktifkan PHP-FPM Sebagai pengendali php Apache dan mulakan semula webserver Apache untuk perubahan yang akan dilaksanakan.

$ sudo a2enconf php7.4-fpm 

Dayakan sokongan http/2 di Apache Ubuntu

Kemudian aktifkan modul http/2 seperti sebelumnya.

$ sudo a2enmod http2 

Mulakan semula Apache untuk menyegerakkan semua perubahan.

$ sudo Systemctl mulakan semula apache2 

Akhirnya, anda boleh menguji jika pelayan anda menggunakan Http/2 protokol menggunakan perintah curl seperti yang ditunjukkan.

$ curl -i - -http2 -s https: // domain.com/ | GREP HTTP 
Semak protokol http/2 di Apache

Anda juga boleh memilih untuk menggunakan alat pemaju di Google Chrome penyemak imbas untuk mengesahkan seperti yang didokumentasikan sebelumnya. Kami perlu mengakhiri panduan ini, kami harap anda dapati maklumat yang berharga dan anda dapat dengan selesa membolehkan Http/2 pada Apache dengan mudah.