Как мне создать несколько экземпляров сервера приложений python?

#python #python-2.7 #nginx #application-server

#python #python-2.7 #nginx #сервер приложений

Вопрос:

Как мне создать несколько экземпляров сервера приложений python?

Я создал сервер приложений на python, используя httpserver. Я не использую никаких фреймворков python. Теперь я хочу создать несколько экземпляров сервера и использовать балансировщик нагрузки поверх него. Как я могу создать несколько экземпляров этого сервера приложений? Существуют ли какие-либо учебные пособия по созданию нескольких экземпляров?

Я проходил через Nginx. Может ли nginx создавать несколько экземпляров? Есть ли какие-либо учебные пособия?

Подробности: я работаю на компьютере с Windows. Это сервер приложений python, созданный с использованием BaseHTTPServer. Я не использую какие-либо фреймворки, такие как tornado, django.

Ответ №1:

Вы можете привязать разные порты для каждого экземпляра вашего сервера.

Сделайте так, чтобы ваш скрипт инициализировал каждый экземпляр, привязывающий другой порт (например, порт 3000, 3001, 3002 …), и настройте nginx для распределения нагрузки на эти порты.

Из https://docs.python.org/2/library/basehttpserver.html , приведенный пример является :

 def run(server_class=BaseHTTPServer.HTTPServer,
    handler_class=BaseHTTPServer.BaseHTTPRequestHandler):
    server_address = ('', 8000)
    httpd = server_class(server_address, handler_class)
    httpd.serve_forever()
  

Таким образом, вы можете создать класс с подобной функцией в качестве метода, который мог бы принимать порт сервера в качестве аргумента, в приведенном выше примере порт жестко запрограммирован как 8000.