如何解决部署一个基本的 python sanic 网络服务器
我有一个 sanic 应用程序,它作为服务器文件夹,里面有 server.py 和 init.py。在 init.py 里面我有一行 import *
这是 server.py 的样子:
# server.py #
from sanic import Sanic
from sanic.response import json
class Bot:
def __init__(self):
self.app = Sanic("message-queue")
self.app.add_route(self._post,"/",methods=["POST"])
async def _post(self,request):
data = request.json
data1 = data["data1"]
data2 = data["data2"]
data3 = data["data3"]
def run(self,host="localhost",port=6778):
self.app.run(host,port)
并且在服务器文件夹之外有一个主文件,我在其中导入 server.py 并运行它。
import os
from server import Server
from sanic import Sanic
if __name__ == "__main__":
server = Server()
server.run(host=os.getenv("HOST"),port=int(os.getenv("PORT")))
我通过这个简单的服务器接受一些 POST 请求并在控制台中打印它们。它在 localhost 中工作正常,但在 web 服务器中如果我运行它,我会得到 webservers localhost 地址,该地址未公开公开。我怎样才能把它暴露给公众?我尝试了几个小时,gunicorn,sanic 内置服务器,apache,nginx 一切,但我失败了。我将不胜感激。
解决方法
我认为您需要做的是将 Sanic 绑定到 0.0.0.0
。
server.run(host="0.0.0.0",...)
Read this to learn about 0.0.0.0
或者,您可以放置您希望其公开的 IP 地址。如果不知道您如何在生产中部署它,就很难为您提供确切的细节。
如果您想就此进行更多对话,请随时在 Sanic 社区论坛或 Discord 服务器上发帖。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。