2010-10-01 2 views
0

я обновление до Linux Debian 6.0 "Squeeze" на сервере в ближайшее время, и я не хочу знать, как я могу использовать Python в качестве веб-сервера на многих портах, выделенных для различных вещей ..PHP HTTP-сервер? Порты 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. 

Это означает, что порт 443 может использоваться для многих сайтов (приведенный в действие одним и тем же кодом, просто в SQL DB)

ответ

0

В питона:

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

Это только стартер того, что мне нужно. –

2

Это не вопрос PHP, поскольку интерпретатор PHP напрямую не прослушивает порты. В Linux он будет (обычно) работать внутри Apache. Apache может быть настроен на прослушивание нескольких портов и даже на основе виртуального хоста.

Кроме того, имейте в виду, что характер HTTPS не позволяет нескольким виртуальным хостам использовать свой собственный сертификат SSL и все еще прослушивать один и тот же порт. Каждый из них будет нуждаться в собственном сертификате и должен слушать свой порт.

Кроме того, отправка определенных портов на виртуальные машины, работающие на ящике, не имеет ничего общего с веб-сервером, не говоря уже о среде выполнения. Это сочетание настройки переадресации портов внутри виртуальной сети в сочетании с настройкой локального веб-сервера на ваших виртуальных машинах.

+0

Можно ли сделать это с Баш или питона? И сертификаты будут самоподписаны и для личного использования, а сертификат 443 поступит в мой основной домен. –

+0

Ваш вопрос не имеет смысла. Bash - это командная оболочка, а не порт-пересылка или веб-сервер. Однако вы действительно можете использовать bash для вызова команд для настройки обоих. Python - это язык, и (например, PHP) обычно выполняется как среда внутри веб-браузера. – staticsan

+0

humm я могу использовать python в качестве http-сервера для этого? –