aws id 생성
EC2인스턴스 생성
DEBUG=False
해야 에러 내용 숨김. (+static파일 모아주는 게 안됌.) ALLOWED_HOSTS=["localhost", "내 ec2 instance의 address"
STATIC_URL과 STATIC_ROOT, MEDIA_URL과 MEDIA_ROOT 설정
(Linux) pip install gunicorn
sudo vim /etc/systemd/system/gunicorn.service
i=편집시작 esc=편집 끝 :wq저장 후 나가기
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/루트폴더이름
ExecStart=/home/ubuntu/루트폴더이름/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/ubuntu/루트폴더이름/프로젝트이름.sock 프로젝트이름.wsgi:application
[Install]
WantedBy=multi-user.target
```
- 루트폴더이름 = 말 그대로 프로젝트가 담겨있는 폴더
- 프로젝트이름 = django-admin startproject로 만든 프로젝트
- sudo systemctl enable gunicorn (instance 실행 시 자동실행)
-sudo systemctl start gunicorn 하여 실행 (sudo systemctl status gunicorn 하여 active 확인)
sudo apt install nginx
sudo vim /etc/nginx/sites-available/프로젝트이름 하여 위치 확인
i=편집시작 esc=편집 끝 :wq저장 후 나가기
server {
listen 80;
server_name 도메인 or ip;
location / {
include proxy_params;
proxy_pass http://unix:/home/ubuntu/루트폴더이름/프로젝트이름.sock;
}
(↓장고로 들어오는 static,media 요청을 nginx가 수행↓)
location /static {
root /home/ubuntu/루트폴더이름/;
}
location /media {
root /home/ubuntu/루트폴더이름/;
}
}
sites-available에 예비로 파일 생성 함
sudo ln -s /etc/nginx/sites-available/프로젝트이름 /etc/nginx/sites-enabled/
위 명령어로 예비파일을 복사해서 가져감
sudo nginx -t = 오타검사
sudo systemctl restart nginx = 재시작
sudo systemctl status nginx = 상태확인
이제 public address:8000/주소 가 아니라 그냥 public address/주소