Apache의 mod_brotli를 설치해보십시오.
3890 단어 httpd아파치AmazonLinux압축Brotli
Google이 개발한 이 새로운 압축 기술
결론부터 말하자면 기존 압축 기술인 Gzip에 비해 압축 후 크기로 우위가 있다고 해도
내가 현재 가지고있는 환경, Amazon Linux에 yum으로 설치하는 Apache에서는 지원하지 않기 때문에
설치 방법을 바꾸고까지 채용할 정도가 아니라고 생각했습니다.
이번에는 brotli 및 Apache의 mod_brotli Linux 환경에서의 설치에 대해 정리하고 싶습니다.
또, gzip과의 비교로서 벤치마크도 실시했으므로, 그것에 대해서는 후일 다른 기사에서 소개할 수 있으면 좋겠습니다.
아파치 공식 문서 확인하면
아파치 2.4.26 이상에서 사용할 수있는 것 같습니다.
내가 가지고 있는 환경(Amazon Linux)에 yum으로 들어 있는 httpd는 2.4.25로, 아웃이었습니다.
새 버전이 있는지 확인해 보면
$ yum info httpd24
Installed Packages
Name : httpd24
Arch : x86_64
Version : 2.4.27
Release : 3.75.amzn1
Size : 4.1 M
Repo : installed
From repo : amzn-main
Summary : Apache HTTP Server
URL : http://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
2.4.27, 라고 하는 것으로 갈 것 같습니다.
yum update httpd24
로 업데이트합니다.gzip 압축 모듈인 mod_deflatell처럼
SetOutputFilter BROTLI_COMPRESS
를 conf 파일에 추가하고 다시 시작합니다.그런데 브라우저에서 확인해 보더라도 응답 헤더에는 "br"문자열이 없습니다.
압축이 걸리지 않는 것 같습니다.
그래서 apache의 오류 로그를 살펴보면,
an unknown filter was not added: BROTLI_COMPRESS
라는 오류가 출력되었습니다.
그래서/etc/httpd/modules 부하를 찾아 보는 것도 mod_brotli적인 것은 없습니다.
yum으로 업데이트해도 들어있는 것은 아닌 것 같습니다.
그래서 소스에서 설치하려고합니다.
mod_brotli를 소스에서 컴파일하고 설치
먼저 브로틀리 저장소을 복제합니다.
나열된 단계에 따라 cmake로 설치합니다.
(cmake는 없었기 때문에
yum install cmake
하고 있습니다)git clone https://github.com/google/brotli
mkdir out && cd out
../configure-cmake
make
make test
make install
이제
/usr/local/bin
에 brotli가 설치됩니다.그런 다음 Apache Httpd를 소스에서 컴파일하고 설치합니다.
여기에서 소스를 다운로드하고 확장.
생각하면 apache를 소스에서 설치한 것은 처음입니다.
brotli 를 사용하고 싶기 때문에
--with-brotli
옵션을 지정해 configure 합니다../configure --with-ssl --with-mpm=prefork --enable-rewrite --with-brotli=/usr/local
make
make install
그러면
/usr/local/apache2
에 httpd가 설치됩니다. httpd.conf를 보면#LoadModule brotli_module modules/mod_brotli.so
이기 때문에,이 녀석을 코멘트 인. modules 아래를 찾아 보면.
/usr/local/apache2/modules/mod_brotli.so
가 있는지 확인할 수 있다고 생각합니다.
드디어 apache를 시작하려고 합니다.
/usr/local/apache2/bin/apachectl -t
httpd: Syntax error on line 106 of /usr/local/apache2/conf/httpd.conf: Cannot load modules/mod_brotli.so into server: libbrotlienc.so.1: cannot open shared object file: No such file or directory
뭔가 잘 가고 있지 않은 것 같습니다.
여기서 상당히 집어 들었지만, 조사해 보았습니다.
도서관 관계가 잘되지 않은 것 같습니다. .
echo /usr/local/lib > /etc/ld.so.conf.d/usr-local-lib.conf
ldconfig
이것으로 제대로 apache가 mod_brotli.so를 인식하는 것 같습니다.
적절한 conf 파일에 다음을 추가한다.
SetOutputFilter BROTLI_COMPRESS
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-brotli
브라우저로 확인하면・・・.
Response Header의 "Content-Encoding"곳에 "br"이 보였습니다!
Gzip과 비교해 보았습니다.
Reference
이 문제에 관하여(Apache의 mod_brotli를 설치해보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takeshi_nozawa/items/14880f8f7a4ac8aa91b7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)