04.Python Dash网页开发:ubuntu服务器部署DASH网站(uWSGI+nginx)

news2025/1/11 9:57:15

<~生~信~交~流~与~合~作~请~关~注~公~众~号@生信探索>

Dash官网只有付费的部署方式❌ 我的简单理解,uWSGI去运行dash app并且与nginx通讯;nginx处理浏览器传来的请求并把需求给uWSGI

Python enviroment

mkdir bioquest
vi ~/bioquest/dash.yaml
micromamba env create -n dash --file dash.yaml
micromamba activate dash

# vi ~/bioquest/dash.yaml
channels:
 - conda-forge
dependencies:
 - python=3.10
 - dash-bootstrap-components
 - numpy
 - pandas
 - plotly
 - dash-bootstrap-templates
 - scikit-learn
 - matplotlib
 - seaborn
 - uwsgi

directory

app还是上个推文的 03.Python Dash网页开发:多页面网站制作

把app全部文件目录复制到~/bioquest文件夹下

并且需要再app.py文件最后一行加上,因为wsgi从app.py中导入并运行的是server

server = app.server

Create wsgi.py

# vi ~/bioquest/wsgi.py
from app import server as application
if __name__ == '__main__':
    application.run()

Create index.ini

# vi ~/bioquest/index.ini
[uwsgi]
module = wsgi
master = true
processes = 2
socket = index.scok
chmod-socket = 770
vacuum = true
die-on-term = true
py-autoreload = 1

Create index.service

# sudo vi /etc/systemd/system/index.service
[Unit]
Description=uWSGI instance to serve index
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/bioquest
ExecStart=/home/ubuntu/micromamba/envs/dash/bin/uwsgi --force-cwd /home/ubuntu/bioquest --ini index.ini
StandardError=syslog
[Install]
WantedBy = multi-user.target

start and check

sudo systemctl restart index.service
sudo systemctl status index.service

现在的~/bioquest文件夹

app.py  
index.ini  
index.sock  
pages  
__pycache__  
static  
wsgi.py
dash.yaml

Configure Nginx

修改Nginx默认配置文件default。腾讯云服务器绑定域名需要备案,比较麻烦,所以暂时还是不搞吧。

需要在腾讯云服务器开一个新端口1314,如果用80或433应该就不需要新开端口了,因为一般都会默认开通。

alt
alt
sudo apt install nginx
sudo vi /etc/nginx/sites-available/default

server {
    listen 1314;
    server_name 111.230.57.251;
    location / {
            include uwsgi_params; 
            uwsgi_pass unix:/home/ubuntu/bioquest/index.sock;          
     }
}

修改Nginx配置,把user改为启动用户即root

sudo vi /etc/nginx/nginx.conf
user root;

启动所有服务

sudo systemctl daemon-reload
sudo systemctl start index.service
sudo systemctl enable index
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status index
sudo service nginx restart

#访问和错误日志
#/var/log/nginx/access.log
#/var/log/nginx/error.log

现在就可以在浏览器中访问到DASH网站了http://111.230.57.251:1314/

alt

References

https://carpiero.medium.com/host-a-dashboard-using-python-dash-and-linux-in-your-own-linux-server-85d891e960bc
https://medium.com/swlh/create-your-own-linux-server-with-nginx-for-beginners-with-ip-public-40c6c004b0b4
https://towardsdatascience.com/how-to-create-your-first-web-app-using-python-plotly-dash-and-google-sheets-api-7a2fe3f5d256

# nginx
https://www.nginx.com/resources/wiki/start/
https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
https://wiki.debian.org/Nginx/DirectoryStructure
https://blog.csdn.net/u011262253/article/details/120941175
https://www.runoob.com/w3cnote/nginx-setup-intro.html

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/558578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker搭建简单elk日志系统6(kibana设置)

1.进入kibana的索引管理界面清理调之前生成的测试数据流 2.模拟dev、uat、prod三个环境产生日志 修改filebeat配置文件&#xff0c;重启filebeat fields: application: testenv: devlog_type: normalfilebeat -c .\filebeat-test.yml产生日志 查看kibana数据流(已经生成dev环…

