2016-10-04 1 views
0

Wie erstelle ich mehrere Instanzen von Python-Anwendungsserver?Wie erstelle ich mehrere Instanzen von Python-Anwendungsserver?

Ich habe einen Anwendungsserver in Python mit httpserver erstellt. Ich benutze keine Python-Frameworks. Jetzt möchte ich mehrere Instanzen des Servers erstellen und Load Balancer dazu verwenden. Wie kann ich mehrere Instanzen dieses Anwendungsservers erstellen? Gibt es Anleitungen zum Erstellen mehrerer Instanzen?

Ich ging durch Nginx. Kann nginx mehrere Instanzen erstellen? Gibt es Tutorials?

Details: Ich arbeite an Windows-Maschine. Es ist ein Python-Anwendungsserver, der mit BaseHTTPServer erstellt wurde. Ich benutze kein Framework wie Tornado, Django.

Antwort

0

Sie könnten verschiedene Ports für jede Instanz Ihres Servers binden.

Lassen Sie Ihr Skript jede Instanz initialisieren, die einen anderen Port bindet (z. B. Port 3000, 3001, 3002 ...), und konfigurieren Sie nginx, um die Last auf diese Ports zu verteilen.

Von https://docs.python.org/2/library/basehttpserver.html, da das Beispiel ist:

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

So könnten Sie eine Klasse mit einer Funktion wie diese als eine Methode erstellen, die den Server-Port als Argument nehmen könnten, in dem obigen Beispiel dem Port fest codiert als 8000.