我有一个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请求,并在console.It中打印它们,在本地主机上工作正常,但是在web服务器中,如果我运行它,就会得到webservers本地主机地址,这个地址不会公开。我怎么才能把它公开呢?我尝试了几个小时、几个月、几个小时、一个我很感谢你的帮助。
发布于 2021-04-28 10:26:28
我认为您需要做的是将Sanic绑定到0.0.0.0。
server.run(host="0.0.0.0", ...)Read this to learn about 0.0.0.0
或者,您也可以将您希望它公开的IP地址放在上面。不知道如何在生产中部署它,很难给出确切的细节。
如果你想参与更多关于这方面的对话,请随意在卫生社区论坛或不和谐服务器上发表文章。
https://stackoverflow.com/questions/67287689
复制相似问题