AWS EC2로 설정하여 HTTP2의 효과를 실감
3477 단어 http2
서버 사이드push가 나타나고 이미지와 CSS를 다운로드할 때 줄을 서지 않아도 됩니다. 표시 속도가 빨라집니다!
이제야 HTTP2가 실감났고, 어제앤더도 소개해줬어요.는 검증/연구용 AWS 실례에 하나의 동작을 설정했다.
물론 클라우드 프론트가 준비되어 있으니 HTTP2 통신을 조금만 해보세요.
거기가 프런트 엔지니어라고 하지만 스스로 한번 구축해보고 싶어 취미 중심으로 시행했다.
컨디션
서버
OS
M/W
해본 일
nginx의 VerUp
nginx는1.9.5 이후 HTTP2 지원라고 합니다.
일단 편하게 하세요.sudo yum search nginx
그 결과 아마존 창고에는 1.10.1개가 있었다.
그러나 HTTP2 동작의 경우 OpenSSL 1이 사용됩니다.0.2 이상이 필요합니다.nginx를 연결해서 컴파일해야 합니다.
Amazon 창고의 OpenSSL은 1.0.1이며,nginx도 이를 사용하여 컴파일합니다.
그래서 OpenSSL을 VerUP으로 바꾸기로 결정했습니다.
OpenSSL의 VerUp
yum가 설치할 수 없어서 컴파일했습니다.wget https://www.openssl.org/source/openssl-1.0.2-latest.tar.gz
sudo tar -zxf openssl-1.0.2-latest.tar.gz
〜略〜
$ openssl version
OpenSSL 1.0.2j 26 Sep 2016
nginx의 VerUp (다시)
물론 VerUP의 OpenSSL 컴파일을 사용해야 하기 때문에yum는 사용하지 않습니다.
원본 코드를 다운로드하고 컴파일하며 설치를 덮어썼습니다.sudo ./configure --prefix=/usr/share/nginx --with-http_ssl_module --with-http_v2_module --with-stream_ssl_module --with-openssl=/usr/local/src/openssl-1.0.2j
컴파일 옵션이 많이 생략되었습니다.
고쳐 쓰다
conf에서 SSL을 유효하게 설정합니다. (원래 설정되어 있음)
HTTP2가 설정되어 있습니다.
HTTP2는 규격상 http 통신에서도 유효하지만 브라우저 측면에서는 https에서만 유효하기 때문에 SSL 설정이 필요하다.server {
listen 80;
listen 8080;
listen 443 ssl http2 default_server;
server_name xxxx.mediba.jp;
#server_name localhost;
ssl on;
ssl_certificate /etc/letsencrypt/live/xxxx.mediba.jp/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxxx.mediba.jp/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
〜略〜
}
reload
$ sudo /etc/init.d/nginx configtest
$ sudo /etc/init.d/nginx reload
nginx を再読み込み中: [ OK ]
동작 확인
Protocol이 h2(http2)임을 확인했습니다.
서버 구성은 생각보다 간단합니다.
nginx의 설정만 있기 때문에 실제로는 많은 것을 고려할 필요가 있다.
오랫동안 번역을 안 해서 심심해요...
HTTP2의 위력을 보세요.
많은 그림이 준비된 페이지를 방문해 보았습니다.
HTTP1.1로 액세스
HTTP2를 통해 액세스
결실
네트워크와 서버의 부하, 환경이 다르기 때문에 간단한 속도 비교를 할 수 없습니다.
http2에서 http1.1 에서 발생한 최대 세션 수 때문에 Queing 이 없습니다. (투명)
그림이 병렬 다운로드된 것을 알 수 있다.
이번 방문은 최대 500msec의Queing이 발생했습니다. 이게 없으면 0.5초간 간단하게 고속화할 수 있습니다.
아마 상당한 효과가 있을 거예요!
Reference
이 문제에 관하여(AWS EC2로 설정하여 HTTP2의 효과를 실감), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/swa27-hijikata/items/d55339c0875b7cf7f2c2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
wget https://www.openssl.org/source/openssl-1.0.2-latest.tar.gz
sudo tar -zxf openssl-1.0.2-latest.tar.gz
〜略〜
$ openssl version
OpenSSL 1.0.2j 26 Sep 2016
sudo ./configure --prefix=/usr/share/nginx --with-http_ssl_module --with-http_v2_module --with-stream_ssl_module --with-openssl=/usr/local/src/openssl-1.0.2j
server {
listen 80;
listen 8080;
listen 443 ssl http2 default_server;
server_name xxxx.mediba.jp;
#server_name localhost;
ssl on;
ssl_certificate /etc/letsencrypt/live/xxxx.mediba.jp/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxxx.mediba.jp/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
〜略〜
}
$ sudo /etc/init.d/nginx configtest
$ sudo /etc/init.d/nginx reload
nginx を再読み込み中: [ OK ]
Reference
이 문제에 관하여(AWS EC2로 설정하여 HTTP2의 효과를 실감), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/swa27-hijikata/items/d55339c0875b7cf7f2c2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)