Site icon GalaxyData Community

Установка сайта на Django 1.5 supervisor, gunecorn, nginx, percona

Установка

pip install -r requirements.txt --ignore-installed --force-reinstall --upgrade --no-cache-dir

Для установки веб-приложения на Django версии 1.5 с использованием supervisor, gunicorn и nginx, а также базы данных Percona Server MySQL, выполните следующие шаги:

Шаг 1: Установка зависимостей

Установите необходимые пакеты на сервер Ubuntu/Debian:

sudo apt-get update
sudo apt-get install python-dev libmysqlclient-dev git build-essential supervisor nginx mysql-server python-pip

Установите последнюю версию Python (если ещё не установлена):sudo apt-get install python3.8 python3.8-dev

Создайте виртуальное окружение Python:python3.8 -m venv myvenvsource myvenv/bin/activatepip install pip==1.5.6 setuptools==0.9.7 # Убедитесь, что версии соответствуют требованиям проектаpip install django==1.5 gunicorn psycopg2-binary mysqlclient

Шаг 2: Настройка баз данных

Используйте Percona Server MySQL — форк MySQL с улучшенной производительностью и стабильностью:

Запустите сервер MySQL:sudo service mysql start

Подключитесь к консоли MySQL и создайте базу данных и пользователя:CREATE DATABASE myprojectdb CHARACTER SET utf8 COLLATE utf8_general_ci;GRANT ALL PRIVILEGES ON myprojectdb.* TO ‘myprojectuser’@’localhost’ IDENTIFIED BY ‘password’;FLUSH PRIVILEGES;EXIT;

Шаг 3: Настройка Django-проекта

Инициализируйте новый проект Django внутри вашего окружения:django-admin.py startproject myproject .

Измените настройки БД в файле settings.py:DATABASES = { ‘default’: { ‘ENGINE’: ‘django.db.backends.mysql’, ‘NAME’: ‘myprojectdb’, ‘USER’: ‘myprojectuser’, ‘PASSWORD’: ‘password’, ‘HOST’: ‘localhost’, # Или IP адрес сервера MySQL ‘PORT’: », # Оставьте пустым для порта по умолчанию }}

Выполните миграцию моделей:./manage.py syncdb

Шаг 4: Запуск приложения с Gunicorn

Gunicorn — простой WSGI-сервер для запуска приложений Django. Создайте конфигурационный файл для Gunicorn (gunicorn.conf.py) рядом с manage.py:import multiprocessingbind = «unix:/tmp/myproject.sock»workers = multiprocessing.cpu_count() * 2 + 1timeout = 30loglevel = «info»accesslog = «/var/log/gunicorn-access.log»errorlog = «/var/log/gunicorn-error.log»

Теперь запустите приложение через Gunicorn:gunicorn -c gunicorn.conf.py myproject.wsgi:application

Шаг 5: Nginx как обратный прокси

Настройте Nginx для передачи запросов вашему приложению:

Откройте конфигурационный файл /etc/nginx/sites-enabled/default и добавьте следующее содержимое:server { listen 80 default_server; server_name _; location /static/ { alias /path/to/your/project/staticfiles/; } location /media/ { alias /path/to/your/project/media/; } location / { proxy_pass http://unix:/tmp/myproject.sock:; proxy_set_header Host host;proxysetheaderX−Real−IPremote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}

Перезапустите Nginx:sudo systemctl restart nginx

Шаг 6: Автоматизация с Supervisor

Supervisor следит за процессом Gunicorn и перезапускает его автоматически при сбоях.

Создайте файл конфигурации /etc/supervisor/conf.d/myproject.conf:[program:myproject]command=/path/to/myvenv/bin/gunicorn -c /path/to/gunicorn.conf.py myproject.wsgi:applicationdirectory=/path/to/your/project/user=www-dataautostart=trueautorestart=trueredirect_stderr=truestdout_logfile=/var/log/myproject-gunicorn.logstderr_logfile=/var/log/myproject-gunicorn.err.log

Обновите конфигурацию и запускайте сервис:sudo supervisorctl rereadsudo supervisorctl updatesudo supervisorctl start myproject

Итоги

Вы настроили веб-сайт на Django 1.5, используя сервер приложений Gunicorn, балансировщик нагрузки Nginx и высокопроизводительную СУБД Percona Server MySQL, управляя процессами через утилиту Supervisor. Теперь ваше приложение должно успешно обслуживать запросы пользователе

Exit mobile version