나는 http2에 관한 많은 문서를 읽었으며, 활성화하는 것이 안전하다고 보입니다. 그러나 나는 회귀가 없거나 적어도 회귀가 발생할 수 있다는 것을 100 % 확신해야합니다.아파치로 http2를 활성화하지 못하게 할 수 있습니까?
내 프로덕션 Apache 서버에서 http2를 사용하지 못하게 할 수있는 방법은 무엇입니까? 어떤 구성을 다시 확인해야합니까? 어떤 새로운 동작으로 인해 문제가 생길 수 있습니까?
나는 http2에 관한 많은 문서를 읽었으며, 활성화하는 것이 안전하다고 보입니다. 그러나 나는 회귀가 없거나 적어도 회귀가 발생할 수 있다는 것을 100 % 확신해야합니다.아파치로 http2를 활성화하지 못하게 할 수 있습니까?
내 프로덕션 Apache 서버에서 http2를 사용하지 못하게 할 수있는 방법은 무엇입니까? 어떤 구성을 다시 확인해야합니까? 어떤 새로운 동작으로 인해 문제가 생길 수 있습니까?
이것은 매우 의견을 바탕으로 한 질문이며 사실 기반 답변을 제공하기위한 스택 오버플로를위한 훌륭한 형식이 아닙니다. 그것은 또한 당신이 아주 작은 세부 사항을 부여한 환경에 전적으로 달려 있습니다.
그러나 나는 이것에 관심을 가지고 있으며 가능한 한 최선을 다해 답변을 보내고 있습니다. 당신은 HTTP/2 지원하는 버전으로 아파치를 업그레이드해야합니다 시작을 위해
:
이들은
은 고려해야 할 것들입니다. 이상적으로는 HTTP/2 코드가 2.4.17에서 처음 출시 되었기 때문에 여러 가지 변경 사항이 있었기 때문에 최신 버전 (작성 당시 2.4.29)으로 업그레이드해야하고 "실험적"으로 표시되지 않게해야합니다. 2.4.26. 이것이 얼마나 쉬운지는 사용자의 환경에 따라 다르지만 패키지 버전 (예 : RHEL 및 Centos의yum
통해)은 최신 버전이 아니며 패키지 환경의 안전성을 벗어나 소스를 기반으로 구축하거나 타사 저장소를 단계적으로 수행하는 것이 단계가 아닙니다 가볍게 가져 가야한다. mod_http2의 사용 여부에 대한 자세한 내용은 this question을 참조하십시오 (필자의 생각은 그렇다).당신이오고있는 Apache의 버전과 업그레이드 (필요한 경우)의 변경 사항을 고려해야합니다. 많은 사람들이 아직도 2.2와 upgrade to 2.4 requires some changes을 사용하고 있습니다. 2.4의 이전 버전에서 이미 문제가 발생하지는 않았지만 여전히 영향을 미칠 수있는 변경 사항이 있습니다. 2.2는 삶의 끝입니다. 그러나 이것은 당신이 조만간해야 할 일입니다.
HTTP/2를 사용하려면 HTTPS가 모든 브라우저에서 작동해야합니다. 따라서 사이트가 아직이 사이트에없는 경우에는 약간의 업그레이드가 될 수 있습니다. 그러나 웹이 HTTPS로 다시 이동하고 있으므로 아직이 작업을 수행하지 않았다면 조만간해야 할 일이 될 것입니다.
HTTP/2는 HTTP/2 협상을 위해 ALPN을 지원하려면 OpenSSL 1.0.2 이상이 필요합니다. 다시 한 번 많은 Linux 배포판에는이 버전이 포함되어 있지 않으며, RHEL/Centos 7.4와 같은 버전의 경우에도이 버전에 대해 Apache를 빌드하지 않습니다. 따라서 다시 소스 또는 대체 레포에서 건물을 볼 필요가 있습니다 (위의 요점 참조).
HTTP/2를 사용하려면 OpenSSL 1.0.2 덕분에 사용할 수있는 좋은 HTTPS 구성 (예 : GCM 암호)이 필요하지만이를 구성하려면 SSL/TLS 구성을 검토해야 할 수도 있습니다. SSLLabs Server Test Tool이 최선의 선택입니다.
웹 소켓을 사용합니까? They are currently not compatible with HTTP/2 그래서 HTTP/1.1을 계속 사용해야합니다. 현재 웹 소켓을 HTTP/2에 추가 할 계획이 있지만 토론 단계에 있습니다.
HTTP/2는 소문자 HTTP 헤더 이름을 사용합니다. 전통적으로 HTTP 헤더 이름은 항상 대소 문자를 구분하지 않지만 모든 구현이이를 올바르게 구현하는 것은 아니며 일부는 대소 문자를 구분하지 않습니다.
HTTP/2 응답은 여전히 응답 코드 (200, 404)를 보내지 만 상태 텍스트 ("OK", "찾을 수 없음")는 생략합니다. 다시 이것은 적절하게 코딩 된 대부분의 응용 프로그램에 영향을 미치지 않아야하지만이 응답 메시지에 의존한다면이 문제를 해결하기 위해 일부 작업을 수행해야 할 수 있습니다.
HTTP/2는 단일 연결로 작동하도록 설계되었습니다. 현재 다른 도메인의 자산을 파기 한 경우 coalesce them back into one connection을 시도 할 수 있습니다. 이는 원활하게 작동하지만 모든 샤드 도메인에서 HTTP/2를 사용할 수없는 경우 문제가 발생할 수 있습니다.
이 마지막 3 점은 우수 BBC write up of the issues they experienced when moving to HTTP/2에서 유래했습니다.
위의 내용은 모두 HTTP/2를 사용하도록 업그레이드 할 수있는 방법에 대해 고려해야 할 사항입니다. 현재 대부분의 표준 Linux 배포판에 대해 솔직히 말하면 조금 고통 스럽지만 새 버전이 나올 때마다 더 쉽게 얻을 수 있습니다.
그러나, 당신은 장소에, 그리고 HTTP/2는 다음을 업그레이드 할 여부를 결정해야하는를 업그레이드 할 수 있습니다 일단.
HTTP/2 전체 버전은 이전 버전과 호환되도록 설계되었으므로 원활한 업그레이드가 필요합니다. HTTP/2를 말할 수있는 클라이언트, HTTP/1.1을 계속 말할 수없는 클라이언트 (당분간은 구성을 떠나야 함).
그러나 HTTP/2는 여전히 기술 분야에서 새롭고 클라이언트 또는 서버 측에서 구현 문제가있을 수 있습니다. 2 년이 지났음을 감안할 때 내 경험은 매우 긍정적이며 많은 문제는 보이지 않지만 업그레이드와 마찬가지로 나중에 업그레이드 및 모니터링하기 전에 테스트, 테스트 및 테스트해야합니다. 필자가 보았던 대부분의 이슈는 HTTP/2가 멈추는 이슈를 보여주는 것보다 공연자가 아니며, 예를 들어 내가 가진 것처럼 관심이없는 대부분의 사람들이 그 사실을 알아 채기 위해 애를 먹는다. . 20% of web traffic is using HTTP/2 그래서 입증 된 기술이며 지난 몇 년 동안 주요 문제없이 수많은 사이트, 서버 및 클라이언트에서 사용 되어온 SPDY를 기반으로합니다.
또한 HTTP/2의 이점을 고려해야합니다. 내 의견으로는 대부분의 웹 사이트는 좋은 속도 향상 (아마 20 %)을보아야하지만 이것은 보장되지 않으며 개별 사이트 및 연결 방문자 및 사용에 따라 달라질 것입니다. 특정 대역폭 바운드 사이트는 속도가 느려질 수도 있습니다. 그러나 현실적인 기대치를 설정하고 HTTP/2가 도움이되는지 이해하는 데 도움이되는 성능 병목 현상이 어디인지 파악해야합니다. 실적이 저조한 웹 사이트에 대한 해결책은 아닙니다.
다른 점은 업그레이드 한 후 고려해야 할
하루가 끝날 때까지 아무도 문제가 없으므로 "100 % 확신"할 수 있으며 자신에게 자신감을주기 위해 테스트해야합니다. 그리고 분명히 HTTP/2에 대한 더 많은 정보와 이해가 있으면 더 많은 영향과 모든 이슈를 이해하게 될 것입니다.