Cara Mengaktifkan Sokongan HTTP / 2 pada DirectAdmin (CentOS)

HTTP / 2 adalah versi terbaru dari protokol HTTP, berdasarkan SPDY. Pembangunannya dimulakan oleh Google dan HTTP / 2 sebagian besar didasarkan pada pangkalan kode dan konsep SPDY.

SPDY kini sudah tidak digunakan lagi dan penggunaan HTTP / 2 di seluruh dunia sedang dijalankan. Banyak syarikat hosting telah memberikan sokongan untuk HTTP / 2 kerana kepantasannya yang bertambah.

Pada masa penulisan, DirectAdmin tidak memberikan cara satu klik untuk mengaktifkan HTTP / 2. Walau bagaimanapun, terdapat pelbagai cara untuk mendapatkan sokongan HTTP / 2. Kaedah yang digariskan di bawah telah terbukti sebagai pendekatan yang paling mantap dan stabil.

Beberapa komponen perlu dikemas kini agar HTTP / 2 dapat dilaksanakan. Oleh kerana itu, saya sangat menasihati anda untuk mengambil gambar. Sekiranya boleh, ikuti panduan ini pada pelayan yang sama sekali baru.

Panduan ini terdiri daripada dua bahagian: membolehkan sokongan HTTP / 2 di pelayan web (Apache) untuk pelanggan (pelawat) dan pengaktifan HTTP / 2 dalam cURL. Mengaktifkan HTTP v2 untuk cURL memaksa permintaan cURL yang berasal dari pelayan anda untuk menggunakan HTTP / 2 untuk pelayan tujuannya, jika mungkin.

Perkara utama

  • Tidak perlu mengemas kini Apache dan cURL untuk menggunakan HTTP / 2. Tidak apa-apa jika anda mengikuti salah satu panduan, kerana ia berfungsi secara berasingan antara satu sama lain.
  • Terdapat beberapa kes pelik di mana Apache dan HTTP / 2 nampaknya berfungsi dengan baik, tetapi pemuatan berjaya pada '' rawak '' penyemak imbas dan laman web menjadi tidak dapat dicapai (timeout) pada orang lain. Cukup kembali ke konfigurasi Apache yang asal akan memperbaikinya, kerana Apache tidak akan mengetahui tentang HTTP / 2 dan tidak berusaha untuk menayangkan kandungan di atasnya.
  • Sentiasa ambil sandaran atau buat snapshot terlebih dahulu. Mengaktifkan HTTP / 2 boleh menjadi proses yang agak rapuh jadi penting untuk dapat mengembalikan perubahan jika diperlukan.
  • Menyusun semula perisian selalu boleh menyebabkan sedikit masa henti. Dalam beberapa kes, ini kurang dari satu minit, tetapi tidak ada cara untuk memberitahu dengan tepat. Anda mesti bersedia untuk sedikit waktu rehat.
  • Anda memerlukan akses root ke pelayan untuk panduan ini. Sekiranya anda tidak mempunyai kemampuan untuk meningkatkan tahap kebenaran anda ke root, anda harus menghubungi pentadbir pelayan untuk mengaktifkan HTTP / 2 pada pelayan.

HTTP / 2 dan SSL

Walaupun bukan keperluan teknikal dari HTTP / 2 itu sendiri, dalam kebanyakan kes anda memerlukan sijil SSL untuk menggunakan HTTP / 2. Seperti disebutkan, HTTP / 2 tidak memerlukan ini secara teknikal, tetapi banyak penyemak imbas (Safari, Chrome, Firefox, dll.) Telah membuat standard ini. Kandungan tidak akan disajikan melalui HTTP / 2 ketika halaman dimuat tanpa SSL menggunakan penyemak imbas ini. Memandangkan kebanyakan pengguna menggunakan penyemak imbas ini (dan lain-lain) yang turut mengikuti standard ini, anda harus menggunakan sijil SSL.

Sekiranya anda mencari sijil SSL percuma, anda harus melihat salah satu panduan Let's Encrypt kami:

