簡體   English   中英

部署一個基本的 python sanic webserver

[英]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", ...)

閱讀本文以了解0.0.0.0

或者,或者,您可以放置您希望在其上公開的 IP 地址。 不知道如何在生產中部署它很難給你確切的細節。

如果您想參與更多關於此的對話,請隨時在 Sanic 社區論壇或 Discord 服務器上發帖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM