배포를 위한 Django 설정: Gunicorn
4130 단어 gunicorndjangoconfigfilepython
python manage.py runserver
내장 Django 웹 서버를 시작하고 기본 포트인 8000에서 실행합니다. 이 개발 서버는 코드가 변경되면 자동으로 다시 시작되며 별도의 구성 없이 쉽게 실행할 수 있습니다. 이것은 개발 서버에 적합하므로 Django를 시작하고 실행하려는 경우 개발 서버를 사용하십시오. 이 서버 사용의 단점은 프로덕션용으로 구축되지 않았다는 것입니다. 속도가 느리고 한 번에 많은 요청을 처리할 수 없습니다.
웹 애플리케이션을 프로덕션에 배포하려면 Apache 또는 NGINX와 같은 프로덕션 준비 웹 서버가 필요합니다. 이러한 웹 서버는 일반적으로 Python 애플리케이션과 직접 통신할 수 없습니다. 따라서 첫 번째 단계는 WSGI 서버를 설치하고 구성하는 것입니다. WSGI(Web Server Gateway Interface)는 Python으로 작성된 웹 응용 프로그램이 HTTP 웹 서버와 통신할 수 있도록 하는 표준입니다.
Gunicorn은 WSGI 서버의 예입니다. 이 기사에서는 Django 애플리케이션으로 설치, 구성 및 실행
gunicorn
하는 방법을 보여줍니다.가상 환경
첫 번째 단계는 가상 환경을 만들고 Django 및 Gunicorn을 설치하여 환경을 설정하는 것입니다. 저는 Linux를 사용하며 가상 환경을 만드는 가장 좋은 방법은 내장
venv
모듈을 사용하는 것입니다.$ sudo apt-get install python3-venv
$ python3 -m venv .venv
$ source .venv/bin/activate
가상 환경이 생성되고 활성화되면 Django 및 Gunicorn을 설치합니다.
$ pip install django
$ pip install gunicorn
다음으로
myproject
라는 새 Django 프로젝트를 만들고 끝에 마침표(".")를 적어 둡니다.$ django-admin startproject myproject .
이제 gunicorn 서버를 사용하여 프로젝트를 실행할 수 있는지 확인합니다.
gunicorn myproject.wsgi
Gunicorn은 실행해야 하는 애플리케이션의 이름인 인수를 사용합니다. Django 프로젝트의 경우 프로젝트 디렉터리의 wsgi 파일을 가리킵니다. 다음과 유사한 출력이 표시됩니다.
[2021-06-03 21:48:52 +0200] [8618] [INFO] Starting gunicorn 20.1.0
[2021-06-03 21:48:52 +0200] [8618] [INFO] Listening at: http://127.0.0.1:8000 (8618)
[2021-06-03 21:48:52 +0200] [8618] [INFO] Using worker: sync
[2021-06-03 21:48:52 +0200] [8620] [INFO] Booting worker with pid: 8620
브라우저를 열고 http://127.0.0.1:8000 으로 이동합니다. 모든 것이 예상대로 작동하면 다음과 같은 친숙한 화면이 표시됩니다.
Gunicorn 구성
마지막 섹션에서는 많은 인수 없이 명령줄에서 실행할 수 있음
gunicorn
을 확인했습니다. 실제로는 로깅, 디버깅, SSL 및 사용할 작업자 수와 같은 항목을 제어하는 매개변수를 사용하여 실행gunicorn
하는 것이 좋습니다. 명령줄에서 이러한 많은 매개변수를 gunicorn
스크립트에 전달할 수 있지만 구성 파일을 통해 이 작업을 수행하는 것이 더 쉽습니다.gunicorn
구성 파일을 만들려면 프로젝트 루트(config
와 동일한 수준)에 manage.py
라는 이름의 디렉터리를 만들고 그 안에 파일 확장자가 .py
인 파일을 만들고 원하는 이름으로 지정합니다. . 규칙은 이름을 지정하는 것입니다gunicorn.conf.py
. 여기에서 gunicorn
서버를 구성하는 데 사용할 유효한 설정이나 매개변수를 추가합니다.내 프로젝트를 다음과 같이 구성했습니다.
# gunicorn.conf.py
command = "/home/vndlovu/django/.venv/bin/gunicorn"
pythonpath = "/home/vndlovu/django/myproject"
bind = "0.0.0.0:8000"
workers = 3
첫 번째 설정
command
은 gunicorn
실행 파일의 경로입니다. Gunicorn은 기본적으로 bin
폴더의 가상 환경에 설치됩니다. 다음 줄은 Python 경로에 추가할 경로를 지정합니다. 이것은 기본적으로 작업 디렉토리의 경로입니다. bind
설정은 수신해야 하는 IP 및 포트를 알려줍니다gunicorn
. 여기에서 유닉스 소켓에 바인딩gunicorn
할 수도 있습니다. 마지막 설정은 요청 처리에 사용해야 하는 작업자 프로세스gunicorn
의 수입니다.이러한 새 설정을 사용하여 이제 다음과 같이 실행할 수 있습니다
gunicorn
.$ gunicorn -c conf/gunicorn.conf.py myproject.wsgi
결론
이 게시물은 gunicorn을 사용하여 애플리케이션을 설치, 구성 및 제공하는 방법을 보여줍니다. Gunicorn은 HTTP 요청을 Python으로 변환하는 데 유용하지만 충분하지 않습니다. 대부분의 경우 대중에게 입구 역할을 하는 웹 서버를 원할 것입니다. 웹 서버는 HTTP 요청을 처리합니다. 이 시리즈의 다음 기사에서는 Nginx 웹 서버를 설정하는 방법을 보여 드리겠습니다.
Reference
이 문제에 관하여(배포를 위한 Django 설정: Gunicorn), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vndlovu/setting-up-django-for-deployment-gunicorn-3adh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)