PHP HTTP-сервер? Порты 80, 443-444, 1000-3000, 8000-9000. (No-Apache)
-
26-09-2019 - |
Вопрос
Я буду обновляться до Linux Debian 6.0 "Squeeze"
на сервере скоро и хочу знать, как я могу использовать Питон Как веб-сервер на многих портах, посвященных разным вещам ..
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)
Решение 2
В 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()
Другие советы
Это не вопрос PHP, так как интерпретатор PHP не прослушивает порты. На Linux он будет (обычно) работает внутри Apache. Apache можно настроить для прослушивания нескольких портов и даже на основе для каждого виртуального хоста.
Кроме того, осознайте, что природа HTTPS делает невозможным для нескольких виртуальных хостов использовать свой собственный SSL-сертификат и все еще все слушать один и тот же порт. Каждый из них потребуется свой собственный сертификат и должен слушать свой собственный порт.
Кроме того, отправка конкретных портов на виртуальные машины, работающие на коробке, нечего делать с веб-сервером, не говоря уже о среде выполнения. Это смесь настройки переадресации портов внутри виртуальной сети, в сочетании с локальной конфигурацией веб-сервера в виртуальных машинах.