C++11 -- 类的新功能

文章目录 类的新功能默认成员函数类成员变量初始化强制生成默认函数的关键字default禁止生成默认函数的关键字delete继承和多态中的final和override关键字 类的新功能 默认成员函数 原来在C类中,有6个默认成员函数: 1: 构造函数 2: 拷贝构造函数 3: 拷贝赋值重载 4: 析构函数…

mysql 索引有哪几种?主键索引、唯一索引

面试题&#xff1a;mysql索引有哪几种&#xff1f; 答&#xff1a; 索引有两类&#xff0c;一是单列索引&#xff0c;二是组合索引。 单列索引&#xff0c;即一个索引只包含单个列&#xff0c;一个表可以有多个单列索引&#xff0c;但这不是组合索引。组合索引&#xff0c;即一…

SQL查询语言(3) 聚集查询和窗口函数的概念

查询结果排序 排序 规则如下: 1.语句: SELECT A1,A2.... FROM 表名 WHERE 选择条件 order by 属性1(ASC升序),属性3(DESC降序); 如果没有说明默认是升序排列: 2.对于空值的处理 如果是升序排列 NULL放在最后一行&#xff0c;如果是降序则放在第一行 上图为 按升序排列查询…

MyBatis动态SQL,基本语法加实战,一篇搞懂

问题&#xff1a; 有的时候我们需要实现批量删除&#xff1a;delete from t_car where id in(1,2,3,4,5,6,…这⾥的值是动态的&#xff0c;根据⽤户选择的 id不同&#xff0c;值是不同的); 多条件查询:有时我们需要根据多个不同地条件来进行查询&#xff0c;比如&#xff1a;se…

数据集成平台之kettle优缺点分析

数据集成平台前言 数据在业务中发挥着重要的作用&#xff0c;但并非所有数据都具有相同的价值和影响力。事实上&#xff0c;大部分数据业务的核心价值主要来自其中的少部分关键数据。这些关键数据可能包含着重要的业务指标、关键客户信息、市场趋势数据等&#xff0c;它们直接…

【机器学习】之Anaconda中使用的命令

操作之前&#xff0c;点击上图入口&#xff0c;进入Prompt。 //示例是在base环境下&#xff0c;cls清屏 (base) C:\Users\bubusa>cls1、base环境下的操作 //&#xff08;1&#xff09;列出所有虚拟环境 (base) C:\Users\bubusa>conda env list # conda environments: #…

Radeon Vii 系统分析 001记——工具

0. 简介 为了对 vega 7nm 有更感性的编程使用体验&#xff0c;故对 vega 7nm做各种测试&#xff1b; 工具&#xff1a; CLRadeonExtender ubuntu ROCm 资料&#xff1a; &#xff08;1&#xff09; 一张安装了 Radeon Vii vega 7nm 的台式机&#xff0c;win10 或 ubunt…

Mit6.006-lecture08-BinaryHeaps

一、优先队列接口 记录一些项目&#xff0c;快速地访问/移除最重要的 例&#xff1a;有限带宽的路由器&#xff0c;必须优先某些信息 例&#xff1a;操作系统内核中的进程调度 例&#xff1a;离散事件模拟&#xff08;下一件事何时发生&#xff09; 例&#xff1a;图算法&am…

js程序运行时在本机与外部app交互

js程序运行时在本机与外部app交互 目录 js程序运行时在本机与外部app交互 一、序言 1.1、问题 1.2、简要回答 二、原理 2.1、插件/web扩展/应用配置/权限 2.2、获取权限-原生应用交换信息的权限nativeMessaging 2.2.1、runtime(运行时的API) 2.3、连接本地应用程序的…

《微服务实战》 第十四章 RabbitMQ应用

