패키지에서만 CentOS Apache를 HTTP/2 지원으로 설정
HTTP/2
CentOS 7.4에서 OpenSSL이 1.0.2로 업그레이드되었으므로 패키지만으로 Apache를 HTTP/2와 호환할 수 있습니다.
VirtualBox의 CentOS 7.4 minimal 가상 환경에서 검증하는 단계를 소개합니다.
Nginx에 대해서는 나중에 공개되는 다른 기사에서 소개합니다.
아파치
RHSCL (SCLo rh) 도입
yum -y install centos-release-scl-rh yum-utils
yum-config-manager --enable centos-sclo-rh-testing
표준 리포지토리에서 Apache는 2.4.6이므로 RHSCL 클론의 SCLo rh 리포지토리
centos-release-scl-rh
를 도입합니다.이 상태에서는 HTTP/2에 대응할 수 있어도 ALPN에 대응할 수 없고, 모던 브라우저로 확인할 수 없기 때문에, SCLo rh Testing 리포지터리
centos-sclo-rh-testing
를 유효하게 합니다.필수 라이브러리 설치 및 환경 정비
yum -y install httpd24{,-mod_ssl,-nghttp2}
source scl_source enable httpd24
echo -e '#!/bin/bash\nsource scl_source enable httpd24' > /etc/profile.d/httpd24.sh
ln -s {/opt/rh/httpd24/root,}/etc/httpd
ln -s {/opt/rh/httpd24/root,}/var/www
ln -s /etc/httpd/logs /var/log/httpd
ln -s /{usr/lib/systemd/system/httpd24-,etc/systemd/system/}httpd.service
systemctl daemon-reload
httpd
mod_ssl
libnghttp2
에 해당하는 패키지를 설치합니다.httpd24
패키지는 소프트웨어 컬렉션이기 때문에 파일의 배치등이 표준 패키지와 달리 관리하기 어려우므로, 영향이 적은 범위에서 최대한 같은 패스 참조를 할 수 있도록 조정합니다.MPM을 Prefork에서 Event로 변경
sed -i '/mod_mpm_prefork/ s/^/#/' /etc/httpd/conf.modules.d/00-mpm.conf
sed -i '/mod_mpm_event/ s/#//' /etc/httpd/conf.modules.d/00-mpm.conf
Apache 2.4.27부터 Prefork 모드에서는 HTTP/2가 더 이상 유효하지 않으므로1 Events 모드로 변경해야 합니다.
프로토콜 지정
cat << "_EOF_" > /etc/httpd/conf.d/vhosts.conf
<VirtualHost *:80>
Protocols h2c http/1.1
</VirtualHost>
<VirtualHost *:443>
ServerName localhost
Protocols h2 http/1.1
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
</VirtualHost>
_EOF_
여기서 인증서는 OpenSSL 표준 샘플을 사용합니다.
443 포트 용
DocumentRoot
을 지정하는 경우 /var/www/html
등의 심볼릭 링크를 지정하면 오류 출력없이 무시되므로주의하십시오.FirewallD
firewall-cmd --add-service=http{,s} --permanent && firewall-cmd --reload && firewall-cmd --list-services | grep http
시작
systemctl start httpd && systemctl enable $_
샘플 파일
echo "HTTP/2 Test" >> /var/www/html/index.html
로컬 PC 설정
hosts
192.168.56.101 localhost
VirtualBox와 같은 가상 환경의 경우 hosts 파일을 편집하여 localhost 도메인에서 참조할 수 있어야 합니다.
브라우저 참조
Firefox 또는 Safari와 같은 브라우저에서 개발자 도구를 표시하고 https://localhost/을 참조하면 프로토콜이
h2
인지 확인할 수 있습니다. (Chrome라면 hosts 재기록에 의한 localhost 참조할 수 없는 것 같습니다.회피책을 아시는 분이 있으면 정보 제공을 부탁드리겠습니다.)Let's Encrypt
인증서 취득
yum -y install certbot
certbot certonly --standalone -d example.jp -m [email protected] --agree-tos
실제 도메인에서 시도하는 경우 Let's Encrypt에서 얻는 것이 좋습니다.
RHSCL
httpd24
패키지를 사용하는 편리함을 위해 필요한 표준 httpd
패키지와 충돌 python-certbot-apache
패키지를 사용할 수 없으므로 번거롭지만 certonly
로 실행해야합니다.인증서 지정
SSLCertificateFile /etc/letsencrypt/live/example.jp/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.jp/privkey.pem
인증서는 위의 경로에 심볼릭 링크를 생성하므로
<VirtualHost *:443>
지시문에 지정합니다.h tp // w w. 아파치. 오 rg / st / h tpd / 찬 S_2.4 ↩
Reference
이 문제에 관하여(패키지에서만 CentOS Apache를 HTTP/2 지원으로 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bezeklik/items/5286da14451e0c7a7d19텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)