Python 3.x 无法在Gunicorn上部署dash应用程序
我想在Gunicorn上部署dash应用程序。但我不能这样做。执行Python 3.x 无法在Gunicorn上部署dash应用程序,python-3.x,gunicorn,plotly-dash,Python 3.x,Gunicorn,Plotly Dash,我想在Gunicorn上部署dash应用程序。但我不能这样做。执行gunicorn: 版本: 古尼科恩(20.0.4) 破折号(1.17.0) 仪表板核心部件(1.13.0) 破折号html组件(1.1.1) 仪表板渲染器(1.8.3) 仪表台(4.11.0) 我的dash应用程序,文件名:analyzer.py import dash_core_components as dcc import dash_html_components as html from dash.dependenc
gunicorn:
版本:
- 古尼科恩(20.0.4)
- 破折号(1.17.0)
- 仪表板核心部件(1.13.0)
- 破折号html组件(1.1.1)
- 仪表板渲染器(1.8.3)
- 仪表台(4.11.0)
analyzer.py
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import pandas as pd
import flask
<data_frame definitions>
app = dash.Dash()
server = app.server
<app.layout>
<Call backs>
## at the end
if __name__ == '__main__':
app.run_server()
我看到端口正在侦听,但是,我无法在服务器的公共IP和0.0.0.0上打开仪表板
端口8000处于侦听模式
sudo lsof -i -P -n | grep LISTEN
gunicorn 13003 user1 5u IPv4 49878669 0t0 TCP *:8000 (LISTEN)
gunicorn 13015 user1 5u IPv4 49878669 0t0 TCP *:8000 (LISTEN)
您能告诉我哪里出了问题吗?当服务器被告知要侦听
0.0.0
,这意味着“侦听所有绑定的IP地址”。浏览器可以使用绑定到该服务器的任何IP地址来访问它。127
系列地址是保证绑定到每台机器的一组地址之一
这意味着您应该能够浏览到https://127.0.0.0:8000
查看网络应用程序。另外,https://127.0.0.1:8000
,https://127.0.1.0:8000
,https://127.666.312.432:8000
等
但是,要求web浏览器访问
https://0.0.0.0
表示“我不知道要连接到哪里”,并且总是失败。包括所有端口,因此尝试浏览到https://0.0.0.0:8000
将始终失败。当服务器被告知侦听0.0.0.0
时,这意味着“侦听所有绑定的IP地址”。浏览器可以使用绑定到该服务器的任何IP地址来访问它。127
系列地址是保证绑定到每台机器的一组地址之一
这意味着您应该能够浏览到https://127.0.0.0:8000
查看网络应用程序。另外,https://127.0.0.1:8000
,https://127.0.1.0:8000
,https://127.666.312.432:8000
等
但是,要求web浏览器访问
https://0.0.0.0
表示“我不知道要连接到哪里”,并且总是失败。包括所有端口,因此尝试浏览到https://0.0.0.0:8000
将始终失败。因为我在终端上没有遇到任何错误消息,所以我尝试了wget
并找到了200 OK
响应。这表明我无法通过浏览器获取仪表板。
因此,我将端口添加到firewalld
并重新启动firewalld
。可以通过浏览器访问仪表板
[user1@myHost]$ gunicorn analyzer:server -b:8000
[2021-04-16 16:57:58 +0200] [8334] [INFO] Starting gunicorn 20.0.4
[2021-04-16 16:57:58 +0200] [8334] [INFO] Listening at: http://0.0.0.0:8000 (8334)
[2021-04-16 16:57:58 +0200] [8334] [INFO] Using worker: sync
[2021-04-16 16:57:58 +0200] [8345] [INFO] Booting worker with pid: 8345
感谢大家抽出时间。因为我在终端上没有遇到任何错误消息,所以我尝试了
wget
并找到了200 OK
响应。这表明我无法通过浏览器获取仪表板。
因此,我将端口添加到firewalld
并重新启动firewalld
。可以通过浏览器访问仪表板
[user1@myHost]$ gunicorn analyzer:server -b:8000
[2021-04-16 16:57:58 +0200] [8334] [INFO] Starting gunicorn 20.0.4
[2021-04-16 16:57:58 +0200] [8334] [INFO] Listening at: http://0.0.0.0:8000 (8334)
[2021-04-16 16:57:58 +0200] [8334] [INFO] Using worker: sync
[2021-04-16 16:57:58 +0200] [8345] [INFO] Booting worker with pid: 8345
感谢大家抽出时间。您是否尝试过将IP从0.0.0.0更改为127.0.0.1?是的,我在这里发布之前已经尝试过了。它不起作用。嗯,你能访问FastAPI部署的swagger文档吗?你能发布你的代码的其余部分吗?我想,代码的主要部分涉及部署,涉及应用程序代码中“服务器”的定义。代码的其余部分基本上是散布图和app.callback后面的功能逻辑。虽然它在本地运行良好,但当我在Linux上使用gunicorn进行部署时,即使在定义server=app.server并将其作为
gunicorn analyzer:server在gunicorn命令行中传递后,它也不起作用。您是否尝试过将IP从0.0.0.0更改为127.0.0.0.1?是的,我在这里发布之前已经尝试过了。它不起作用。嗯,你能访问FastAPI部署的swagger文档吗?你能发布你的代码的其余部分吗?我想,代码的主要部分涉及部署,涉及应用程序代码中“服务器”的定义。代码的其余部分基本上是散布图和app.callback后面的功能逻辑。尽管它在本地运行良好,但当我在Linux上使用gunicorn进行部署时,即使在定义server=app.server并将其作为gunicorn analyzer:server在gunicorn命令行中传递后,它也不起作用。我也这么想,但并不完全确定。很好的完整答案。嘿,如果你喜欢这个答案,请在评论之前告诉我;-)谢谢你,迈克。我尝试了127.0.0.1,甚至尝试了服务器的公共IP地址。但它没有起作用。似乎什么都不管用。然后我把我的问题贴在这里。你能进一步指导我吗。!!嘿,迈克,我将端口添加到firewalld
并重新启动了服务。成功了。谢谢你的时间。我也这么想,但不完全确定。很好的完整答案。嘿,如果你喜欢这个答案,请在评论之前告诉我;-)谢谢你,迈克。我尝试了127.0.0.1,甚至尝试了服务器的公共IP地址。但它没有起作用。似乎什么都不管用。然后我把我的问题贴在这里。你能进一步指导我吗。!!嘿,迈克,我将端口添加到firewalld
并重新启动了服务。成功了。谢谢你抽出时间。