nginx 설치와 server 블록 기본 구성하기

목차

nginx 저장소 선택과 정적 사이트의 server 블록을 구성하는 절차입니다. 원노트의 설치·기본 설정을 합쳤습니다. 배포판 제공 패키지와 nginx 공식 저장소 중 하나를 선택하고 서로 다른 출처를 섞어 업데이트하지 않습니다.

설치 후보 확인

현재 활성화한 저장소에서 버전과 패키지 출처를 확인합니다. 공식 저장소를 추가하는 경우에는 OS·버전·아키텍처에 맞는 지침과 GPG 서명 확인을 사용합니다. 모든 Red Hat 계열에 하나의 저장소 URL이 통한다고 가정하지 않습니다.

TERMINAL / CONFIG
dnf repolist
dnf list --showduplicates nginx
sudo dnf install nginx
nginx -v

기본 설정 구조

/etc/nginx/nginx.conf의 http 블록에서 conf.d/*.conf를 include하는지 확인합니다. user는 worker 프로세스 계정, worker_processes는 worker 수, worker_connections는 worker별 연결 한도입니다. 프록시의 업스트림 연결도 자원을 사용하므로 연결 한도가 곧 사용자 수와 같지는 않습니다.
/etc/nginx/conf.d/lieper.conf에 다음 server 블록을 추가합니다. 문서 경로와 읽기 권한을 먼저 준비합니다.

TERMINAL / CONFIG
server {
    listen 80;
    server_name blog.example.com;
    root /var/www/lieper;
    index index.html;
    access_log /var/log/nginx/lieper-access.log;
    error_log /var/log/nginx/lieper-error.log warn;
    location / {
        try_files $uri $uri/ =404;
    }
}

구문 검증과 반영

TERMINAL / CONFIG
sudo nginx -t
sudo nginx -T
sudo systemctl enable --now nginx
curl -I -H 'Host: blog.example.com' http://127.0.0.1/

이미 실행 중이면 구문 확인 후 systemctl reload nginx로 반영합니다. nginx -T는 전체 설정을 출력하므로 공유할 때 비밀 값이 없는지 확인합니다. 기존 Apache와 같은 포트를 쓰지 않는지, 기본 server 블록이 응답을 가로채지 않는지도 확인합니다.
프로세스 계정을 단순히 다른 이름으로 바꾼다고 보안이 확보되는 것은 아닙니다. 필요한 파일 권한과 SELinux 컨텍스트를 유지하고 TLS·공개 포트는 서비스 요구에 맞춰 추가합니다.
참고: https://nginx.org/en/linux_packages.html

웹 › nginx
nginx 목록