본문 바로가기
목차
WebApp

[Nginx] 설치 및 설정 추가.

by ds31x 2023. 9. 8.
728x90
반응형

https://namu.wiki/w/NGINX

Nginx 설치

sudo apt update
sudo apt -y install nginx
  • 2022.09.11 기준 Ubuntu 22.04 LTS에선 nginx version: nginx/1.18.0 (Ubuntu) 가 설치된다.
  • 2025.09.07 기준으로도 동일.

 

다음을 통해 부팅시 자동으로 실행되도록 등록한다.

sudo systemctl enable nginx
    • 서비스가 부팅 시 자동으로 실행되도록 등록합니다.
    • /etc/systemd/system/multi-user.target.wants/ 같은 곳에 심볼릭 링크가 생김.
      • 여기에 심볼릭 링크가 있으면, 장비가 multi-user.target으로 진입할 때 해당 서비스가 자동으로 실행됨.
      • multi-user.target
        • 장비가 전통적인 runlevel 3 로 시작할 때 진입 (network 포함, console login, gui 없음)
        • 대부분의 서버가 이상태로 부팅됨 (네트워크 서비스 + 다중사용자 로그인 가능한 정상 서버 동작 모드)
      • sudo systemctl disable nginx : 해당 디렉토리에서 심볼링 링크 삭제.
  • 단, enable 만 해서는 지금 당장은 실행되지 않음: sudo systemctl enable --now nginx (등록과 시작을 같이)

Nginx 설정 추가하기.

/etc/nginx/sites-available/ 디렉토리에 추가할 설정파일을 만든다.

  • 기본으로 default 파일이 존재 : 기본 설정이 작성되어 있음 (port 80을 사용).
  • 이를 수정하는 방법도 가능하나 개인적으로는 다른 port를 사용하는 방식으로 설정을 추가하는 것을 선호.
  • sudo vi /etc/nginx/sites-available/<youfile_name>.conf

단, 주의할 것은

  • /etc/nginx/sites-available/ 디렉토리는 설정을 저장하는 곳으로,
  • 해당 디렉토리 내의 설정 파일들은 Nginx에 반영이 이루어지지 않는다.

Nginx에 반영이 되도록 하기 위해서는 /etc/nginx/sites-enabled/ 디렉토리로

  • 설정 파일을 복사하거나 또는
  • 대상 파일의 심볼릭 링크를 생성한다.
❯ sudo ln -sf /etc/nginx/sites-available/<새설정파일> /etc/nginx/sites-enabled/<새설정파일>

설정 체크.

다음의 명령어로 nignx의 설정에 문제 없는지 확인해야 한다.

❯ sudo nginx -t

오류가 없다면 다음과 같은 메시지를 확인할 수 있다.

❯ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

 

반드시 sudo를 사용해야 함. 일반 사용자는 log file과 PID파일을 열 권한이 없음:

❯ nginx -t
nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
2025/09/07 04:31:54 [warn] 5817#5817: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
2025/09/07 04:31:54 [emerg] 5817#5817: open() "/run/nginx.pid" failed (13: Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed

 

변경된 설정만 반영하려면 : sudo systemctl reload nginx 

  • 안정적이고 무중단임.

Nginx 재시작

변경된 설정이 적용되도록 Nginx를 재시작시킨다.

  • 끄고나서 재시작이라
  • 프로세스가 꼬인 경우 등에서도 잘 동작 (잠시 서비스가 중단됨
❯ sudo systemctl restart nginx

상태 확인 및 에러 및 접속 로그 확인.

다음의 명령어로 nginx의 현재 상태를 확인할 수 있음.

❯ systemctl status nginx.service

 

로그 확인

  •  /var/log/nginx/error.log의 로그를 통해 에러를 확인 가능함.
  • 접속 로그는 기본적으로 다음에서 확인 가능: /var/log/nginx/access.log

같이보면 좋은 자료들

2023.08.01 - [WebApp] - [WebApp] NginX 설정 관련 .

 

[WebApp] NginX 설정 관련 .

nginx.conf 파일을 이용하여 설정한다. 기본 용어 directives란? nginx에서 각 line에서 처음 등장하는 word를 directive라고 부르며, 이들은 각각 nginx가 특정 설정을 담당함. directives는 크게 두 종류로 나뉨.

ds31x.tistory.com

 

728x90