-
Nginx + uWSGI 연동 설정 | Ubuntu 서버 세팅, 이 순서대로 하면 끝 (13)Dev 2025. 4. 12. 09:00반응형
Nginx + uWSGI 연동 – Django 앱을 외부에 띄우는 마지막 연결 고리
이제 거의 다 왔다.
Django 프로젝트를 외부에서 접근 가능하게 만들려면, uWSGI가 처리한 요청을 Nginx가 잘 받아서 사용자에게 전달할 수 있어야 한다.
이번 글에서는 이 둘을 연결하는 과정을 정리해보자.
1. Nginx 설정 파일 수정
먼저 Nginx가 uWSGI 소켓과 Django 정적/미디어 파일을 잘 처리할 수 있도록 설정을 바꿔준다.
sudo vi /etc/nginx/sites-available/default
다음 내용을 입력한다 (※ server_name, alias 경로는 본인 환경에 맞게 조정):
server { listen 80; server_name tistory.com; charset utf-8; client_max_body_size 30M; access_log /var/log/nginx/tistory_access.log; error_log /var/log/nginx/tistory_error.log; location / { include /etc/nginx/uwsgi_params; uwsgi_pass unix:///run/uwsgi/tistory.sock; uwsgi_read_timeout 2000; } location /static/ { alias /home/USERNAME/tistory/staticfiles/; } location /media/ { alias /home/USERNAME/tistory/mediafiles/; } location = /elb-status { access_log off; return 200; } }
- server_name: 서버의 도메인 또는 공인 IP
- log: 프로젝트명에 맞춰 구분된 Nginx 로그 설정
- uwsgi_pass: uWSGI에서 사용하는 소켓 경로
- /static/ & /media/: Django의 정적(static) 및 미디어(media) 파일 경로
- elb-status: AWS ELB 헬스 체크용
2. Nginx 설정 반영 및 재시작
sudo systemctl daemon-reload sudo systemctl restart nginx
정상적으로 실행되었는지 상태를 확인한다:
sudo systemctl status nginx
마무리
여기까지 무사히 따라왔다면, 이제 Django 프로젝트는
uWSGI를 통해 실행되고, Nginx를 거쳐 외부 요청을 받을 준비가 끝난 상태다.서버 세팅의 마지막 퍼즐 조각을 맞춘 느낌이다.
이 순간을 위해 수많은 패키지를 설치하고, 방화벽을 열고, .ini 파일과 설정 파일을 줄곧 수정해왔다.
서버의 숨겨진 뒷단을 하나씩 열고, 직접 손으로 이어 붙이며 완성된 시스템은 그 자체로 하나의 창조물 같다.반응형'Dev' 카테고리의 다른 글
uWSGI 설치 & Emperor 설정 | Ubuntu 서버 세팅, 이 순서대로 하면 끝 (12) (0) 2025.04.11 Nginx 설치 (uWSGI 설정 후 연동 필요) | Ubuntu 서버 세팅, 이 순서대로 하면 끝 (11) (0) 2025.04.10 PostgreSQL 설정 | Ubuntu 서버 세팅, 이 순서대로 하면 끝 (10) (0) 2025.04.09 Git & GitHub 설정 | Ubuntu 서버 세팅, 이 순서대로 하면 끝 (9) (0) 2025.04.08 Poetry 설치 | Ubuntu 서버 세팅, 이 순서대로 하면 끝 (8) (0) 2025.04.07