Debian 11에서 Google Pagespeed 모듈로 Nginx를 설정하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 데비안 11(불스아이)
  • 데비안 7(Wheezy)

이 페이지에서

  1. 전제 조건
  2. 패키지 종속성 설치
  3. 현재 Nginx 버전 확인\n
  4. Nginx 및 Pagespeed 소스 코드 다운로드
  5. Nginx Pagespeed 모듈 컴파일
  6. 현재 Nginx 설치에 Pagespeed 모듈 추가\n
  7. 가상 호스트에 Nginx Pagespeed 모듈 추가\n
  8. Nginx Pagespeed 모듈 확인\n
  9. 결론

Google Pagespeed 모듈은 Nginx 및 Apache 웹 서버에서 웹사이트를 최적화하기 위한 오픈 소스 모듈입니다. Pagespeed 모듈은 Nginx 및 Apache 웹 서버와 함께 설치되는 서버 수준 모듈입니다.

Pagespeed 모듈은 웹사이트의 정적 파일을 최적화하여 웹사이트의 성능과 속도를 향상시킵니다. Pagespeed 모듈은 웹사이트의 이미지를 최적화하고 HTML, CSS 및 JavaScript와 같은 정적 파일을 축소하고 파일 캐싱을 최적화합니다.

이 튜토리얼에서는 최신 Debian 11 Bullseye에서 Nginx Pagespeed 모듈을 빌드하는 방법을 보여줍니다. 이 가이드는 Nginx 모듈을 빌드하기만 하면 되기 때문에 현재 Nginx 설치에 적용할 수 있습니다.

전제 조건

시작하기 전에 다음 요구 사항을 충족하는지 확인하십시오.

  • 운영 체제: Debian 11 Bullseye
  • 루트 권한\n

이제 시작하겠습니다.

패키지 종속성 설치

먼저 Nginx 모듈을 컴파일하기 위한 종속 패키지를 설치합니다.

1. 아래의 apt 명령을 실행하여 시스템의 현재 리포지토리를 업데이트합니다.

sudo apt update

2. 다음으로 아래의 apt 명령을 사용하여 프로그램 컴파일을 위한 기본 패키지 종속성을 설치합니다.

sudo apt install curl dpkg-dev build-essential zlib1g-dev git libpcre3 git libpcre3-dev unzip uuid-dev -y

3. 그런 다음 Nginx 모듈을 컴파일하기 위한 빌드 종속성을 설치합니다.

sudo apt build-dep nginx -y

현재 Nginx 버전 확인

사용자 정의 Nginx Pagespeed 모듈을 빌드하려면 현재 Nginx 웹 서버가 Nginx 모듈을 빌드하는 데 사용할 동일한 버전의 Nginx 소스 코드를 유지하는지 확인하십시오.

1. 다음 명령을 실행하여 Nginx 버전을 확인합니다.

nginx -v

이 예에서 컴퓨터에 설치된 현재 Nginx 버전은 1.18.0입니다. 다음은 표시되는 유사한 출력입니다.

nginx version: nginx/1.18.0

선택적으로 시스템에 Nginx 패키지가 없으면 아래의 apt 명령을 사용하여 공식 Debian 저장소에서 설치합니다.

sudo apt install nginx -y

2. 다음으로 아래 명령을 사용하여 Nginx 버전에 대한 새 임시 환경 변수를 만듭니다.

export NG_VER=1.18.0

Nginx 및 Pagespeed 소스 코드 다운로드

이 단계에서는 Nginx 소스 코드와 Pagespeed 모듈을 서버에 다운로드합니다. 이 Nginx 소스 코드는 현재 Nginx 패키지와 동일한 버전을 갖습니다.

1. 새 프로젝트 디렉토리 /usr/src/nginx를 만들고 그 디렉토리로 이동합니다.

mkdir -p /usr/src/nginx; cd /usr/src/nginx

