نحوه فعال کردن HTTP2 در سرور وب Apache
نسخه پروتکل HTTP است که به عنوان استاندارد IETF در RFC 7540 در سال ۲۰۱۵ منتشر شده است. تمرکز این پروتکل بر عملکرد است. به طور خاص ، تأخیر درک شده کاربر نهایی ، استفاده از منابع شبکه و منابع سرور. یک هدف اصلی این است که استفاده از یک اتصال واحد از مرورگرها به یک وب سایت امکان پذیر باشد. پروتکل سازگار با عقب است ، بنابراین روشهای HTTP ، کدهای وضعیت و معناشناسی همانند نسخههای قبلی پروتکل است. آپاچی از نسخه ۲٫۴٫۱۷ پشتیبانی HTTP / 2 دارد. در این آموزش ، من فرض میکنم که شما قبلاً یک پیکربندی TLS کار کرده اید ، و اینکه شما نیاز به نسخه Apache نصب شده بر روی توزیع انتخاب لینوکس خود دارید ، و اینکه شما میدانید چگونه از Let Encrypt استفاده کنید ، یا میدانید چگونه صادر کنید یک گواهی خود امضا شده؟
کاربران عزیز سایت آچار فرانسهاین آموزش بر روی Debian 9 ، Debian 10 و Ubuntu 18.04 LTS تست شده است.
پیش نیازها:
برای فعال کردن HTTP / 2 در Apache باید موارد زیر را انجام دهید:
- ابتدا باید HTTPS را روی سرور خود فعال کنید. همه مرورگرهای اصلی استفاده از HTTP / 2 را فقط از طریق HTTPS مجاز میکنند. همچنین ، نسخه پروتکل TLS > = 1.2 با مجموعههای جدید رمزگذاری مورد نیاز است.
- بعد ، اطمینان حاصل کنید که Apache ۲٫۴٫۱۷ یا بالاتر را اجرا میکنید زیرا HTTP / 2 از این نسخه و به بعد پشتیبانی میشود.
- همچنین ، اطمینان حاصل کنید که مشتری / مرورگر شما در واقع از HTTP / 2 پشتیبانی میکند.
ماژول mod_php را غیرفعال کنید
قبل از اینکه بتوانیم ماژول Apache MPM را در مرحله بعدی به mpm_event تغییر دهیم ، باید حالت mod_php قدیمیرا غیرفعال کنیم و آن را با حالت مدرن تر PHP-FPM جایگزین کنیم. دستورات برای هر نسخه از سیستم عامل متفاوت است ، لطفاً از آنهایی استفاده کنید که مطابق با سیستم نصب شده شما هستند.
دبیان ۹
sudo apt-get install php7.0-fpm
sudo a2dismod php7.0
sudo a2enconf php7.0-fpm
sudo a2enmod proxy_fcgi
دبیان ۱۰
sudo apt-get install php7.3-fpm
sudo a2dismod php7.3
sudo a2enconf php7.3-fpm
sudo a2enmod proxy_fcgi
اوبونتو ۱۸٫۰۴ LTS
sudo apt-get install php7.2-fpm
sudo a2dismod php7.2
sudo a2enconf php7.2-fpm
sudo a2enmod proxy_fcgi
Apache MPM را که سازگار با HTTP / 2 است ، فعال کنید
به طور پیش فرض ، Apache از prefork MPM استفاده میکند. این MPM با HTTP / 2 سازگار نیست ، بنابراین ما مجبوریم آن را با ماژول مدرن تر mpm_event جایگزین کنیم.
ابتدا ماژول mpm_prefork را غیرفعال میکنیم:
sudo a2dismod mpm_prefork
سپس ماژول mpm_event را فعال میکنیم:
sudo a2enmod mpm_event
پشتیبانی HTTP / 2 را در آپاچی فعال کنید
برای کار با HTTP / 2 در Apache ، باید ماژولهای SSL و HTTP / 2 را فعال و بارگذاری کنید . برای این کار ، ممکن است موارد زیر را در ترمینال خود اجرا کنید:
sudo a2enmod ssl
و بعد
sudo a2enmod http2
برای فعال کردن این ماژولهای جدید ، باید اجرا کنید:
sudo systemctl restart apache2
پس از فعال کردن و بارگیری ماژولهای لازم Apache ، به پوشه تنظیمات آپاچی خود بروید و پیکربندی Apache را ویرایش کنید.
برای فعال کردن HTTP / 2 در وب سرور آپاچی خود یکی از موارد زیر را به پیکربندی جهانی Apache یا داخل یک میزبان مجازی خاص اضافه کنید.
پروتکل h2 http / 1.1
در اینجا حداقل تنظیمات سرور مجازی وجود دارد که میتواند برای فعال کردن HTTP / 2 در برخی ازهاست مجازی استفاده شود:
<VirtualHost*:443>
ServerNameexample.com
ServerAliaswww.example.com
DocumentRoot/var/www/public_html/example.com
SSLEngine on
SSLCertificateKeyFile/path/to/private.pem
SSLCertificateFile/path/to/cert.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Protocols h2 http/1.1
VirtualHost>
برای بررسی اینکه سرور شما از HTTP / 2 پشتیبانی میکند ، میتوانید از ابزارهای طراحی مرورگر خود استفاده کنید. در عکسهای زیر از مرورگرهای Google Chrome و Apple Safari مشاهده شده است که HTTP / 2 را در عمل در دامنه https://example.com نشان میدهد .
امیدوارم از آموزش نحوه فعال کردن HTTP2 در سرور وب Apache لذت برده باشید