نحوه فعال کردن 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>
ServerName example.com
ServerAlias www.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>