2010-10-01 19 views
0

Je mise à niveau vers Linux Debian 6.0 "Squeeze" sur le serveur bientôt et je veux savoir comment je peux utiliser Python comme serveur web sur de nombreux ports dédiés pour différentes choses ..PHP Serveur HTTP? Ports 80, 443-444, 1000-3000, 8000-9000. (No-Apache)

Ports   Directory   Description 
80, 443   /var/www/sitegen/ Take all domains and generate a site from the SQL DB 
444, 1000-3000 /var/www/manager/ Take 444 as a PHP server manager and the rest to be forwarded to serial hardware. 
8000-9000  The VMs DIR   Forward the port to port 80 (or 443 by settings) on the VMs. 

Cela signifie que le port 443 pourrait être utilisé pour de nombreux sites (alimenté par le même code différent dans la base de données SQL)

Répondre

0

En python:

import os 
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer 

class myHandler(BaseHTTPRequestHandler): 

    def do_GET(self): 
     self.send_response(200) 
     self.send_header("Content-type", "text/html") 
     self.end_headers() 
     self.wfile.write("This is working") 

def main(): 
    try: 
     server = HTTPServer(("", 8080), myHandler) 
     print "Sever is up.." 
     server.serve_forever() 
    except KeyboardInterrupt: 
     print 
     print "Bye, Bye!" 
     server.socket.close() 

if __name__ == "__main__": 
    main() 
+0

Ce n'est qu'une entrée pour ce dont j'ai besoin. –

2

Ceci n'est pas une question PHP car l'interpréteur PHP n'écoute pas directement les ports. Sous Linux, il fonctionnera (habituellement) dans Apache. Apache peut être configuré pour écouter plusieurs ports, et même sur une base d'hôte virtuel. De plus, sachez que la nature de HTTPS empêche plusieurs hôtes virtuels d'utiliser leur propre certificat SSL et d'écouter tous sur le même port. Ils auront chacun besoin de leur propre certificat et devront écouter sur leur propre port. En outre, l'envoi de ports spécifiques aux machines virtuelles s'exécutant sur la boîte n'a rien à voir avec le serveur Web, sans parler de l'environnement d'exécution. Il s'agit d'un mélange de configuration de la redirection de port à l'intérieur du réseau virtuel, associée à la configuration du serveur Web local dans vos machines virtuelles.

+0

Est-il possible de le faire avec bash ou python? Et les certs seraient auto-signés et pour un usage personnel et le certificat 443 irait à mon domaine principal. –

+0

Votre question n'a pas de sens. Bash est un shell de commande, pas un redirecteur de port ni un serveur web. Cependant, vous pouvez utiliser bash pour appeler les commandes pour configurer les deux. Python est un langage, et (comme PHP) fonctionne généralement comme un environnement dans un navigateur Web. – staticsan

+0

humm pourrais-je utiliser python comme serveur http pour faire cela? –