document.writeln('');
1 简介
这是我的系列教程Python+Dash快速web应用开发的第二十期。在上一期中,我介绍了如何通过内网穿透的方式,将任何可以联网的电脑作为“服务器”临时发布你的Dash应用。
然而,内网穿透作为一种临时展示的Dash应用发布方式,存在诸多局限性,尤其是在性能方面。对于较为正式的Dash应用,我们需要配合具有生产级别性能的web服务器进行发布。今天,我将介绍在windows和linux系统下,如何简单快速地发布你的Dash应用,适用于云服务器与局域网环境。
图1
2 利用waitress在windows中发布Dash应用
立即学习“Python免费学习笔记(深入)”;
首先,我们来介绍在windows中快速发布Dash应用的方式。我们需要用到waitress,这是一个可以在windows和unix系统中运行的具有生产级别性能的WSGI服务器。由于Dash是基于Flask的,因此配合waitress发布非常方便。
在使用pip install waitress完成安装后,我们主要有两种方式发布Dash应用:
方式一
第一种方式非常简单,是通过命令行进行发布。我们以项目结构篇中搭建的七普数据看板项目为例,在app.py的同级目录启动终端,执行下列命令:
1 |
|
这样,我们就启动了URL为本地ipv4地址:8888或公网ip地址:8888的Dash应用。其中本地ipv4地址可以通过在终端执行ipconfig来查看:
图2
因此,局域网内的任何设备都可以通过访问上述URL来使用我们发布的Dash应用(例如同一WIFI下的所有设备,同一内网下的所有宽带连接的设备):
图3
如果你需要通过windows云服务器向外网发布Dash应用,类似的访问时只需将IP部分替换为公网IP即可。
访问全球海洋潮汐模型。功能包括查询指定日期、时间和地点的潮高、潮汐极值及格点天气数据。
方式二
虽然waitress-server命令行的方式简单,但它只是一种简单需求下的快捷方式。实际上,waitress设计了很多功能参数,并可配合PasteDeploy和logging等其他库来打印和记录日志等增广功能。这时,我们需要使用另一种方式。
推荐的方式是在app.py同级目录建立wsgi.py文件,然后在其中配置waitress服务的相关参数。例如,上文中命令行的等价方式是:
1 2 3 4 5 6 |
|
接着在终端执行python wsgi.py即可。而关于serve()的更多参数,以及如何打印或记录日志信息,可以参考官网文档https://docs.pylonsproject.org/projects/waitress/en/latest/arguments.html和https://docs.pylonsproject.org/projects/waitress/en/latest/logging.html。
3 利用gunicorn在linux中发布Dash应用
当你的服务器为linux系统时,我们有更好的web服务器选择——gunicorn。它移植自Ruby的Unicorn项目,是一个兼具简单易用、轻量高效特点的非常流行的WSGI服务器,但只能运行于Unix系统中,因此前面介绍windows系统部署方法时没有提到它。
使用gunicorn来发布Dash应用也非常简单高效,例如dash-bootstrap-components的官网文档就使用它进行发布。
同样,利用pip install gunicorn完成安装后,只需一行命令我们就可以架起Dash应用。与上文waitress略有不同的是,我们需要在app.py中对server.py中的server对象进行导入,接着再执行下列gunicorn命令:
1 |
|
这样,我们就成功地在linux服务器上发布了Dash应用,同样可以通过公网和局域网IP进行访问,其中-w参数用于指定开启指定数量的进程来提高应用的并发性能。
图4
配合nohup我们可以轻松地将gunicorn命令置于后台执行,不会阻塞终端,如:
1 |
|
如果想要关闭后台运行在某个端口号下的所有gunicorn进程,执行kill $(lsof -i:端口号|awk {if(NR==2)print $2})命令即可一步到位。
同样地,gunicorn也拥有很多功能参数,常用的有--access-logfile来指定向外书写日志文件,-t用于设定请求的超时秒数阈值,默认为30秒。当你的Dash应用某个回调执行的计算时间很长时,请务必记住手动设置提升该参数的数值。
更多有关gunicorn的内容见官网https://docs.gunicorn.org/en/latest/index.html。
5元云服务器:入门级新手首选 我是一名刚毕业的大学生,对编程充满了热情,但现实总是骨感一些。刚踏入职场,我梦想着能独立开发一个网站或应用,却苦于没有足够的资源。买一台实体服务器太贵,租个虚拟空间又觉得门槛太高。直到有一天,我在网上偶然看到“5元云服务器”这个关键词,那一刻,我感觉就像黑暗中看到了一盏小灯——它便宜得几乎让人不敢相信,却可能就是通往梦想的第一步。 那天晚上,我点开了一个云服务网站,输…
6元服务器租用,高性价比VPS主机推荐 记得去年我刚开始创业,做了一个小型网站来展示我的产品。那时,我手头紧,预算有限,却急着需要一个可靠的服务器来托管网站。作为一个普通上班族,我对技术懂得不多,但我知道,服务器租用是必需的。我开始在网上搜索,关键词就是“6元服务器”,想找一个便宜又稳定的方案。 一开始,我以为6元服务器太便宜了,可能不靠谱。但经过一番比较,我发现确实有一些服务商提供这样的选项。这…
云服务器10元/月:经济型服务价格新记录 最近,云服务器的价格被推向了一个新低,10元一个月的方案让许多人惊喜不已。这不仅仅是数字上的变化,更是科技服务普惠化的一个标志。云服务器作为一种基于云计算的虚拟化服务,允许用户根据需求租用计算资源,而无需购买昂贵的物理硬件。10元一个月的定价,通常是针对入门级或共享型实例,适合个人开发者、小型网站或测试环境使用。这种价格水平源于市场竞争激烈和技术成本下降,…
实惠低价云服务器f2g评测 实惠低价云服务器F2G评测 随着云计算技术的快速发展,云服务器已经成为企业和个人开发者的重要选择。相比传统的物理服务器,云服务器在灵活性、可扩展性和成本上具有显著优势。然而,对于一些初创企业或个人开发者来说,选择一款性价比高、价格实惠的云服务器尤为重要。本文将对目前市场上较为热门的“实惠低价云服务器F2G”进行深入评测,从性能、稳定性、适用场景等多个维度进行分析,帮助用…
10Mbps云服务器实战指南 在当前数字化转型的大背景下,云服务器已成为企业信息化建设的重要基础设施。本文将围绕10Mbps云服务器的选购指南、配置优化、常见问题解决方案以及性能监控等方面,提供实用的建议和操作步骤,帮助用户高效部署并充分利用这一资源。 一、选购指南:如何根据业务需求选择合适的10Mbps云服务器? 1. 了解10Mbps带宽的实际应用 10Mbps云服务器适用于中小型企业网站、开…
2021年最全云服务器优惠大揭秘 嗨,大家好,我是小明,一个普通的小白领,最近我打算自己建个网站分享旅行照片和心得。刚开始,我觉得这挺简单的,但一查资料,就陷入了云服务器的世界。哈哈,别笑,我刚开始也觉得云服务器是高科技的东西,搞得我一头雾水。不过,2021年的时候,各大云服务商推出了不少优惠套餐,让我这个新手觉得机会来了。你想知道2021年云服务器优惠套餐有哪些吗?让我来和你分享我的经历。 回想…