WordPress DemoSite

Тестовый сайт для экспериментов и демонстраций возможностей

Настройка Nginx для работы с Python-скриптами

Чтобы настроить Nginx для работы с Python-скриптами, вам нужно использовать серверное приложение, такое как uWSGI или Gunicorn, которое будет взаимодействовать с Nginx и выполнять Python-код. В этом примере я покажу, как настроить Nginx с uWSGI для запуска Python-скрипта index.py на сайте example.com/index.py.

Шаг 1: Установка необходимых пакетов

  1. Установите Nginx, если он еще не установлен:
   sudo apt update
   sudo apt install nginx
  1. Установите 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 в зависимости от требований вашего проекта.

Полный стэк: .NET | AMQP | Android | api | Bash | Bootstrap | C++ | cms | Composer | css | Data | Elasticsearch | ESP32 | Git | GraphQL | Gulp | JavaScript | JetStream | Joomla | js | Kotlin | Laravel | LEMP | Linux | LMS | Markdown | MODX | Moodle | MySQL | NATS | Nginx | Node.js | OpenCart | Parsedown | PHP | Python | RabbitMQ | SCSS | SEO | Simpla | SOAP | SQL | startup | Swift | Symfony | Tailwind | Translation | Twig | Ubuntu | Unit | web3 | Webasyst | Webpack | WebSocket | WordPress | XML | Бизнес | блокчейн | ИИ | интернет-магазин | ЛК | Руководство | ТЗ | фреймворк | Яндекс.Трекер