🧐 🤔 컴퓨터 옆 메모장 🙄 😙

Nginx - Hello World

2024. 11. 7. Kim Evergood이가 씀

Nginx 설치

공식문서

우분투(Debian 계열)에서

sudo apt install nginx

Amazon Linux(RHEL 계열)에서

sudo yum install nginx

실행

일반실행으로 실행

nginx 실행파일을 실행.
이후 명령은 이걸 실행한 사용자와 같은 사용자로 실행한다.(그런데 권한 때문에 귀찮아서 그냥 sudo로만 하게 된다….)

nginx
  • nginx -s stop — 즉시 종료
  • nginx -s quit — 현재 처리중인 요청들이 끝난 뒤 종료
  • nginx -s reload — 설정파일 다시 가져오기
  • nginx -s reopen — 로그파일 다시열기
서비스로 시작
sudo systemctl start nginx
  • 자동으로 시작되도록 설정: sudo systemctl enable nginx
  • 재시작: sudo systemctl restart nginx
  • 종료: nginx -s quit
로그파일

실행 후 /var/log/nginx 경로에 access.log, error.log 파일이 생기는군요.

설정

설정파일

apt, yum 등의 패키지 관리자를 통해 설치한 경우 /etc/nginx/nginx.conf 위치에 메인 설정파일이 있다.

/etc/nginx/sites-available/default: 서버블록 설정파일이다. 우분투에서 Nginx를 설치해보니 기본적으로 메인 설정파일에서 분리되어 있다. 조금 찾아보니 각 server 블록을 분리해서 별도 디렉토리에 보관하는 게 일반적인 관습인 듯하다. 그런데 Amazon Linux에서도 깔아봤는데 이거 없던데. 왜 다른지 모름.

vi, nano 등의 편집기로 설정파일을 편집하자.

잇는글: Nginx 설정

예시

정적 콘텐츠 제공 서버

특정 디렉토리 하위의 파일들을 제공하도록 설정

디렉토리

/data/www 경로에 예를 들어 HTML 파일들을 배치
/data/images 경로에 예를 들어 이미지 파일들을 배치

설정파일

설정 파일 안의 server 블록 안에 아래와 같이 location 블록 추가

server {
    ...

    location / { # 1
        root /data/www;
    }

    location /images/ { # 2
        root /data;
    }
}

이제 /images/로 시작하는 경로의 요청은 #2에 매칭, 그밖의 요청들은 #1에 매칭된다.

Hello World

루트 페이지에서 index.html 파일을 불러오도록 설정한다.

index.html

/var/www/html 경로에 index.html 파일을 만든다. 간단히 Hello World라고만 적힌 문서이다.

sudo mkdir -p /var/www/html
echo '<!DOCTYPE html><html><head><title>Hello World</title></head><body><h1>Hello, World!</h1></body></html>' | sudo tee /var/www/html/index.html
설정파일

설정 파일 안의 location / 블록 안을 아래와 같이 수정

server {
    ...

    location / {
        root /var/www/html;
        index index.html;
    }
}

확인

실행 후 브라우저로 해당 주소에 접근한다.

참고

728x90