gunicorn-소개 및 설치

hwisaac·2023년 9월 6일
1

gunicorn

목록 보기
1/8

"Gunicorn 'Green Unicorn'은 UNIX용 Python WSGI HTTP 서버입니다. 이는 Ruby의 Unicorn 프로젝트에서 이식된 프리-포크 워커 모델입니다. Gunicorn 서버는 다양한 웹 프레임워크와 널리 호환되며 구현이 간단하며 서버 자원을 적게 사용하며 비교적 빠릅니다.

기능

  • WSGI, Django 및 Paster를 기본으로 지원
  • 자동 워커 프로세스 관리
  • 간단한 Python 구성
  • 여러 워커 구성
  • 확장성을 위한 다양한 서버 후크
  • Python 3.x >= 3.5와 호환됨"

설치

요구 사항:Python 3.x >= 3.5

Gunicorn의 최신 릴리스 버전을 설치하려면 다음과 같이 합니다:

$ pip install gunicorn

소스에서 설치

다른 Python 패키지를 설치하는 것과 마찬가지로 소스에서 Gunicorn을 설치할 수 있습니다:

$ pip install git+https://github.com/benoitc/gunicorn.git

이렇게 하면 GitHub에서 개발 내용을 계속해서 업데이트할 수 있습니다:

$ pip install -U git+https://github.com/benoitc/gunicorn.git

비동기 워커

요청 처리 중에 응용 프로그램 코드가 긴 시간 동안 대기해야 할 것으로 예상되는 경우, Eventlet 또는 Gevent 를 설치하려고 할 수도 있습니다. 대체 워커 유형 중 어느 것을 고려해야 하는지에 대한 자세한 내용은 디자인 문서 를 확인하십시오.

$ pip install greenlet            # 둘 다 필요
$ pip install eventlet            # Eventlet 워커용
$ pip install gunicorn[eventlet]  # 또는, extra를 사용하여
$ pip install gevent              # Gevent 워커용
$ pip install gunicorn[gevent]    # 또는, extra를 사용하여

참고

둘 다 greenlet을 필요로 하며, 이는 자동으로 설치될 것입니다. 설치에 실패하는 경우, 아마도 Python 헤더를 설치해야 할 것입니다. 이러한 헤더는 대부분의 패키지 관리자에서 사용할 수 있습니다. Ubuntu에서는 apt-get에 대한 패키지 이름이 python-dev 입니다.

Gevent 는 또한 libevent 1.4.x 또는 2.0.4이 설치되어야 합니다. 이는 패키지 관리자에서 사용 가능한 버전보다 최신 버전일 수 있습니다. Gevent 가 설치되지 않고 빌드에 실패하는 경우 이것이 가장 가능성 있는 이유입니다.

추가 패키지

일부 Gunicorn 옵션에는 추가 패키지가 필요할 수 있습니다. Gunicorn과 동시에 이러한 패키지를 설치하려면 [extra] 구문을 사용할 수 있습니다.

대부분의 추가 패키지는 대체 워커 유형에 필요합니다. 대체 워커 유형을 고려해야 할 때 더 많은 정보를 위해 디자인 문서 를 참조하십시오.

  • gunicorn[eventlet] - Eventlet 기반 greenlet 워커
  • gunicorn[gevent] - Gevent 기반 greenlet 워커
  • gunicorn[gthread] - 스레드 워커
  • gunicorn[tornado] - Tornado 기반 워커, 권장하지 않음

여러 개의 추가 패키지를 결합할 수 있습니다. 예를 들어 pip install gunicorn[gevent,setproctitle]와 같이 사용할 수 있습니다.

Debian GNU/Linux

Debian GNU/Linux을 사용하는 경우 Gunicorn을 설치할 때 시스템 패키지를 사용하는 것이 좋습니다. 가상 환경에서 Gunicorn의 다른 버전을 사용하려는 경우를 제외하고 이러한 패키지를 사용하는 것이 좋습니다. 이러한 방식에는 여러 가지 장점이 있습니다:

  • 노력 없는 설치: /etc/gunicorn.d에 정의된 구성을 기반으로 자동으로 여러 Gunicorn 인스턴스를 시작합니다.
  • 로그에 대한 합리적인 기본 위치(/var/log/gunicorn)가 제공됩니다. 로그는 logrotate 를 사용하여 자동으로 로테이트되고 압축될 수 있습니다.
  • 향상된 보안: 각 Gunicorn 인스턴스를 별도의 UNIX 사용자/그룹으로 실행할 수 있습니다.
  • 합리적인 업그레이드 경로: 새 버전으로 업그레이드하면 다운 타임이 적어지며 구성 옵션의 충돌 변경을 처리하고 호환되지 않는 경우 빠르게 롤백할 수 있습니다. 패키지는 시스템에서 몇 초 내에 완전히 제거할 수도 있습니다.

안정 버전 (“buster”)

Debian “stable” 배포판에 있는 Gunicorn 버전은 19.9.0 (2020년 12월)입니다. 다음 명령을 사용하여 설치할 수 있습니다:

$ sudo apt-get install gunicorn3

또한 Debian Backports를 사용하여 최신 버전 20.0.4 (2020년

12월)를 사용할 수 있습니다. 먼저 다음 라인을 /etc/apt/sources.list 에 복사하십시오:

deb http://ftp.debian.org/debian buster-backports main

그런 다음 로컬 패키지 목록을 업데이트합니다:

$ sudo apt-get update

그런 다음 다음 명령을 사용하여 최신 버전을 설치할 수 있습니다:

$ sudo apt-get -t buster-backports install gunicorn

구버전 (“stretch”)

Stretch 이상의 Debian 릴리스에서는 gunicorn 패키지 또는 gunicorn3 패키지를 설치하면 Python 3 지원을 받을 수 있습니다. Debian "oldstable" 배포판에 있는 Gunicorn 버전은 19.6.0 (2020년 12월)입니다. 다음 명령을 사용하여 설치할 수 있습니다:

$ sudo apt-get install gunicorn3

또한 Debian Backports를 사용하여 최신 버전 19.7.1 (2020년 12월)를 사용할 수 있습니다. 먼저 다음 라인을 /etc/apt/sources.list 에 복사하십시오:

deb http://ftp.debian.org/debian stretch-backports main

그런 다음 로컬 패키지 목록을 업데이트합니다:

$ sudo apt-get update

그런 다음 다음 명령을 사용하여 최신 버전을 설치할 수 있습니다:

$ sudo apt-get -t stretch-backports install gunicorn3

테스트 버전 (“bullseye”) / 불안정 버전 (“sid”)

“bullseye”와 “sid”에는 최신 릴리스 버전인 20.0.4 (2020년 12월)이 포함되어 있습니다. 보통 다음과 같이 설치할 수 있습니다:

$ sudo apt-get install gunicorn

Ubuntu

Ubuntu 20.04 LTS (Focal Fossa) 이상에는 기본적으로 Gunicorn 패키지가 포함되어 있으므로 다음과 같이 설치할 수 있습니다:

$ sudo apt-get update
$ sudo apt-get install gunicorn

0개의 댓글