Python 如何使用Nginx反向代理部署电报Bot

Python 如何使用Nginx反向代理部署电报Bot,python,nginx,telegram-bot,python-telegram-bot,Python,Nginx,Telegram Bot,Python Telegram Bot,我用python电报bot库开发了一个电报bot,现在我想在我的服务器上部署它,所以我设置了一个webhook(如下),但是当我尝试与我的bot通信时,我没有得到任何回复 这是bot的来源: server { listen 443 ssl; server_name example.com; location /1134xxxx { proxy_pass http://127.0.0.1:8443; } } sudo netstat -an | grep 8843

我用
python电报bot
库开发了一个电报bot,现在我想在我的服务器上部署它,所以我设置了一个webhook(如下),但是当我尝试与我的bot通信时,我没有得到任何回复

这是bot的来源:

server {
  listen 443 ssl;
  server_name example.com;


  location /1134xxxx {
     proxy_pass http://127.0.0.1:8443;
  }
}
sudo netstat -an | grep 8843
tcp        0      127.0.0.1:8843            0.0.0.0:*               LISTEN 
def main():
PRIVTOKEN=“1134xxx”
updater=更新程序(PRIVTOKEN)
dp=updater.dispatcher
dp.add_handler(CommandHandler(“start”,start))
# ...
updater.start_webhook(listen='127.0.0.1',
端口=8843,
url_path=PRIVTOKEN)
updater.bot.set\u webhook(webhook\u url=)https://example.com/“+PRIVTOKEN,
证书=打开(“cert.pem”、“rb”))
打印(“机器人启动”)
updater.idle()
nginx配置文件:

server {
  listen 443 ssl;
  server_name example.com;


  location /1134xxxx {
     proxy_pass http://127.0.0.1:8443;
  }
}
sudo netstat -an | grep 8843
tcp        0      127.0.0.1:8843            0.0.0.0:*               LISTEN 
netstat状态:

server {
  listen 443 ssl;
  server_name example.com;


  location /1134xxxx {
     proxy_pass http://127.0.0.1:8443;
  }
}
sudo netstat -an | grep 8843
tcp        0      127.0.0.1:8843            0.0.0.0:*               LISTEN 
没有其他由bot(我已启用错误日志)或nginx(access/error.log)记录的错误


我还为防火墙中的8843端口添加了自定义规则。

电报仅支持
https
请求。注意这一点

我的nginx配置:

server {
        listen 80;
        listen 443 ssl;
        server_name example.com www.example.com;
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
        if ($scheme = http) {
            return 301 https://$server_name$request_uri;
        }
    location / {
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Scheme $scheme;
            proxy_pass http://localhost:5005/;
    }
}

请重新检查您的描述-您的python应用程序在8843上侦听,但nginx代理到8443端口(netstat很糟糕,我建议使用lsof-I:8443)通过修复此键入错误也不起作用。我没有说这会有帮助,我只是想清楚地了解情况。请更新初始描述。然后我建议逐跳检查:确保您的数据包可以到达Nginx,然后确保来自Nginx的数据包可以到达您的应用程序。例如,您可以使用tcpdump或使用某种日志记录(包括nginx日志)尝试向服务器添加一个无letsencrypt的https证书