리눅스 파이썬 글로벌 버전 설정
pyenv install 3.9.6
pyenv global 3.9.6
python -V
#=> Python 3.9.6
STATIC_ROOT = BASE_DIR / 'static'
STATIC_URL = '/static/'
MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_URL = '/media/'
ALLOWED_HOSTS = [
'리눅스 아이피'
]
Gunicorn 설치하기
pip install Django gunicorn
Gunicorn 잘되는지 테스트
gunicorn --bind 0.0.0.0:8000 {wsgi 있는 폴더이름}.wsgi:application
sudo nano /etc/systemd/system/gunicorn.service
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/{프로젝트상위폴더이름}
ExecStart={venv 경로}/bin/gunicorn \
--workers 3 \
--bind 127.0.0.1:8000 \
{wsgi 있는 폴더이름}.wsgi:application
[Install]
WantedBy=multi-user.target
기본 실행 명령어
sudo systemctl daemon-reload
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
sudo systemctl status gunicorn.service
sudo systemctl restart gunicorn
Nginx 설치및 세팅
sudo apt-get update
sudo apt-get install -y nginx
sudo nano /etc/nginx/sites-available/{wsgi 있는 폴더이름}
server {
listen 80;
server_name 3.36.78.222;
location /static {
root /home/ubuntu/{프로젝트 최상위 폴더이름}/;
}
location /media {
root /home/ubuntu/{프로젝트 최상위 폴더이름}/;
}
location / {
include proxy_params;
proxy_pass http://0:8000;
}
}
nginx 디폴트 파일 지우기 (안될시)
rm -rf /etc/nginx/sites-enabled/default
문법검사
sudo nginx -t
# 링크 걸어 주기!
sudo ln -s /etc/nginx/sites-available/{wsgi 있는 폴더이름} /etc/nginx/sites-enabled
sudo systemctl restart nginx
아파치 서버 80번 포트 죽이기
sudo lsof -t -i tcp:80 -s tcp:listen | sudo xargs kill
Nginx 에러 로그 확인하기
tail -f /var/log/nginx/error.log
TIP
혹시 nginx permission 오류 발생시
nano /etc/nginx/nginx.conf
# 들어가서 user 값 변경
user 계정;