PHP HTTP сервер? Порты 80, 443-444, 1000-3000, 8000-9000. (Нет-Apache)

Я буду обновляться до Linux Debian 6.0 "Squeeze" скоро на сервере, и я хочу знать, как я могу использовать Python в качестве веб-сервера на многих портах, предназначенных для разных вещей..

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)

2 ответа

Решение

В питоне:

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()

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

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

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

Другие вопросы по тегам