نحوه فعال کردن HTTP2 در سرور وب Apache

نحوه فعال کردن 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>
 
 
برای بررسی اینکه سرور شما از HTTP / 2 پشتیبانی می کند ، می توانید از ابزارهای طراحی مرورگر خود استفاده کنید. در عکسهای زیر از مرورگرهای Google Chrome و Apple Safari مشاهده شده است که HTTP / 2 را در عمل در  دامنه https://example.com نشان می دهد .
 
امیدوارم از آموزش نحوه فعال کردن HTTP2 در سرور وب Apache لذت برده باشید