Настройка Nginx для работы с Python-скриптами
Чтобы настроить Nginx для работы с Python-скриптами, вам нужно использовать серверное приложение, такое как uWSGI
или Gunicorn
, которое будет взаимодействовать с Nginx и выполнять Python-код. В этом примере я покажу, как настроить Nginx с uWSGI
для запуска Python-скрипта index.py
на сайте example.com/index.py
.
Шаг 1: Установка необходимых пакетов
- Установите Nginx, если он еще не установлен:
sudo apt update
sudo apt install nginx
- Установите
uWSGI
и Python:
sudo apt install python3 python3-pip
sudo pip3 install uwsgi
Шаг 2: Создание Python-скрипта
Создайте файл index.py
в директории вашего сайта, например, /var/www/example.com
:
sudo mkdir -p /var/www/example.com
sudo nano /var/www/example.com/index.py
Добавьте в файл следующий код:
def application(env, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return [b"Hello, World!"]
Это простой WSGI-совместимый скрипт, который возвращает «Hello, World!».
Шаг 3: Настройка uWSGI
Создайте конфигурационный файл для uWSGI
:
sudo nano /etc/uwsgi/apps-available/example.com.ini
Добавьте в файл следующее содержимое:
[uwsgi]
chdir = /var/www/example.com
module = index:application
master = true
processes = 5
socket = /run/uwsgi/app/example.com/example.com.sock
chmod-socket = 660
vacuum = true
die-on-term = true
Создайте символическую ссылку на этот файл в папке apps-enabled
:
sudo ln -s /etc/uwsgi/apps-available/example.com.ini /etc/uwsgi/apps-enabled/
Запустите uWSGI
:
sudo systemctl start uwsgi
sudo systemctl enable uwsgi
Шаг 4: Настройка Nginx
Создайте конфигурационный файл для вашего сайта в Nginx:
sudo nano /etc/nginx/sites-available/example.com
Добавьте в файл следующее содержимое:
server {
listen 80;
server_name example.com;
location / {
include uwsgi_params;
uwsgi_pass unix:/run/uwsgi/app/example.com/example.com.sock;
}
}
Создайте символическую ссылку на этот файл в папке sites-enabled
:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Проверьте конфигурацию Nginx:
sudo nginx -t
Если проверка прошла успешно, перезапустите Nginx:
sudo systemctl restart nginx
Шаг 5: Проверка работы
Теперь, если вы перейдете на http://example.com/index.py
, вы должны увидеть сообщение «Hello, World!».
Шаг 6: Настройка DNS (опционально)
Если вы тестируете на локальной машине, вы можете добавить запись в файл /etc/hosts
:
127.0.0.1 example.com
Теперь вы сможете открыть http://example.com/index.py
в браузере и увидеть результат работы вашего Python-скрипта.
Заключение
Теперь у вас настроен Nginx для работы с Python-скриптами через uWSGI
. Вы можете адаптировать этот пример для своих нужд, добавляя дополнительные скрипты и настраивая параметры uWSGI
и Nginx в зависимости от требований вашего проекта.