본문 바로가기
컴퓨터/Linux

리눅스에서 Nginx 소스 컴파일 설치 완벽 가이드

by 토크미 2025. 4. 24.

리눅스에서 Nginx 소스 컴파일 설치 완벽 가이드

 

안녕하세요! 오늘은 리눅스 환경에서 Nginx를 소스 컴파일로 설치하는 방법을 친근하게 안내드릴게요. 처음 도전하는 분들도 쉽게 따라할 수 있도록 상황별 문제와 해결책까지 꼼꼼하게 정리했으니, 천천히 따라와 주세요.

준비: 필수 의존성 설치

Nginx를 컴파일하려면 몇 가지 필수 패키지가 필요해요.

  • gcc: 컴파일러
  • pcre: URL 재작성 등 정규식 기능 지원
  • zlib: 압축/해제 지원
  • openssl: 보안 통신(HTTPS) 지원

아래 명령어로 한 번에 설치할 수 있어요.

yum -y install gcc gcc-c++ autoconf automake make
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel make libtool
yum -y install openssl openssl-devel

문제 상황 & 해결

  • 만약 yum이 없거나 패키지 설치 중 오류가 난다면, 네트워크 연결 상태나 저장소 설정을 먼저 확인해 주세요.
  • apt를 사용하는 우분투 계열이라면 apt-get install로 바꿔주시면 됩니다.

사용자 및 그룹 생성

보안상 Nginx 전용 계정으로 실행하는 것이 좋아요.

groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M

문제 상황 & 해결

  • 이미 그룹이나 사용자가 있다면 에러가 날 수 있어요. 그럴 땐 useradd 대신 usermod로 그룹만 변경해도 됩니다.

Nginx 소스 다운로드 및 압축 해제

Nginx 공식 사이트에서 원하는 버전을 받아주세요.

wget https://nginx.org/download/nginx-1.25.0.tar.gz
tar -zxvf nginx-1.25.0.tar.gz
cd nginx-1.25.0

문제 상황 & 해결

  • wget이 없다면 yum install wget으로 설치해 주세요.
  • 압축 해제 중 에러가 난다면 파일이 정상적으로 다운로드됐는지 ls -lh로 확인해 보세요.

컴파일 환경 설정

설치 옵션을 지정해줍니다.

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nginx
옵션 설명
--prefix 설치 경로 지정
--user 실행 사용자 지정
--group 실행 그룹 지정
--with-http_stub_status_module 상태 정보 모듈 활성화
--with-http_ssl_module HTTPS 지원 활성화

문제 상황 & 해결

  • configure: error 메시지가 뜬다면, 의존성 패키지가 제대로 설치됐는지 다시 확인해 주세요.
  • 경로 권한 문제라면 sudo를 활용하거나, 권한을 조정해 주세요.

컴파일 및 설치

이제 본격적으로 빌드합니다.

make
make install

문제 상황 & 해결

  • 메모리 부족 에러가 날 경우, 서버의 메모리 상황을 free -h로 확인해 주세요.
  • make 중단 시, 로그를 잘 살펴보고 누락된 패키지가 없는지 확인해 주세요.

Nginx 운영 명령어

설치가 끝났다면 아래 명령어로 Nginx를 실행하고 관리할 수 있어요.

nginx 실행 화면

/usr/local/nginx/sbin/nginx           # 시작
/usr/local/nginx/sbin/nginx -s reload # 설정 재적용
/usr/local/nginx/sbin/nginx -s stop   # 강제 종료
/usr/local/nginx/sbin/nginx -s quit   # 안전 종료
ps -ef | grep nginx                   # 프로세스 확인
curl 127.0.0.1                        # 동작 테스트

 

nginx 동작 테스트

문제 상황 & 해결

  • 포트 충돌로 실행이 안 된다면, netstat -tuln | grep 80으로 사용 중인 포트를 확인하고, 설정 파일에서 포트를 변경해 주세요.
  • 실행 후 접속이 안 된다면, 방화벽 설정(firewalld, iptables)을 확인해 주세요.

시스템 서비스로 등록하기

Nginx를 시스템 서비스로 등록하면 부팅 시 자동 실행이 가능해요.

  1. 서비스 파일 작성
vi /usr/lib/systemd/system/nginx.service

아래 내용을 입력해 주세요.

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  1. 서비스 등록 및 실행
systemctl enable nginx.service
systemctl start nginx.service
systemctl status nginx.service

문제 상황 & 해결

  • systemctl 명령어가 없으면, 시스템이 systemd 기반인지 확인해 주세요. 만약 init 기반이라면 /etc/init.d/ 스크립트를 직접 만들어야 해요.
  • 서비스 상태가 활성화되지 않는다면, 로그(journalctl -xe)를 확인해 원인을 파악해 주세요.

마치며

이렇게 리눅스에서 Nginx를 소스 컴파일로 설치하는 전 과정을 살펴봤어요. 설치 중 자주 마주치는 문제와 그 해결책도 함께 정리해봤으니, 차근차근 따라 하시면 누구나 성공할 수 있습니다. 혹시 더 궁금한 점이 있다면 언제든 질문해 주세요!