Вы должны настроить веб-сервер! Веб-сервер необходим для работы любого сайта. В настоящее время наиболее популярными являются Apache и NGINX. Это веб-сервер, который отвечает на запросы пользователей. Нам необходимо обеспечить взаимодействие веб-сервера и приложения python. Наиболее популярные решения:
Рассмотрим пример с Nginx и Gunicorn:
Начнем с установки модуля Gunicorn в виртуальной среде:
pip install gunicorn
Сконфигурируйте настройки службы gunicorn для нашего проекта:
sudo nano /etc/systemd/system/gunicorn.service
/ etc / systemd / system / gunicorn.service:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=my_user
Group=www-data
WorkingDirectory=/home/project_dir/project
ExecStart=/home/project_dir/project/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/project_dir/project/project.sock project.wsgi
[Install]
WantedBy=multi-user.target
Включаем и запускаем службу gunicorn, проверяем ее статус:
sudo systemctl enable gunicorn
sudo systemctl start gunicorn
sudo systemctl status gunicorn
Если все хорошо, установите веб-сервер nginx :
sudo apt install nginx
Настройка параметров сайта проекта:
sudo nano /etc/nginx/sites-available/project
/ etc / nginx / sites-available / project:
server {
listen 80;
server_name <server IP or domain name>;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/project_dir/project;
}
location /media/ {
root /home/project_dir/project;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/project_dir/project/project.sock;
}
}
Используем Nginx в качестве прокси для сервера gunicorn Python:
proxy_pass http://unix:/home/project_dir/project/project.sock;
Создать ссылку в папке разрешенных сайтов «/ etc / nginx / sites-enabled»:
sudo ln -s /etc/nginx/sites-available/project/etc/nginx/sites-enabled
Перезапускаем Nginx службы и добавить разрешения для брандмауэра:
sudo systemctl restart nginx
sudo ufw allow 'Nginx Full'
Готово! Вы можете проверить работу нашего сайта, введя IP-адрес сервера в браузере. PS Извините за мой английский sh! Если вы видите ошибку в тексте или коде, пожалуйста, измените меня.