我想在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(使用前将#替换为@)