Установка
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. Теперь ваше приложение должно успешно обслуживать запросы пользователе