Docker로 HTTP/2 자신의 사이트에 쉽게 대응하세요
대표적인 WEB 브라우저인 Firefox, Google Chrome에서는 HTTP 2를 사용할 수 있습니다.
HTTP/2가 대략적으로 말하면 데이터 전송 주위의 다양한 효율이 좋아져서 기쁘다.
열심히 가져오기는 어렵지만 일반 사이트에 Docker가 있다면 HTTP/2에 대한 테스트를 할 수 있다.
컨디션
일반적인 웹 환경의 모델로 아마존 EC2에서 HTTP(TCP/80) 호스트인Word Press만 사용하는 AMIMOTO씨를 사용해 봤습니다.
WordPress AMI 메타
AMI에서 EC2 인스턴스를 시작하면 WordPress가 명문 HTTP에서 이동합니다.
※ 시동 시에도 안전팀 내에서 HTTPS(TCP/443)를 승인하십시오.
Docker로 시작하는 과정은 HTTP2로 upstream(reverse proxy)의 무언가를 받아들일 수 있습니다.
Docker 준비
Amazon Linux이기 때문에 Docker 호스트는 포장으로 바로 시작할 수 있습니다.
___ _ __
/ _ | __ _ (_)_ _ ___ / /____
/ __ |/ ' \/ / ' \/ _ \/ __/ _ \
/_/ |_/_/_/_/_/_/_/_/\___/\__/\___/
Amazon Linux AMI release 2014.09
Nginx 1.6 + PHP 5.5 + Percona 5.6
amimoto http://ja.amimoto-ami.com/
digitalcube https://www.digitalcube.jp/
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$
yum로 하면 돼요. 먼저 시동 걸어요.$ sudo yum install docker -y
$ sudo service docker start
샘플 가져오기 Docker 파일
Giithub에서 모방용 Docterfile이 있습니다. #=>higanworks/http2_by_docker
우리 적당히 복제합시다.
$ mkdir github.com && cd $_
$ git clone https://github.com/higanworks/http2_by_docker.git
WordPress 측의 훈련
이 방법은 역방향 에이전트이기 때문에WordPress에 도달하는 요구는 HTTP입니다.
무엇보다 HTTPS를 구성으로 지정하면 됩니다.
/var/www/vhosts/i-xxxx/wp-config.php
$_SERVER['HTTPS'] = 'on';
참고: 이 설정에 가입하면 스타일 등의 부품이 모두 HTTPS 링크에 포함됩니다.열심히 사용하고 있다면 아래 어딘가에서 조금만 더 조정하면 된다.
wp-config.php
로 조건 쓰기 HTTPS
헤더 x-forwarded-***
h2o HTTP/2 사용
그럼 h2o부터 써요.
h2o/h2o
h2o의 Docker file는 거의 빌렸다tcnksm/dockerfiles.
Docterfile을 확인한 후 이미지를 구성합니다.
$ cd h2o
$ sudo docker build -t local/h2o .
...
Successfully built 21fee39e3a54
엔딩은 이런 느낌.proxy.reverse.url
는 Docker가 가상 네트워크를 사용하는 것을 말합니다.conf/h2o.conf
listen:
port: 8080
ssl:
certificate-file: examples/h2o/server.crt
key-file: examples/h2o/server.key
hosts:
default:
paths:
/:
proxy.reverse.url: http://172.17.42.1:80/
access-log: /dev/stdout
그럼 Docker로 h2o 프로세스를 향상시킵시다.대체로 다음과 같이 지정한다.$ sudo docker run -t --rm -p 443:8080 -v `pwd`/conf:/conf local/h2o /conf/h2o.conf
이렇게 하면 TLS(TCP/443)를 통해 WEB 브라우저로부터 요청을 받아 h2o의 8080에서 재생한 다음nginx에 건네준다.빨리 브라우저에서
https://${ec2_public_ip}
열어라.개발 도구를 보면 서버는 h2o로 HTTP2를 사용하고 있음을 알 수 있습니다.
h2o는 고객의 대응 상황에 따라 HTTP2가 아니라 HTTP1이다.x를 자동으로 전환할 수 있기 때문에 대부분의 브라우저와 클라이언트는 웹 페이지를 정상적으로 표시할 수 있다.
Trusterd를 사용한 HTTP/2
나는 다음에 같은 일을 해 보겠다Trusterd.
이것도 이미지의 구축에서 시작된 것이다.
$ cd ../trusterd
$ sudo docker build -t local/trusterd .
...
Trusterd 설정 파일은 이런 느낌입니다.Ruby!conf/trusterd.conf
SERVER_NAME = "Trusterd"
SERVER_VERSION = "0.0.1"
SERVER_DESCRIPTION = "#{SERVER_NAME}/#{SERVER_VERSION}"
root_dir = "/usr/local/trusterd"
s = HTTP2::Server.new({
:port => 8080,
:document_root => "#{root_dir}/htdocs",
:server_name => SERVER_DESCRIPTION,
:worker => "auto",
:server_host => "0.0.0.0",
:debug => true,
:key => "/usr/local/src/trusterd/docker/conf/server.key",
:crt => "/usr/local/src/trusterd/docker/conf/server.crt",
:tls => true,
:callback => true,
:run_user => "nobody",
:server_status => true,
:upstream => true,
})
s.set_map_to_storage_cb {
s.upstream_uri = s.percent_encode_uri
s.upstream_host = "172.17.42.1"
s.upstream_port = 80
}
s.run
Docker에서 Trusterd 프로세스를 시작할 때는 이렇습니다.h2o와 기본적으로 같은 방법.$ sudo docker run -t --rm -p 443:8080 -v `pwd`/conf:/conf local/trusterd /conf/trusterd.conf
이쪽도 브라우저로 개발 도구에서 확인하고 있다HTTP/2.0
.트러스터드
via
는 머리 등을 사용해 대리적인 행동을 볼 수 있다.중요한 장소의 호출 코너에 머리를 비롯한 다양한 통신 콘텐츠가 개입되는 것도 흥미롭다.다만 이 기사가 공개됐을 때의 버전인 Trusterd는 HTTP/2를 지원하지 않는 WEB 브라우저 클라이언트에게는 무자비하다.
bad connection
연결을 끊습니다.xxx.xxx.xxx.xxx connected
session_recv: datalen = 611
Fatal error: Received bad connection preface114.172.124.198 disconnected
주로 차단된 건 사파리(<=해당)와 IE...?그렇게 생각하면 괜찮을 수도 있어.h2o와trusterd
사용하는 두 HTTP/2 서버를 대략적으로 비교합니다.
-
h2o
trusterd
HTTP 프로토콜
1.0/1.1/2.0
2.0
프로파일
yaml(WITH MRUBY)
mRuby
대리적 행위
별거 없어요.
프록시 헤더 추가(임의로 추가할 수 있음)
안정성
기본적 안정
읊다, 읊조리다
전투력
실제 성적도 있는 것 같은데,
지금부터사용자 피드백은 어떻습니까?
확장성
C를 쓸 수 있다면 확장할 수 있습니다.trusterd 저자h2o_mruby 추가에 따르면 기본적인 유형의 실현도 추진되고 있다.
Full muRuby는 상당히 하고 싶어한다.C가 읽고 쓸 수 있었으면 더 좋았을 텐데.
로고
없다
멋지다
한마디로 h2o에서(간단하게) 팟캐스트와 호응 동작에 집중하고 싶다면 Trusted를 사용한다.당신의 사이트도 HTTP/2에 대응해 보세요.
테이블 업데이트
-2015.8h2o에서 무루비 확장 추가
Reference
이 문제에 관하여(Docker로 HTTP/2 자신의 사이트에 쉽게 대응하세요), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sawanoboly/items/9b6b21430781fbc48370텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)