Disyorkan: Memasang Let's Encrypt pada DirectAdmin

Panel kawalan alternatif:

Panduan umum:

Soalan Lazim

Adakah panduan ini mendokumentasikan pemasangan Brotli?

Tidak, tidak ada kaedah yang digariskan untuk memasang Brotli bersama HTTP / 2 dalam artikel ini.

Penyusunan gagal tanpa sebab, dan saya telah mengikuti langkah-langkah tepat yang digariskan dalam artikel ini. Bagaimana saya menyelesaikannya?

Walaupun ada banyak kemungkinan sebab untuk ini, dengan mempertimbangkan persekitaran yang berbeza dan seumpamanya, kemungkinan, tetapan tempat anda tidak betul. Cuba letakkan LC_ALL=Cdi depan arahan anda, jadi perintah untuk mengompilasi ulang Apache akan seperti ini misalnya: LC_ALL=C ./build apache Jangan lupa ruang antara LC_ALL=Cdan perintah!

Adakah saya akan kehilangan data?

Sekiranya anda sedang menggunakan penyediaan proksi terbalik, misalnya dengan Apache dan Nginx, anda harus mengembalikannya ke Apache, sekiranya anda kehilangan fail konfigurasi Nginx anda. Sekiranya anda telah membuat konfigurasi VirtualHost tersuai (baik itu melalui baris perintah atau DirectAdmin itu sendiri), anda harus mengubahnya secara per domain sehingga versi Apache akan tetap aktif. Anda tidak akan kehilangan data berkenaan dengan data pengguna, kandungan laman web, pangkalan data, dll.

Adakah versi khusus ini akan menghentikan saya daripada mengemas kini pakej dan perisian pada masa akan datang?

Secara amnya, tidak perlu risau tentang perkara ini. Dengan mengambil kira penyediaan modular DirectAdmin (dan oleh itu CustomBuild), anda seharusnya dapat menurunkan atau menaik taraf ke versi perisian lain pada masa akan datang tanpa masalah. Walaupun Anda harus mendokumentasikan perubahan sekiranya jalan peningkatan alternatif diperlukan di masa depan, tidak perlu khawatir tentang versi ketidakcocokan dengan rilis perisian baru.

DirectAdmin tidak menawarkan HTTP / 2 di luar kotak; pasti itu bermaksud tidak sesuai atau mereka mempunyai alasan untuk tidak melakukannya. Mengapa penyelesaian ini diperlukan?

Kaedah untuk memasang dan mengaktifkan HTTP / 2 yang dijelaskan di bawah ini tidak banyak penyelesaian, tetapi hanya perubahan kemas kini dan konfigurasi semata-mata. Oleh kerana penyediaan modular DirectAdmin, perubahan ini baik-baik saja dan tidak boleh menimbulkan masalah atau masalah lain. Sukar untuk menentukan mengapa DirectAdmin tidak menyokong ini di luar kotak, memandangkan pengarang belum memberikan penjelasan mengenai perkara ini. Walau bagaimanapun, kesimpulan yang cukup kukuh adalah bahawa DirectAdmin menggunakan pakej versi oleh sistem operasi. Ini umumnya tidak terkini seperti pakej di bawah. Tidak ada yang salah dengan HTTP / 2, teknologi itu sendiri, dan keserasiannya. Sama seperti banyak teknologi lain, memerlukan sedikit masa untuk menyesuaikan diri secara semula jadi.

Apakah kemungkinan risiko mengaktifkan HTTP / 2 dengan Apache?

Dalam pengaktifan HTTP / 2 (terdiri daripada proses peningkatan dan konfigurasi) terdapat banyak pemboleh ubah yang boleh berubah menjadi tidak standard. Risiko terbesar terletak pada kesalahan manusia. Ambil gambar terlebih dahulu, pastikan untuk mengumumkan pemeliharaan kepada pengguna anda (jika ada pelayan selain dari anda) dan berhati-hati. Selain itu, jangan menyalin dan menempelkan perintah tanpa memikirkan apa yang mereka buat terlebih dahulu.

