python cgi server — простой сервер, который можно запускать программно. Какое-либо внешнее ПО не требуется. Задействуется модуль Python HTTPServer.
python cgi server — запуск простого сервера без Nginx
Сервер запускается тремя строками в скрипте. Необходимые условия успешного выполнения — предустановленный Python и свободный порт. В примере порт 8080. На нем не должен работать Nginx или какая-то другая служба.
Создадим скрипт для демонстрации.
mcedit index.py
from http.server import HTTPServer, CGIHTTPRequestHandler port = 8080 httpd = HTTPServer(('', port), CGIHTTPRequestHandler) print("Starting simple_httpd on port: " + str(httpd.server_port)) httpd.serve_forever()
Запускаем сервер в консоли
python3 index.py
Starting simple_httpd on port: 8080
Порт 8080 теперь занят
netstat -nltp | grep 8080
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 31151/python3
Если в том же каталоге разместить простой html файл и обратиться к нему — сервер вернет содержимое
Если подобное приложение запускается на сервере в рабочем окружении для него, как правило, настраивается доступ по доменному имени и проксирование и домена. В качестве проксирующего сервера используют обычно Nginx.
В материале по ссылке можно посмотреть как запускается приложение на Python на сервере. Рассмотрен фреймворк Flask, но принципы одни для любого приложения выступающего в роли бэкенда.
Если приложение использует python cgi server у него обычно есть ряд зависимостей — модулей, которые подключаются в коде. Список модулей при разворачивании на сервере устанавливается в виртуальное окружение.