前言 一般MQ用于系统解耦、削峰使用,常见于微服务、业务活动等场景。 1、RabbitMQ概念概念 RabbitMQ整体上是一个生产者与消费者模型,主要负责接收、存储和转发消息。 1.1、生产者和消费者 Producer:生产者,就是投递消息的一方。消息一般可以包含2个部分:消息体和标签…

Vue3+i18n多语言动态国际化设置步骤

1、技术介绍 i18n&#xff1a;Vue.js 的国际化插件。它可以轻松地将一些本地化功能集成到你的 Vue.js 应用程序中 i18n的官网地址安装 | Vue I18n (kazupon.github.io) 2、插件安装 npm install vue-i18n9 --save需要注意的是vue3最好使用9.x以上的版本&#xff01; 3、创建i…

夏日挂脖风扇方案开发设计

夏日挂脖风扇是一种便携式的风扇设备&#xff0c;通过挂在用户的脖子上&#xff0c;为用户提供清凉的风力降温。在夏季高温天气中&#xff0c;挂脖风扇成为了人们追逐的热门产品之一。为了满足市场需求&#xff0c;夏日挂脖风扇的方案开发设计需要考虑多个方面&#xff0c;包括…

Class 09 - Data Frame和查看数据

Class 09 - Data Frame和查看数据 DataFrametibbleshead()str()colnames()mutate()创建 Dataframe DataFrame 在我们开始做数据清洗或者检查数据是否存在偏差之前&#xff0c;我们需要先将我们的数据转换成合适的格式方便我们做后续的处理。 这就要说到DataFrame了。因为他很…

CSDN programmer_ada what the hell

CSDN programmer_ada 1、今天博客收到了1条评论&#xff0c;莫名其妙。2、查看这个账户 原来是CSDN官方机器人3、貌似领了红包 就会自动关注发红包的账户 1、今天博客收到了1条评论&#xff0c;莫名其妙。 一定要坚持创作更多高质量博客哦, 小小红包, 以资鼓励, 更多创作活动请…

【ClickHouse】什么是ClickHouse?CK入门

文章目录 一、ClickHouse入门1、列式存储2、DBMS的功能3、多样化引擎4、高吞吐写入能力5、数据分区与线程级并行6、性能对比7、官网 二、ClickHouse安装1、准备工作2、单机安装 三、ClickHouse的数据类型1、整型2、浮点型3、布尔型4、Decimal型6、枚举类型7、时间类型8、数组 一…

好程序员:女生学Java好学吗?女生学Java有什么优势?

小源经常会听到女生咨询适不适合学习Java开发的问题&#xff0c;提出这种问题归根结底还是缺乏性别自信&#xff0c;默认女性比男性弱。实际上这个问题并不存在&#xff0c;男女平等才是正确的思维&#xff0c;当然&#xff0c;也为了解开女生们的心结&#xff0c;这里好程序员…

开发微信公众号本地调试+-+cpolar内网穿透

文章目录 前言1. 配置本地服务器2. 内网穿透2.1 下载安装cpolar内网穿透2.2 创建隧道 3. 测试公网访问4. 固定域名4.1 保留一个二级子域名4.2 配置二级子域名 5. 使用固定二级子域名进行微信开发 转载自cpolar内网穿透的文章&#xff1a;微信公众号开发&#xff1a;对接本地开发…

股票?看我用python采集数据制作成交量图表

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 开发环境 & 第三方模块: 解释器版本: python 3.8 代码编辑器: pycharm 2021.2 requests: pip install requests 爬虫 pyecharts: pip install pyecharts 数据分析 pandas: pip install pandas 数据分析 基本流…

C++常用的支持中文的GUI库Qt 6之一:下载、安装与简单使用

C常用的支持中文的GUI库Qt 6之一&#xff1a;下载、安装与简单使用 因为Qt发展变化较快&#xff0c;网上许多介绍Qt的下载、安装与使用已过时&#xff0c;初学者常因行不通而受挫&#xff0c;故此发布本文&#xff0c;以Qt 6.2.4开源版在Windows 10安装与使用为例介绍。 C好用…