본문으로 건너뛰기
  1. Posts/

Nginx 소스로 부터 빌드하기

·
Linux Nginx 서버 가이드
작성자
hw5e
page.hw5e.cc
목차

보통 패키지 관리자를 통해 설치하겠지만 경우에 따라서 nginx를 직접 빌드 해야할 때가 있다.

소스 다운로드
#

https://nginx.org/en/download.html
nginx 다운로드 페이지에 이름이 nginx-버전 인 파일을 받으면 된다. Github 저장소에서도 받을 수 있다.

빌드 의존성 설치
#

Nginx를 빌드하는데 필요한 것은 대충

  • C컴파일러 (GCC, Clang 등)
  • make
  • pcre 라이브러리
  • openssl
  • zlib

정도가 필요하다.

우분투에서는 이정도의 패키지를 설치하니 빌드가 되었다.

sudo apt install gcc make libssl-dev zlib1g-dev libpcre3-dev

레드햇 계열 운영체제에서는 이렇게 될 것이다.

sudo dnf install gcc make openssl-devel pcre-devel zlib-devel 

컴퓨터마다 더 필요할 수도 있고 덜 필요할 수도 있으니 다음과정의 configure에서 문제 생기면 그걸 보고 찾아서 설치하면 된다. 패키지 관리자를 사용하지 않는 경우를 설명한 글

빌드
#

소스 디렉토리에서

./configure

를 하면 빌드에 필요한 것들이 있는지 확인하고 기본값을 기준으로 자동으로 구성된다. 반드시 필요한 파일이 없으면 에러가 나니 에러를 보고 필요한 것을 설치하면 된다.

  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"

출력 내용을 대략적으로 보면 설치될 경로나 관련 파일들의 이름과 경로를 확인할 수 있다.

일단 기본값을 기준으로 패키지 관리자를 통해 설치하는 것과의 차이점은 설정파일의 경로 서비스를 수동으로 만들어줘야 함

configure 명령을 실행할 때 옵션을 붙여주면 저 설정을 바꿀 수 있는데 설정 특정 모듈을 포함하거나 제거하고 빌드 할 수도 있고 nginx관련 파일들의 경로나 이름을 바꿀 수 있다.

예를 들면 nginx를 루트 권한으로 실행하는 이유가 루트권한 으로 접근해야하는 /etc/nginx/에 있는 파일들 때문인데 ./configure --prefix=/home/사용자/nginx 정도를 해주면 루트권한 없이 실행 가능한 nginx를 만들 수도 있다. 그리고 보통 패키지 관리자를 사용해서 설치되는 nginx는 설치 경로를 /usr/sbin/nginx 설정 파일을 /etc/nginx로 설정하고 빌드한 것이라고 볼 수 있다.

모든 옵션은 nginx 공식 문서(제목은 Building nginx from Sources 라면서 configure에 관한 설명밖에 없다.)에서 확인할 수 있다.

make         #빌드
make -j12    #멀티스레드로 빌드
make install #설치

j옵션을 붙이면 뒤의 숫자만큼 멀티스레드로 빌드해서 빌드 속도를 빠르게 할 수 있다.

Reply by Email