34 Nginx / uWsgi / Django 연결하기
34.1 collectstatic - 정적 파일 관리
웹서버에서 관리할 정적파일 경로 설정이 필요합니다.
로컬 환경으로 가서 base.py 변경 과 collectstatic 명령어을 통해
static 파일을 분리하고 하고 서버에 반영하겠습니다.
collectstatic 명령을 사용하면 base_dir 위치에
staticfiles 디렉토리가 생성됩니다.
collectstatic은 프로젝트내 흩어져 있는 js, image, css 파일등를 모아
staticfiles 디렉토리로 수집하는 기능을 합니다.
python manage.py collectstatic
34.2 uWSGI 설정 변경 - Unix socket
uWSGI DJango 셋팅 및 구동하기에서
uWsgi는 설치 및 장고서버 실행을 했었습니다.
오버헤드가 적은 Unix 소켓으로 연결하는 방식으로 변경하겠습니다.
[uwsgi]
chdir=/usr/local/share/pythonblog
module=config.wsgi:application
master=True
processes = 5
vacuum=True
max-requests=5000
daemonize=/usr/local/share/pythonblog/logs/uwsgi.log
socket = /usr/local/share/pythonblog/config/pythonblog.sock
chown-socket = root:root
chmod-socket = 666
34.3 Nginx설정 변경 - nginx.conf
Nginx access_log와 error_log 경로를 변경하여,
장고 어플리케이션이 있는 logs 디렉토리에 쌓이도록 하였습니다.
cd /etc/nginx
vi nginx.conf
access_log /usr/local/share/pythonblog/logs/access.log;
error_log /usr/local/share/pythonblog/logs/error.log;
34.4 Nginx설정 변경 - sites-available/default
sites-available 디렉토리에 default 파일이 있습니다.
default 수정 전 파일을 백업합니다.
편집기로 default 내용을 변경합니다.
현재는 도메인이 없으므로
cd /etc/nginx/sites-available
cp default default_20210219
vi default
#default
upstream django {
server unix:///usr/local/share/pythonblog/config/pythonblog.sock;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
#server_name www.xxxxxx.com
charset utf-8;
location / {
uwsgi_pass django;
include /etc/nginx/uwsgi_params;
}
location /static {
alias /usr/local/share/pythonblog/staticfiles;
}
}
nginx -t로 Nginx 변경내용을 적용 해야합니다.
(pythonblog_env) root@oc-webwas:/etc/nginx/sites-available# sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
(pythonblog_env) root@oc-webwas:/etc/nginx/sites-available#
34.5 정상구동 확인
Comments
Login:
j**47888@naver.com 2023.08.16 00:38:15
저도 badgate 떠요!!!!!!! 제발 알려주세요
h**404@naver.com 2023.06.07 23:54:14
안녕하세요! 블로그 정말 잘보고있습니다.
nginx와 uwsgi 를 따로따로 작동하는 경우, 잘 동작하는데 왜 같이 실행하려할 때 502 bad gateway가 나타날까요?..