2. 이제 다음 명령을 실행하여 Nginx 소스 코드를 다운로드하고 압축을 풉니다.

wget http://nginx.org/download/nginx-$NG_VER.tar.gz
tar -xzvf nginx-$NG_VER.tar.gz

3. 다음으로 Nginx Pagespeed 모듈을 현재 디렉터리에 복제하고 프로세스가 완료되면 새 디렉터리 incubator-pagespeed-ngx가 표시됩니다.

git clone https://github.com/apache/incubator-pagespeed-ngx.git

4. incubator-pagespeed-ngx 디렉토리로 이동하고 Nginx Pagespeed 모듈의 안정적인 분기로 전환합니다.

cd incubator-pagespeed-ngx/
git checkout latest-stable

5. PSOL_BINARY_URL 파일을 확인하여 PSOL(페이지 최적화 라이브러리)의 다운로드 링크를 가져옵니다. 이 라이브러리는 Nginx Pagespeed 모듈에 필요합니다.

cat PSOL_BINARY_URL

아래와 비슷한 출력이 표시됩니다. 변수 $BIT_SIZE_NAME은 서버 아키텍처입니다.

wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz

6. 이제 서버 아키텍처 값으로 새 임시 환경 변수 BIT_SIZE_NAME을 생성합니다. 아래 예는 x64 또는 64비트 서버 아키텍처를 사용하고 있습니다.

export BIT_SIZE_NAME=x64

7. 이제 PSOL 소스 코드를 다운로드하고 압축을 풉니다.

wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz
tar -xzvf 1.13.35.2-$BIT_SIZE_NAME.tar.gz

이제 Nginx Pagespeed 모듈을 빌드할 준비가 되었습니다.

Nginx Pagespeed 모듈 컴파일

이 단계에서는 Nginx Pagespeed 모듈을 컴파일합니다. 결국 현재 Nginx 웹 서버에 적용할 수 있는 .so 형식의 Nginx 모듈을 얻게 됩니다.

1. 작업 디렉토리를 Nginx 프로젝트 디렉토리로 변경합니다.

cd /usr/src/nginx/nginx-$NG_VER

2. 다음 명령을 실행하여 Nginx 모듈 컴파일을 구성합니다. 이 명령은 또한 시스템 요구 사항을 확인하므로 오류가 없는지 확인하십시오.

./configure --with-compat --add-dynamic-module=../incubator-pagespeed-ngx

아래는 당신이 얻어야 할 결과입니다.

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

3. 다음으로 다음 명령을 사용하여 Nginx Pagespeed 모듈을 컴파일합니다.

make modules

이 명령은 시스템 CPU 및 메모리에 따라 다소 시간이 걸립니다.

4. 컴파일 프로세스가 완료되면 Pagespeed 모듈을 objs/ngx_pagespeed.so로 사용할 수 있습니다. 다음 명령을 사용하여 모듈을 확인하십시오.

ls objs/ngx_pagespeed.so

아래와 같이 Nginx Pagespeed 모듈 ngx_pagespeed.so를 가져와야 합니다.

-rwxr-xr-x 1 root root 19M Dec  8 21:44 objs/ngx_pagespeed.so

현재 Nginx 설치에 Pagespeed 모듈 추가

이 단계에서는 현재 Nginx 설치에 Nginx Pagespeed 모듈을 구현합니다. 이를 위해 Pagespeed 모듈 ngx_pagespeed.so를 Nginx 모듈 디렉터리에 복사하고 새 구성을 추가하여 활성화합니다.

1. ngx_pagespeed.so 모듈을 기본 Nginx 모듈 디렉토리 /usr/share/nginx/modules에 복사합니다.

cp /usr/src/nginx/nginx-$NG_VER/objs/ngx_pagespeed.so /usr/share/nginx/modules

2. Pagespeedd 모듈을 활성화하기 위한 새 구성 파일을 만듭니다.

