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, и при этом все они прослушивают один и тот же порт. Каждому из них понадобится собственный сертификат и прослушивание через собственный порт.
Кроме того, отправка определенных портов на виртуальные машины, работающие на компьютере, не имеет ничего общего с веб-сервером, не говоря уже о среде выполнения. Это сочетание настройки переадресации портов внутри виртуальной сети в сочетании с конфигурацией локального веб-сервера на ваших виртуальных машинах.