Nginx에서 Pagespeed Module 사용방법

저는 LEMP (Ubuntu 14.04 + Nginx + Mysql + Php5)의 구성으로 워드프레스 사이트를 몇 개 운영하고 있습니다. 그러나 항상 워드프레스 테마를 사용하면서 발생하는 테마와 플러그인의 자바스크립트와 CSS의 느린 구동 속도 때문에 고민이 많았는데요, 우연히 알게 된 구글 Pagespeed module을 사용해보았고 정보를 공유하고자 합니다.

국내에는 정보가 별로 없고 해외에서 얻은 정보로 몇 번이나 설치해봤습니다만, 다양한 문제가 생기더군요. 명령어가 동작하지 않는다든지, 특정 기능이 동작하지 않는다든지 등…. (제가 개발자가 아니라서 해결하기 어려웠습니다. ㅠ)

다양한 방법으로 수차례 설치를 시도한 결과 드디어 제가 원하는 데로 완벽하게 작동하게 되어서 소개해보겠습니다.

Nginx의 Pagespeed 모듈

우선 저는 디지털오션에 Ubuntu 14.04 + Nginx 1.8.0 안정화 버전 그리고 최신 Pagespeed module을 설치하였습니다. 기존 엔진엑스가 설치된 상태가 아닌, 초기 상태로 처음부터 설치하는 것을 기준으로 했으며, 나머지 Mysql 이나 Php5 등은 원하시는 대로 설치하시면 됩니다. 모든 과정은 루트 계정으로 시행하였기 때문에 명령어의 앞에 sudo는 생략되었습니다.

 

sudo nano /etc/apt/sources.list.d/nginx.list

나노 편집기로 위의 파일을 연 다음에 아래의 명령어를 입력후 저장합니다.

deb http://ppa.launchpad.net/nginx/stable/ubuntu trusty main
deb-src http://ppa.launchpad.net/nginx/stable/ubuntu trusty main

이제 최신 Nginx 버전을 다운로드 하기 위해 아래의 명령어를 입력해 업데이트를 시행해줍니다.

apt-get update

업데이트 도중에 GPG error: http://nginx.org trusty Release: The following signatures couldn’t be verified because the public key is not available: NOPUBKEY xxxxxxxxxx 라고 에러가 발생할 수 있습니다. (xxx는 사용자마다 다릅니다.)

이럴 경우에는 위에 나타난 키와 함께 아래의 명령어를 입력해줍니다.

pt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxxxxxxxxx

그리고 다시 apt-get update를 실행하면 업데이트가 완료됩니다. 이제 제작할때 엔진엑스를 빌드할때 필요한 도구들을 설치합니다.

apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip

엔진엑스 다운로드

아래의 경로는 임의로 설정한 경로입니다. 원하시는 대로 바꾸셔도 무방합니다.

cd ~
mkdir -p ~/new/nginx_source/
cd ~/new/nginx_source/

위의 명령어를 입력해 루트 폴더에 /new/nginx_source라는 폴더를 만들어줍니다.

apt-get source nginx
apt-get build-dep nginx

만든 폴더로 이동 후 위의 명령어를 입력하면 엔진엑스가 다운로드 됩니다.

페이지 스피드 모듈 다운로드

cd ~
NPS_VERSION=1.9.32.10
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${NPS_VERSION}-beta.zip
unzip release-${NPS_VERSION}-beta.zip
cd ngx_pagespeed-release-${NPS_VERSION}-beta/
wget https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.tar.gz
tar -xzvf ${NPS_VERSION}.tar.gz

위의 명령어를 순서대로 입력해줍니다. 제가 이 글을 작성할때 Pagespeed module의 최신버전은 1.9.32.10이었습니다. 업데이트가 될 경우에는 -에서 확인할 수 있으며, NPS_VERSION=뒤의 버전만 바꾸고 똑같이 하시면 됩니다. 위의 명령어를 모두 실행하셧으면 루트 폴더에 ngx_pagespeed라는 폴더가 생성되었을 겁니다.

Nginx에 Pagespeed module 추가

cd ~/new/nginx_source/nginx-1.8.0/debian/
nano rules

나노편집기로 rules파일을 열면 엔진엑스의 다양한 버전(?)을 확인하실 수 있습니다. Light, Full, Extra등 4가지의 버전으로 나뉘어져 있는데요, 저의 경우에는 Full 버전으로 설치했습니다. 그렇기 때문에 Full버전의 안에만 모듈을 추가하였으며, 다른 버전을 사용하고 싶으시다면 그 버전에 아래의 명령어를 추가하시면 됩니다.

Image 441
rules 파일
--add-module=/root/ngx_pagespeed/ngx_pagespeed-release-1.9.32.10-beta \

위의 명령어가 Pagespeed module을 추가하는 방법인데요, 위 명령어를 $(common_configure_flags) \ 아래에 추가하시면 됩니다.

추가하셧다면 아래의 명령어를 입력해 엔직엑스를 빌드합니다. 약간의 시간이 지난 후에 nginx_source 폴더로 이동하면 방금 빌드한 엔직엑스 파일이 몇 개 생성된걸 보실 수 있습니다.

cd ~/new/nginx_source/nginx-1.8.0/
dpkg-buildpackage -b

 

엔진엑스 설치

cd ~/new/ngix_source/
 dpkg -i nginx-common_1.8.0-1+trusty1_all.deb
 dpkg -i nginx-full_1.8.0-1+trusty1_amd64.deb

이제 위의 명령어를 통해 Nginx를 설치하시면 됩니다. 여기서 주의하실 점은 파일명이 dbg가 포함된 파일로 설치하시면 안됩니다.

 

최종 설정

이제 엔진엑스의 설치가 다 끝났습니다. 나머지는 페이지스피므 모듈을 활성화 시키는 작업이 남았습니다. 아래의 명령어를 순서대로 입력해주세요. Pagespeed Module에서 사용할 캐쉬 폴더를 만들어 줍니다.

mkdir -p /var/ngx_pagespeed_cache
chown -R www-data:www-data /var/ngx_pagespeed_cache

그리고 아래의 명령어로 Nginx의 설정파일을 연 다음에, 페이지스피드 활성화를 시켜주시면 됩니다.

nano /etc/nginx/nginx.conf
pagespeed on;
 pagespeed FileCachePath /var/ngx_pagespeed_cache;
Image 460
http{…. }란 안에 넣으시면 됩니다.

 

구동 확인

Image 459

service nginx restart
curl -I -p http://localhost|grep X-Page-Speed
2016-03-03 3:40:57

이 게시글이 도움이 되셨나요?

답글 남기기

댓글 정책 : 저희 기사를 읽고 의견 및 피드백을 제공해 주시는것에 대해 정말 감사합니다. 모든 댓글은 수동으로 검토되며, 스팸으로 간주되거나 홍보를 위한 댓글은 삭제됩니다.