본문으로 건너뛰기

Linux에 OpenResty 소스 빌드하여 설치하기

· 약 3분

아래 설치 방법은 Nginx 설치 시에도 동일하게 적용할 수 있습니다. 단, ./configure 단계에서 --with-luajit 옵션만 제외하면 됩니다. 일반적으로 Nginx가 아닌 OpenResty를 선택하는 이유는 LuaJIT을 사용하기 위해서입니다.

필수패키지 사전설치

OpenResty는 Nginx를 기반으로 만들어져 있어, 설치 전 Nginx가 필요로 하는 패키지를 사전에 설치해야 합니다.

  • PCRE - 정규표현식 library,Nginx Core 및 Rewrite모듈에서 사용.

  • zlib - 데이터 압축 library,Gzip 모듈에서 사용.

  • OpenSSL - SSL기능지원

  • GCC - GNU 프로젝트의 오픈 소스 컴파일러 컬렉션

CentOS, RHEL,Rocky, and Fedora
sudo yum install gcc make pcre pcre-devel zlib zlib-devel openssl openssl-devel
Debian기반의 Linux
sudo apt-get install make openssl-devel liblz-dev libpcre3
소스 빌드 및 설치
소스 다운로드

최신버전은 공식홈페이지에서 확인:https://openresty.org/en/download.html

# openresty 소스 다운로드하여 압축 풀어줌
wget https://openresty.org/download/openresty-1.19.9.1.tar.gz
tar -zxvf openresty-1.19.9.1.tar.gz

# 필요한 모듈 다운로드 (필요한 제3방 모듈 없으면 skip)
wget https://hg.nginx.org/njs/archive/9578cc729205.tar.gz
tar -zxvf 9578cc729205.tar.gz
mv njs-9578cc729205/ njs && mv njs openresty-1.19.9.1/bundle/
OpenResty및 제3방모듈 빌드

이 단계에서는 표준 Nginx ./configure 옵션을 모두 사용할 수 있음. --add-module=PATH 혹은 --add-dynamic-module=PATH 옵션으로 제3방모듈 설치가능.

# Makefile생성
./configure --prefix=/app/openresty \
--with-luajit \
--with-http_ssl_module \
--with-http_auth_request_module \
--add-dynamic-module=./bundle/njs/nginx \
--modules-path=/app/openresty/nginx/modules

# 소스 빌드 및 설치
sudo make && make install
systemd 유닛 파일 생성
sudo vim /lib/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/app/openresty/nginx/logs/nginx.pid
ExecStartPre=/app/openresty/nginx/sbin/nginx -t
ExecStart=/app/openresty/nginx/sbin/nginx
ExecReload=/app/openresty/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

# 서비스 시작 및 활성화 
systemctl --now enable nginx
# 서비스 상태 확인
systemctl status nginx