Saya sangat mengesyorkan untuk sementara memaparkan instance awan Vultr yang berasingan dengan DirectAdmin dan mengikuti langkah-langkahnya. Sekiranya ada yang tidak kena pada pemasangan 'segar', anda akan tahu di mana dan bagaimana untuk men-debugnya sehingga anda tidak perlu berada di persekitaran produksi.

Bahagian 1: Apache (pelayan web)

Sekiranya anda menggunakan proksi terbalik, anda harus beralih ke persekitaran khusus Apache. Ini kerana HTTP / 2 sangat sukar untuk debug jika ada yang tidak kena. Dengan dapat memanfaatkan fungsi HTTP / 2 terintegrasi Apache, anda dapat menghilangkan masalah yang sangat besar.

Langkah 1: Meningkatkan OpenSSL

Dalam banyak kes, versi OpenSSL anda tidak serasi dengan ALPN, yang diperlukan untuk HTTP / 2. Oleh itu, mari aktifkan ALPN dengan mengemas kini OpenSSL.

Pertama, pastikan versi OpenSSL anda tidak serasi dengan melaksanakan:

openssl version

Sekiranya versi OpenSSL anda kurang dari 1.1.0f, jalankan yang berikut sebagai root. Jika tidak, lompat ke langkah 2.

cd ~
wget ftp://ftp.openssl.org/source/openssl-1.1.0f.tar.gz
tar xzf openssl-1.1.0f.tar.gz
cd openssl-1.1.0f
./config --prefix=/usr/local/lib_http2 no-ssl2 no-ssl3 zlib-dynamic -fPIC
make depend
make install

Langkah 2: Memasang nghttp2

Agar HTTP / 2 berfungsi, kita perlu memasang nghttp2. Nghttp2 adalah pelaksanaan HTTP / 2 (dan HPACK) di C. Nghttp2 adalah versi gabungan klien, pelayan dan proksi HTTP / 2 dalam C.

Untuk memasang nghttp2, jalankan perintah berikut. Nasib baik, nghttp2 dapat dibina terus dari CustomBuild.

cd /usr/local/directadmin/custombuild
./build update
./build nghttp2

Langkah 3: Mengaktifkan HTTP / 2 di Apache

Kita perlu mengubah beberapa nilai dalam file konfigurasi Apache agar dapat menggunakan HTTP / 2. Apabila pelayan web tidak mendapat arahan untuk menggunakan versi HTTP alternatif, ia tidak akan menggunakannya. Oleh itu kita perlu menambahkan HTTP / 2 ke fail konfigurasi.

Untuk perubahan ini berlaku, perlu dilakukan pembangunan semula Apache melalui CustomBuild. Sebagai parameter dan nilai yang digunakan oleh CustomBuild ketika membangun perangkat lunak ditentukan dalam file konfigurasi khusus, praktik terbaik adalah memasukkan perubahan ini ke dalam file konfigurasi khusus.

Catatan: jika anda tidak memasukkan perubahan ini ke dalam fail khusus, kemungkinan besar perubahan tersebut akan ditimpa dan persediaan anda akan rosak. Sila ikuti arahan yang dinyatakan di bawah.

Jalankan perintah berikut untuk membuat fail dan isinya dengan nilai lalai sehingga kita dapat mengubahnya setelah itu:

mkdir -p /usr/local/directadmin/custombuild/custom/ap2
cp -p /usr/local/directadmin/custombuild/configure/ap2/configure.apache /usr/local/directadmin/custombuild/custom/ap2/configure.apache

Sampai sekarang, kami memiliki file khusus yang identik dengan file konfigurasi default untuk Apache yang digunakan oleh CustomBuild. Kita harus mengubah /usr/local/directadmin/custombuild/custom/ap2/configure.apachefail dengan menggantikan rentetan berikut:

"--with-ssl=/usr" \

dengan:

"--enable-http2" \
"--enable-ssl-staticlib-deps" \
"--with-ssl=/usr/local/lib_http2" \

