SSAMKO의 개발 이야기

[django] systemd, gunicorn, nginx 서버 배포하기 본문

Django

[django] systemd, gunicorn, nginx 서버 배포하기

SSAMKO 2021. 1. 12. 07:16
반응형

1. 가상환경 실행

2. pip install gunicorn

3. manage.py가 있는 폴더로 이동

4. gunicorn 설정

gunicorn --bind 0.0.0.0:8000 myProject.wsgi:application

myProject에는 본인의 project이름을 넣는다.

 

스크립트 생성

/etc/systemd/system/gunicorn.service

[Unit]
Description=gunicorn
After=network.target

[Service]
User=<user.name>
Group=www-data
WorkingDirectory=/path/to/yourProject
ExecStart=/path/to/yourProject/venv/bin/gunicorn \
        --workers 3 \
        --bind unix:/path/to/yourProject/gunicorn.sock \
        yourApp.wsgi:application

[Install]
WantedBy=multi-user.target

 

5. nginx 설치

apt-get update
apt-get install nginx

80포트 개방 (GCP는 아래 링크 참고)

2021/01/11 - [GCP, AWS] - [GCP] 방화벽 규칙 만들기

ufw allow 80/tcp

ip로 접속했을때, 아래와 같은 화면이 보인다면 nginx설치와 80포트 개방이 제대로 되었다는 것

6. nginx conf

/etc/nginx/sites-available/yourProject

server {
        listen 80;
        server_name 128.128.128.1;

        location / {
                include proxy_params;
                proxy_pass http://unix:/home/yourProject/gunicorn.sock;
        }
}

연결

sudo ln -s /etc/nginx/sites-available/yourProject  /etc/nginx/sites-enabled

위 경로는 둘 다 절대경로를 넣어주어야 한다. 

nginx -t

설정에 문제가 없는지 검사한 후 문제가 없다면, 재기동 한다.

systemctl restart nginx

7. 전체 방화벽 해제

ufw allow 'Nginx Full'
반응형
Comments