Link Search Menu Expand Document

Развертывание приложений Python Wsgi с помощью Gunicorn на основе Nginx

Простейший вариант

Файл конфигурации Nginx

Название файла (например) test.conf

server {
    listen  80;
    server_name 127.0.0.1;
    charset     utf-8;

    location / {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://0.0.0.0:8080/;
    }
}

Рестарт nginx nginx -s reload

Простейшее вариант программы на Python

Название файла wsgi.py

def application(env, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return [b'Hello World']

Для работы необходимо установить gunicorn (pip install gunicorn) Затем выполнить команду gunicorn -b 0.0.0.0:8080 wsgi Также можно указать количество воркеров gunicorn -b 0.0.0.0:8080 --workers=5 wsgi

Неплохое руководство

Запуск Django + Gunicorn

Для запуска необходимо установить модуль gunicorn

Далее выполняется команда gunicorn mysite.wsgi

Файл конфигурации Nginx

server {
    listen  80;
    server_name mynewproject.ru;
    charset     utf-8;
    access_log /tmp/testsite_access_log.log;  # логи 
    error_log /tmp/testsite_error_log.log;
    
    location / {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://127.0.0.1:8000/;
    }

    location /static {
      alias /testsite/mysite/static;
    }

    location /media {
      alias /testsite/mysite/media;
    }
}

Также в /etc/hosts нужно указать название нашего тестового домена mynewproject.ru

127.0.0.1 mynewproject.ru