PHP HTTP сервер? Порты 80, 443-444, 1000-3000, 8000-9000. (Нет-Apache) - PullRequest
0 голосов
/ 01 октября 2010

Я скоро обновлюсь до 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 ]

2 голосов
/ 01 октября 2010

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

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

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

0 голосов
/ 01 октября 2010

В питоне:

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