이번 예제는 아나콘다 라이브러리를 사용하는 가상환경의 웹 프로젝트를

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번 포트로 정상적으로 접속되는 것을 확인 할 수 있습니다.

+ Recent posts