nano /usr/share/nginx/modules-available/ngx-pagespeed.conf

다음 구성을 복사하여 붙여넣습니다.

load_module modules/ngx_pagespeed.so;

구성을 저장하고 종료합니다.

3. /etc/nginx/modules-enabled/ 디렉토리에 symlink 구성 ngx-pagespeed.conf를 생성하여 Pagespeed 모듈을 활성화합니다.

ln -s /usr/share/nginx/modules-available/ngx-pagespeed.conf /etc/nginx/modules-enabled/70-ngx-pagespeed.conf

4. 다음으로 /etc/nginx 디렉터리에 새 구성 pagespeed.conf를 만듭니다.

nano /etc/nginx/pagespeed.conf

다음 구성을 복사하여 붙여넣습니다.

pagespeed on;

# Needs to exist and be writable by nginx.  Use tmpfs for best performance.
pagespeed FileCachePath /var/ngx_pagespeed_cache;

# Ensure requests for pagespeed optimized resources go to the pagespeed handler
# and no extraneous headers get set.
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
  add_header "" "";
}
location ~ "^/pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }

구성을 저장하고 종료합니다.

5. 다음으로 Nginx Pagespeed 캐시를 저장할 새 디렉터리를 만들고 Nginx www-data 사용자가 이 디렉터리에 쓸 수 있는지 확인합니다.

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

이제 Nginx Pagespeed 모듈이 현재 Nginx 설치에 추가되었습니다. 다음 단계로 이동하여 가상 호스트(서버 블록)에서 활성화하십시오.

가상 호스트에 Nginx Pagespeed 모듈 추가

Pagespeed 모듈을 가상 호스트에 활성화하려면 include 옵션을 사용하여 가상 호스트 구성 파일에 pagespeed.conf 구성을 추가하십시오.

1. 이 예에서는 가상 호스트 default에 Pagespeed 모듈 활성화를 추가합니다. nano 편집기를 사용하여 /etc/nginx/sites-available/default 구성을 편집합니다.

nano /etc/nginx/sites-available/default

/etc/nginx/pagespeed.conf를 포함하는 구성을 추가합니다. 아래와 같이 server {...} 섹션 내부.

server {

  .....
  ....

  include /etc/nginx/pagespeed.conf;
}

구성을 저장하고 종료합니다.

2. Nginx 구성을 확인하고 오류가 없는지 확인합니다. 그런 다음 Nginx 서비스를 다시 시작하여 새 구성을 적용하십시오.

nginx -t
sudo systemctl restart nginx

Nginx Pagespeed 모듈 확인

Nginx Pagespeed 모듈의 설치 및 구현을 확인하려면 curl 명령을 사용하여 Nginx 웹 서버의 HTTP 헤더를 가져오거나 웹 브라우저에서 Inspect 요소를 사용할 수 있습니다.

1. 아래 curl 명령을 실행하여 Nginx 웹 서버의 HTTP 헤더를 가져옵니다.

curl -I https://domain.com/

이제 아래와 같이 출력되어야 합니다. 추가 헤더 섹션 X-Page-Speed는 Nginx Pagespeed 모듈이 활성화되었음을 의미합니다.

HTTP/1.1 200 OK
Server: nginx/1.18.0
Content-Type: text/html
Connection: keep-alive
Date: Wed, 01 Dec 2021 22:02:52 GMT
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache

2. 웹 브라우저에서 확인하려면 도메인 이름을 방문하여 페이지를 마우스 오른쪽 버튼으로 클릭한 다음 검사 메뉴를 선택합니다.

웹 페이지를 다시 로드하면 아래와 같이 자세한 HTTP 헤더가 표시됩니다.

결론

축하합니다! Nginx Pagespeed 모듈을 컴파일하고 현재 Nginx 설치에 구현하는 방법을 배웠습니다. 가상 호스트 구성에 pagespeed.conf 구성을 포함하기만 하면 됩니다.