Dev
Nginx + uWSGI 연동 설정 | Ubuntu 서버 세팅, 이 순서대로 하면 끝 (13)
KingdomPillar
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 파일과 설정 파일을 줄곧 수정해왔다.
서버의 숨겨진 뒷단을 하나씩 열고, 직접 손으로 이어 붙이며 완성된 시스템은 그 자체로 하나의 창조물 같다.
반응형