이번 예제는 아나콘다 라이브러리를 사용하는 가상환경의 웹 프로젝트를
Gunicorn과 Nginx와 연동하는 방법을 알아보겠습니다.
Django는 이전시간에 Anaconda를 이용해서 가상환경에서 설치를 했기 때문에 과정은 패스하겠습니다.
1. Gunicorn 설치 및 환경설정
conda install -c anaconda gunicorn
conda로 gunicorn 을 설치 합니다.
gunicorn --bind 0.0.0.0:8000 프로젝트명.wsgi:application
설치 후 위 명령어로 프로젝트가 실행되는지 확인합니다.
[실행 확인]
8000번 포트로 접속되는 것을 확인 할 수 있습니다.
다음은 데몬으로 설정하여 실행하는 방법을 진행해 보겠습니다.
vi /etc/systemd/system/gunicorn.service
위 명령어를 통해 설정파일을 만들어 진행하도록 하겠습니다.
[gunicorn.service 파일 내용]
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=root
Group=www-data
WorkingDirectory=/home/web/web #프로젝트 경로
ExecStart=/root/anaconda3/envs/web/bin/gunicorn --workers 30 --bind 0.0.0.0:8000 \
web.wsgi:application #아나콘다 가상환경 경로
[Install]
WantedBy=multi-user.target
위처럼 프로젝트 경로와 아나콘다 가상환경 경로를 작성해줍니다.
--workers는 서버 스펙에 따라 유동적으로 바꾸어 주세요.
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
sudo systemctl status gunicorn.service
서비스 등록 및 시작시키고 상태를 확인합니다.
상단의 "Active" 쪽을 확인하여 정상적으로 동작하고 있는지 확인합니다.
2. Nginx 설치 및 환경설정
sudo apt-get install nginx
Nginx를 설치해줍니다.
service nginx restart
service nginx status
Nginx를 실행시키고 상태를 확인합니다.
Nginx또한 상단의 "Active"부분을 확인하여 정상적으로 실행되었는지 확인합니다.
vi /etc/nginx/sites-enabled/프로젝트명
위 경로로 들어가서 아래와 같이 설정파일을 생성합니다.
[/etc/nginx/sites-enabled/프로젝트명]
server {
listen 80;
server_name 192.168.5.99; #서버 IP, 추후 도메인이 생길시 도메인명
charset utf-8;
location / {
include proxy_params;
proxy_pass http://192.168.5.99:8000; #Django 서버 IP
}
location /static/ {
alias /home/web/web/static/; #static 폴더(css, js 등)
}
}
~
이후 Nginx를 재시작해줍니다.
service nginx restart
이후 페이지를 띄워보면!
8000번 포트로 접속하지 않아도 80번 포트로 정상적으로 접속되는 것을 확인 할 수 있습니다.
'프로그래밍 > Django' 카테고리의 다른 글
[Django] 6. 파라미터 전송(GET, POST) (714) | 2020.12.15 |
---|---|
[Django] 5. 테스트 홈페이지 만들기(project, app, views, urls, 환경설정) (738) | 2020.12.14 |
[Django] 3. Mysql 설치 및 DB,Table 생성, 접속 계정 권한부여 (743) | 2020.08.28 |
[Django] 2. Anaconda 설치 및 Pycharm 가상환경 적용 (아나콘다, 파이참, 가상환경) (746) | 2020.08.27 |
[Django] 1. Pycharm 설치 (우분투, 파이참) (723) | 2020.08.27 |