[英]Deploy a basic python sanic webserver
我有一個作為服務器文件夾的 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 服務器中如果我運行它,我會得到網絡服務器 localhost 地址,該地址不會公開。 我怎樣才能把它暴露給公眾? 我嘗試了幾個小時,gunicorn,sanic 內置服務器,apache,nginx 一切但我失敗了。 我將不勝感激任何幫助。
我認為您需要做的是將 Sanic 綁定到0.0.0.0
。
server.run(host="0.0.0.0", ...)
或者,或者,您可以放置您希望在其上公開的 IP 地址。 不知道如何在生產中部署它很難給你確切的細節。
如果您想參與更多關於此的對話,請隨時在 Sanic 社區論壇或 Discord 服務器上發帖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.