如何在 heroku 上启动 Python SimpleHTTPServer?

2024-03-13

我想在heroku 上启动Python HTTPServer。请注意,这不是 Python 框架。代码片段附在下面。我如何才能在 Heroku 上启动此服务器?我可以在本地计算机上运行该服务器。但我希望它部署在 Heroku 上。请提供见解。

服务器代码:

import http.server
from http.server import HTTPServer, BaseHTTPRequestHandler
import socketserver
import threading

PORT = 5001

class myHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.write("Heroku is awesome")

class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
    pass

try:
    server = ThreadedTCPServer(('', PORT), myHandler)
    print ('Started httpserver on port ' , PORT)
    ip,port = server.server_address
    server_thread = threading.Thread(target=server.serve_forever)
    server_thread.daemon = True
    server_thread.start()
    allow_reuse_address = True
    server.serve_forever()

except KeyboardInterrupt:
    print ('CTRL + C RECEIVED - Shutting down the REST server')
    server.socket.close()

当heroku运行你的进程时,它定义了环境变量PORT到您应该公开服务器的内部端口。然后您的服务器就可以通过 Internet 的端口 80(默认 HTTP 端口)进行访问。

Python 可以通过以下方式访问环境变量os.environ.

所以你可以使用:
PORT = environ['PORT']

os.envron docs here https://docs.python.org/3/library/os.html#os.environ

您可以阅读有关 Heroku 如何处理端口的更多信息here https://devcenter.heroku.com/articles/runtime-principles#web-servers.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 heroku 上启动 Python SimpleHTTPServer? 的相关文章

随机推荐