Catatan: Pastikan bahawa tidak ada ruang putih selepas sebarang garis miring terbalik . Ruang kosong yang berlebihan akan menyebabkan binaannya hancur.

Seterusnya, bina semula Apache. CustomBuild akan menggunakan fail konfigurasi khusus yang baru anda buat:

./build apache

Langkah 4: Mengubah konfigurasi Apache

Apache kini telah dibina semula termasuk modul dan tetapan yang diperlukan untuk HTTP / 2. Ini bermakna kita sekarang memasang versi Apache di pelayan kita dengan sokongan untuk HTTP / 2, tetapi kita harus memberitahu Apache untuk menggunakannya terlebih dahulu.

Tambahkan baris berikut dalam /etc/httpd/conf/extra/httpd-includes.conf:

ProtocolsHonorOrder On
Protocols h2 h2c http/1.1

Simpan perubahan ini dan tulis semula fail konfigurasi sehingga berterusan dalam pembinaan semula:

cd /usr/local/directadmin/custombuild
./build rewrite_confs

HTTP / 2 kini harus aktif di pelayan web (Apache) anda.

Langkah 5: Reboot pelayan

Nyalakan semula pelayan untuk memastikan bahawa perubahan kita berterusan semasa but semula. Sila reboot pelayan melalui panel kawalan Vultr atau dengan melaksanakan rebootperintah.

Langkah 6: Uji HTTP / 2

Fungsi HTTP / 2 dapat diuji dengan mudah dengan menggunakan alat berikut: Ujian HTTP / 2

Mengingat HTTP / 2 adalah khusus pelayan dan tidak boleh dibatasi untuk sepasang domain atau laman web tertentu, memasukkan nama domain apa pun yang menunjuk ke pelayan atau bahkan alamat IP pelayan harus berfungsi.

Ujian ini akan memberitahu anda jika dapat menjangkau pelayan web melalui HTTP / 2. Sekiranya alat mengatakan HTTP / 2 diaktifkan di pelayan anda, laman web DirectAdmin kini dapat dicapai melalui HTTP / 1.1 atau HTTP / 2. Sekiranya sokongan HTTP / 2 tidak tersedia untuk pelanggan (pelawat) penyemak imbasnya akan kembali ke HTTP / 1.1.

Sekiranya alat tidak dapat menjangkau pelayan web anda melalui HTTP / 2, ikuti langkah di atas sekali lagi. Secara amnya (kerana langkah-langkah di atas tidak menimpa apa-apa secara aktif) ini tidak akan merosakkan atau mematahkan persediaan anda.

Bahagian 2: CURL

Saya mengesyorkan mengemas kini cURL sehingga dapat menjangkau pelayan dengan sokongan HTTP / 2. Sekiranya pelayan tidak menyokong HTTP / 2, ia akan kembali ke HTTP / 1.1.

Langkah 1: Menambah fail konfigurasi tersuai

Sama seperti Apache, kami akan membuat file konfigurasi khusus sehingga cURL yang dibuat oleh CustomBuild akan menggunakan tetapan khusus kami.

Buat direktori:

mkdir -p /usr/local/directadmin/custombuild/custom/curl

Buat fail:

touch /usr/local/directadmin/custombuild/custom/curl/configure.curl

Salin dan tampal kandungan berikut ke fail:

#!/bin/sh
perl -pi -e 's|CURL_CHECK_PKGCONFIG\(zlib\)|#CURL_CHECK_PKGCONFIG(zlib)|g' configure.ac
LIBS="-ldl" ./configure --with-nghttp2=/usr/local --with-ssl=/usr/local/lib_http2

Seperti yang anda lihat, kandungan ini memberitahu cURL untuk disusun menggunakan lib_http2perpustakaan SSL.

Simpan fail dan berikan kebenaran yang betul:

chmod 700 /usr/local/directadmin/custombuild/custom/curl/configure.curl

Langkah 2: Membina cURL

Seterusnya, yang perlu kita buat hanyalah membina cURL.

cd /usr/local/directadmin/custombuild
./build curl

cURL kini telah disusun dengan sokongan 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