본문 바로가기

Django/따라하는 장고

38. Nginx(엔진엑스)

웹서버는 브라우저의 정적 페이지 요청을 처리하고 동적 페이지 요청은 WSGI 서버를 호출하는 역할을 한다. 이번엔 파이보가 사용할 웹 서버인 Nginx 를 설치하고 적용해보자.

 

그리고 /etc/nginx/sites-available 디렉토리로 이동하자. 이 디렉토리는 Nginx의 설정 파일들이 위치한 디렉토리다. 최초 설치시에는 default 라는 설정파일만 존재한다. 해당 위치로 이동 후 sudo vi mysite 파일을 생성해 작성한다.

listen 80 은 웹 서버를 80포트로 서비스한다는 의미이다. HTTP 프로토콜의 기본포트는 80이다. 이제 http://고정ip:8000 대신 포트를 생략해 http://고정ip 만으로 접속할 수 있다.

server_name 에는 고정 ip 를 등록한다.

location /static 은 종적 파일에 대한 설정으로 /static 으로 시작되는 url 요청은 엔진엑스가 /home/ubbuntu/projects/mysite/static 디렉토리의 파일을 읽어서 처리한다는 설정이다.

location / 은 location /static 에서 설정한 것 이외의 모든 요청은 구니콘이 처리하도록 하는 설정이다. proxy_pass 는 동적 요청이 발생하면 해당요청을 구니콘의 유닉스 소켓으로 보내라는 설정이다.

한마디로 /static 으로 시작되는 url 은 엔진엑스가 나머지 url 은 구니콘이 처리하게 된다.

이제 작성한 mysite 파일을 Nginx 가 환경파일로 읽을 수 있도록 설정하자.

 

먼저 cd /etc/nginx/sites-enabled 디렉토리로 이동하자. 이 디렉토리는 site-available 디렉토리에 있는 설정 파일 중에서 활성화 하고 싶은 것을 관리하는 디렉토리 이다. ls 명령을 하면 현재 default라는 설정 파일만 링크되어있는데 default 를 삭제하고 mysite 파일을 링크하도록 변경해야 한다. 

sudo ln -s /etc/nginx/sites-available/mysite 로 링크한후 ls 로 확인해보면 링크 되어있다.

 

Nginx 설치할 때 자동으로 실행되므로 앞에서 작성한 엔진엑스 설정을 적용하려면 엔직엑스를 다시시작해야한다.

sudo systemctl restart nginx 를 해주자.

이제 http://고정ip 로 접속을해보자. 이제 주소 뒤에 :8000 을 안해도 된다.

정상적으로 잘 접속된다.

'Django > 따라하는 장고' 카테고리의 다른 글

40. DEBUG(디버그)  (0) 2022.12.13
39. 서버관리자  (0) 2022.12.12
37. Gunicorn(구니콘)  (0) 2022.12.09
36. WSGI(위스키)  (0) 2022.12.09
35. settings.py 분리  (0) 2022.12.05