【问题标题】:Create a web server for myself like Apache, NGINX, GWS, etc为自己创建一个 Web 服务器,如 Apache、NGINX、GWS 等
【发布时间】:2021-05-05 08:55:01
【问题描述】:

我想为自己创建一个像谷歌这样的网络服务器来制作 GWS 网络服务器我想知道如何制作一个像 Apache、NGINX、lighttpd 和 tornado 这样的网络服务器。 我应该知道什么??

例如,我想制作一个像 NGINX 这样的 Web 服务器,但我不知道如何制作一个 Web 服务器,我可以使用哪种语言制作一个 Web 服务器以及如何制作它??

我想用 Python 或 C 制作它??

我如何制作网络服务器 如何制作可以服务的代码??

如何将 CGI 或其他模块添加到我的 Web 服务器,如何创建可以具有虚拟主机的 Web 服务器并添加其他模块?

【问题讨论】:

  • 请参阅How to Ask 并使用tour。这个问题对于stackoverflow来说还不够具体。
  • 看看我的回答。

标签: webserver


【解决方案1】:

您不能只创建像 Apache、NGINX 等这样的 Web 服务器。没有任何编程知识。你只是创造了太多的开销。

首先,既然有这么多可以根据需要轻松修改的开源 Web 服务器,为什么还要自己创建一个 Web 服务器?

它需要太多的知识。 RFC、修补漏洞等。

我想为自己创建一个像谷歌一样的网络服务器来制作 GWS 网络服务器

Google 拥有 100 多名员工。他们可能都在不同的事情上工作。你可以做一个网络服务器,但是当你有大量的开源服务器时,这并不好。

您可以更改 Apache、Nginx 等 Web 服务器的源代码,而不是创建自己的 Web 服务器。

如果对您有帮助,请使用本指南:https://stackoverflow.com/a/65979502/12154890 将 apache 的 server: 标头更改为您自己的标头。

使用 Python 运行 Web 服务器(使用 apache 更好):

from http.server import BaseHTTPRequestHandler, HTTPServer
import time

hostName = "localhost"
serverPort = 8080

class MyServer(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header("Content-type", "text/html")
        self.end_headers()
        self.wfile.write(bytes("<html><head><title>https://pythonbasics.org</title></head>", "utf-8"))
        self.wfile.write(bytes("<p>Request: %s</p>" % self.path, "utf-8"))
        self.wfile.write(bytes("<body>", "utf-8"))
        self.wfile.write(bytes("<p>This is an example web server.</p>", "utf-8"))
        self.wfile.write(bytes("</body></html>", "utf-8"))

if __name__ == "__main__":        
    webServer = HTTPServer((hostName, serverPort), MyServer)
    print("Server started http://%s:%s" % (hostName, serverPort))

    try:
        webServer.serve_forever()
    except KeyboardInterrupt:
        pass

    webServer.server_close()
    print("Server stopped.")

【讨论】:

    猜你喜欢
    • 2017-03-22
    • 1970-01-01
    • 2014-10-12
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多