🧐 🤔 컴퓨터 옆 메모장 🙄 😙

Nginx - Hello World

2024. 11. 7. Kim Evergood이가 씀

1: Nginx 설치

공식문서

우분투(Debian 계열)에서

sudo apt install nginx

Amazon Linux(RHEL 계열)에서

sudo yum install nginx

2: 실행

일반실행으로 실행

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 파일이 생기는군요.

3: 설정

3-1: 설정파일

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

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

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

잇는글: Nginx 설정

4: 예시

4-1: 정적 콘텐츠 제공 서버

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

디렉토리

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

설정파일

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

server {
    ...

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

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

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

4-2: 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;
    }
}

5: 확인

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

6: 참고

728x90