Ubuntu nginx 사용하기

Table of Contents

nginx 설치

패키지 업데이트

sudo apt update

nginx 설치

sudo apt install nginx



방화벽 설정

UFW(Uncomplicated Firewall)는 Ubuntu 및 Debian 기반 시스템에서 제공되는 방화벽 관리 도구

sudo ufw app list

Nginx Full: HTTP와 HTTPS를 모두 허용.
Nginx HTTP: HTTP 트래픽만 허용.
Nginx HTTPS: HTTPS 트래픽만 허용.
OpenSSH: SSH 원격 접속 허용.


sudo ufw allow 'Nginx Full'



방화벽 설정 상태 확인

sudo ufw status


활성이 아니라면 아래 명령어 사용

sudo ufw enable


불필요하게 방화벽 규칙이 추가되었을 때 제거 방법

sudo ufw status numbered

위 명령어를 사용하면 번호가 나옴

sudo ufw delete [번호]



nginx 상태 확인

systemctl status nginx

위 화면에서 나가기 :wq or ctrl + c



nginx 기본 설정 경로 및 설정 파일 찾기

운영 체제 기본 경로
Ubuntu/Debian: /etc/nginx/nginx.conf
CentOS/Red Hat: /etc/nginx/nginx.conf
macOS (Homebrew): /usr/local/etc/nginx/nginx.conf
Custom Build: /usr/local/nginx/conf/nginx.conf


찾기 명령어

sudo find / -name "nginx.conf"


sudo nginx -t



서버 블록 작성

Nginx 서버 블록은 Nginx 웹 서버에서 도메인 및 요청 처리 방식을 정의하는 설정 단위. 이를 통해 서로 다른 도메인이나 서브도메인에 대해 별도의 설정을 적용

Ubuntu 및 Debian: /etc/nginx/sites-available/
CentOS 및 RHEL: /etc/nginx/conf.d/
macOS (Homebrew): /usr/local/etc/nginx/conf.d/
Windows: 설치 디렉토리\conf.d\


파일 생성

sudo vi /etc/nginx/sites-available/example.com

파일 작성

server {
    listen 80;
    server_name example.com;

    root /var/www/example;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

server: Nginx에서 하나의 서버 블록(Server Block)을 정의

listen: Nginx가 요청을 수신할 포트를 정의

  • 브라우저에서 http://example.com 요청이 들어오면 이 블록이 요청을 처리

server_name: 이 서버 블록이 처리할 도메인 이름을 지정합니다.

  • example.com으로 요청된 트래픽만 이 서버 블록이 처리합니다.
  • 와일드카드(*.example.com)나 정규식으로 여러 도메인을 처리할 수도 있습니다.

root: 요청된 정적 파일을 제공할 웹 루트 디렉토리를 설정합니다.

  • 예: http://example.com/index.html 요청이 들어오면 /var/www/example/index.html 파일을 반환합니다.

index: 기본적으로 반환할 인덱스 파일을 지정합니다.

location: 요청된 URL 경로(여기서는 /)에 대한 처리 방법을 정의합니다.

  • 슬래시(/)는 루트 경로를 의미하며, 이 블록은 모든 요청에 기본적으로 적용됩니다.

try_files $uri $uri/ =404;: 요청된 파일이나 디렉토리가 존재하는지 확인하고, 없으면 404 오류를 반환합니다.



서버 블록 활성화

심볼릭 링크 설정

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com


심볼릭 링크를 잘못 설정할 수도 있는데

sudo nginx -t # 심볼릭 링크 잘못 설정되었으면 failed 메시지 나옴

연결 확인

ls -l /etc/nginx/sites-enabled/


example이 잘못된 것을 확인할 수 있음, 심볼릭 링크 제거

sudo rm /etc/nginx/sites-enabled/example

설정 적용

sudo systemctl reload nginx



특정 폴더에 파일이 옴겨지지 않을때 – 권한 문제

example 파일은 생성했지만 호스팅 해야하는 파일들이 옴겨지지 않음 permission denied라 나옴


폴더 권한 설정

# 계정: sangmin 
sudo chown -R sangmin:sangmin /var/www/example


또 다른 방법으로는 www-data 그룹에 계정을 추가하는 방법

sudo usermod -aG www-data sangmin
sudo chown -R www-data:www-data /var/www/example
sudo chmod -R 775 /var/www/example
exit # 다시 로그인 하기 위해 나가기



Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x