Saya mengerti bahwa, mungkin, Apache saat ini bukan pilihan yang disukai untuk meluncurkan proyek-proyek baru di atasnya, namun, itu ada, hidup dan proyek-proyek bekerja di sana. Pilihan untuknya mungkin jatuh pada preferensi pribadi, untuk persyaratan kompatibilitas, atau untuk beberapa alasan lain ... bukan itu intinya. Pada artikel ini saya ingin menjelaskan langkah demi langkah cara mengkonfigurasi dukungan untuk protokol HTTP / 2 pada server web Apache, karena saya menggunakannya sendiri dan
membutuhkannya dalam artikel seperti itu, dan saya berharap itu akan bermanfaat bagi seseorang dalam praktiknya juga.
Apa itu HTTP / 2? Seperti namanya, ini adalah versi kedua dari protokol HTTP. Anda dapat membaca lebih lanjut tentang manfaat setidaknya di
Wikipedia . Atas nama saya sendiri, saya hanya akan mengatakan bahwa jika Anda tidak meng-hosting hosting bersama, maka mendukung protokol ini adalah harus dimiliki, serta, misalnya, HTTPS. Ya, agar HTTP / 2 berfungsi untuk Anda, Anda akan memerlukan akses penuh ke konsol mesin (walaupun virtual) melalui ssh atau dengan cara lain, serta HTTPS (TLS / SSL) yang sudah dikonfigurasi. Baiklah, mari kita mulai bisnis.
Langkah pertama. Pembaruan Apache
Protokol HTTP / 2 didukung oleh server Apache dari versi 2.4.24, jadi jika Anda memiliki versi yang lebih lama diinstal, saatnya untuk memperbaruinya. Tapi pertama-tama, periksa:
apache -v
Perintah ini akan menghasilkan sesuatu seperti ini:
Server version: Apache/2.4.37 (Ubuntu) Server built: 2018-10-28T15:27:08
Baris pertama menunjukkan versi server. Jika lebih besar atau sama dengan 2.4.24, kita dapat melanjutkan ke langkah kedua dengan aman. Jika tidak, Anda perlu memperbarui Apache, versi saat ini yang dapat Anda temukan di PPA pengembang terkenal (jika Anda harus meletakkan sesuatu yang baru di Debian / Ubuntu) - Ondลej Surรฝ. PPA adalah paket pribadi yang tidak termasuk dalam repositori distribusi resmi. Oleh karena itu, untuk menggunakannya, Anda harus terlebih dahulu mengajarkan sistem apa dan di mana mendapatkannya:
sudo add-apt-repository ppa:ondrej/apache2
Pria itu melakukan pekerjaan dengan baik, dan tidak keberatan mendapatkan donat kecil, yang sangat jelas dinyatakan saat menghubungkan ke lobaknya ...
Selanjutnya, pada kenyataannya, kami memperbarui paket:
sudo apt update sudo apt upgrade
Dan lagi kita periksa versi Apache. Jika semuanya berjalan dengan baik, Apache akan diinstal di server Anda, di mana Anda dapat mengkonfigurasi HTTP / 2. Jika semuanya salah - saya khawatir ini bukan topik artikel ini. Sekarang lanjutkan ke langkah kedua.
Langkah Dua Menggunakan FastCGI
Apa itu FastCGI - lebih baik membaca, seperti yang saya katakan, setidaknya di
Wikipedia , karena Anda tidak dapat memberi tahu kami secara singkat. Anda perlu beralih ke PHP yang berjalan dalam mode FastCGI (php-fpm). Cara kerjanya - jawaban yang bagus diberikan pada
Pemanggang Roti . Di sini saya tidak akan masuk ke nuansa seperti itu, tetapi saya akan segera melanjutkan ke instalasi:
sudo apt install php-fpm
Setelah instalasi, kita akan diberitahu hal-hal berikut: untuk mengaktifkan PHP 7.2 FPM di Apache2, lakukan:
sudo a2enmod proxy_fcgi setenvif sudo a2enconf php7.2-fpm
Kami melakukannya. Setelah itu Anda perlu menonaktifkan mod_php, karena alih-alih sekarang Anda memiliki php-fpm.
sudo a2dismod php7.2
Secara umum, Anda mungkin memiliki versi PHP yang berbeda sebelum itu. Anda dapat melihat modul yang telah Anda instal dalam sistem di direktori
/ etc / apache2 / mods-available / , dan yang aktif di
/ etc / apache2 / mods-enabledSelanjutnya, restart Apache
sudo service apache2 restart
dan lanjutkan ke langkah ketiga.
Langkah Tiga Beralih dari Prefork ke Acara
Apa itu MPM dan apa perbedaan antara prefork, event, pekerja - Anda dapat membaca di sini di artikel yang luar biasa ini ... tapi sekarang sangat penting untuk mengetahui hanya satu hal: prefork "standar"
tidak terlalu kompatibel dengan HTTP / 2, jadi Anda perlu menggunakan yang lebih cocok . Matikan satu, nyalakan yang lain, restart Apache.
sudo a2dismod mpm_prefork sudo a2enmod mpm_event service apache2 restart
Langkah keempat. Aktifkan HTTP / 2
Baik di file konfigurasi host, yang dapat ditemukan di direktori
/ etc / apache2 / sites-enabled / , atau dalam konfigurasi server
/etc/apache2/apache2.conf itu sendiri,
kami mengatakan bahwa kami memerlukan dukungan untuk protokol baru:
Protocols h2 h2c http/1.1
Yang penting adalah
h2 . Dua poin lain ada pada kebijaksanaan Anda.
h2c adalah dukungan HTTP / 2 melalui TCP (bukan TLS).
http / 1.1 - dukungan untuk versi HTTP yang lama.
Nyalakan modul http2 dan restart server:
sudo a2enmod http2 service apache2 restart
Telah tiba
Mulai sekarang. Sumber daya Anda harus mulai bekerja melalui HTTP / 2. Jika Anda menggunakan Chrome dengan membuka sumber daya, Anda akan melihat bagaimana baut kilat di sudut kanan atas browser menyala biru. Ketika melayang di atasnya, Anda akan melihat prompt HTTP / 2-enabled (h2). Di Firefox, buka panel pengembang dan pada tab Jaringan, aktifkan kolom Protokol - untuk sumber daya dari situs Anda, HTTP / 2.0 harus terdaftar. Anda juga dapat memeriksa apakah sumber daya Anda mendukung protokol ini di
salah satu dari banyak situs di Web. Tapi jangan santai, karena
HTTP / 3 sudah siap :)