基于华为云服务器的网页部署

news2024/12/21 17:45:20

  这仅仅是对自己使用过程中部分记录。后续有时间我会把从服务器租用到网页部署的全过程都整理下。

1. 华为云服务器的租用

  可以前往华为云租弹性云服务器,具体配置可以看自己的需求,链接在这,我这边选择了ubuntu18.04版本的系统。
在这里插入图片描述
  租用成功后可以使用Xshell等软件进行服务器的登录,这个就不介绍了,登陆成功的界面如下:
在这里插入图片描述

2. 在华为云服务器上部署 Flask 应用

  在华为云服务器上创建一个 Flask 应用,可以用于接收和展示来自 IoT 平台的数据。首先的就是安装 Flask 和 Gunicorn,其中可以选择安装Nginx作为Web服务器来处理客户端的请求
  a. 安装 Flask 和 Gunicorn
    1.在服务器上安装 Flask 和 Gunicorn:pip3 install flask gunicorn

pip3 install flask gunicorn

    2.创建一个 Flask 应用,接收 IoT 数据并展示。
  b. Flask 应用代码示例

from flask import Flask, request, jsonify
import threading
import time

app = Flask(__name__)

iot_data = []  # 用于存储来自 IoT 设备的数据

# 接收来自华为云 IoT 平台的数据
@app.route('/data', methods=['POST'])
def receive_data():
    data = request.get_json()  # 获取 JSON 格式的请求数据
    if data:
        iot_data.append(data)  # 将数据存储在全局变量中
        if len(iot_data) > 10:  # 保留最近 10 条数据
            iot_data.pop(0)
        print(f"Received data: {data}")
        return jsonify({"message": "Data received"}), 200
    else:
        return jsonify({"message": "No data received"}), 400

# 通过网页查看 IoT 数据
@app.route('/view', methods=['GET'])
def view_data():
    return jsonify(iot_data)

# 显示主页面
@app.route('/')
def index():
    return "<h1>Welcome to IoT Data Viewer</h1><p>Go to <a href='/view'>/view</a> to see the IoT data.</p>"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)

  c. 运行 Flask 应用
使用 Gunicorn 在后台运行 Flask 应用:

gunicorn --workers 3 app:app -b 0.0.0.0:8000 --daemon

这样 Flask 应用会监听服务器的 8000 端口,用于接收来自华为云 IoT 平台的数据,并通过 /view 路径显示数据。
下面是用来关闭的命令

sudo pkill gunicorn  
sudo nano /etc/nginx/sites-available/default
sudo systemctl restart nginx

3. 配置 Nginx 反向代理

为了确保通过标准的 HTTP 端口访问 Flask 应用,我们可以使用 Nginx 作为反向代理,将 HTTP 请求从 80 端口转发到 8000 端口。
a. 安装 Nginx

sudo apt update
sudo apt install nginx

b. 配置 Nginx
编辑 Nginx 的默认配置文件:

sudo nano /etc/nginx/sites-available/default

将 Nginx 的配置修改为以下内容:

server {
    listen 80;
    server_name your_server_ip;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

重启 Nginx 以使配置生效:

sudo systemctl restart nginx

4. 测试数据流转和展示

现在,你的华为云 IoT 设备应该能够将数据通过 HTTP POST 发送到你的华为云服务器,服务器可以使用 Flask 来处理并展示这些数据。
测试步骤:
在 华为云 IoT 平台 中,确保设备成功上报数据,并通过规则引擎将数据转发到你的服务器。
在浏览器中访问你的服务器的 IP 地址:

http://“自己的ip”

你应该能够看到从 IoT 设备上报的数据以 JSON 格式显示在网页上。

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

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

相关文章

春之学习体验:SpringBoot教育平台开发

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于在线视频教育平台当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了在线视频教育平台&#xff0c;它彻底改变了过…

bestphp‘s revenge1

进入这个页面又是令人激动的代码审计环节. 不过再次之前呢先补充一些弥足珍贵的知识点. 前置知识点&#xff1a; call_user_func() call_user_func() 是 PHP 中的一个非常有用的函数&#xff0c;它允许你调用一个回调函数。回调函数可以是一个匿名函数&#xff08;也称为闭…

C#实现串口中继

前一段时间为了测试硬件产品&#xff0c;发现&#xff0c;串口转发不太方便&#xff0c;于是自己写了一个简单的串口中继小程序&#xff0c;是基于C#开发的&#xff0c;可以将两个串口互通&#xff0c;方便自己在程序的使用&#xff0c;目前看起来应用还可以&#xff0c;现在把…

2024年最新软件测试面试题【附文档答案】

【纯干货&#xff01;&#xff01;&#xff01;】花费了整整3天&#xff0c;整理出来的全网最实用软件测试面试大全&#xff0c;一共30道题目答案的纯干货&#xff0c;希望大家多多支持&#xff0c;建议 点赞&#xff01;&#xff01;收藏&#xff01;&#xff01;长文警告&…

《Discriminative Class Tokens for Text-to-Image Diffusion Models》ICCV2023

摘要 论文讨论了文本到图像扩散模型的最新进展&#xff0c;这些模型能够生成多样化和高质量的图像。然而&#xff0c;生成的图像常常缺乏细节&#xff0c;并且由于输入文本的歧义性&#xff0c;容易产生错误。为了解决这些问题&#xff0c;作者提出了一种非侵入式的微调技术&a…

AgentOhana:为智能体学习设计统一的数据和训练流水线

人工智能咨询培训老师叶梓 转载标明出处 多源数据异构性问题通常来源于多轮交互的Agent相关数据。不同数据集之间的数据结构、语法、标签约定和处理方法的多样性&#xff0c;使得LLM的训练和微调过程变得复杂&#xff0c;且容易引入偏差和不一致性。为了应对这些挑战&#xff…

2024年做了TMMi认证的中国企业有哪些

&#xff08;本文章企业名单来源&#xff1a;TMMi基金会官方网站&#xff09; 您是否想要了解2024年&#xff08;截至8月底&#xff09;有哪些新增企业做了TMMi认证&#xff08;不含2级&#xff09;&#xff1f; 以下是TMMi基金会官网查询的内容&#xff1a; TMMi基金会官网公…

数据结构————单链表

目录 一、单链表的定义及其特点 定义 特点 二、单链表的实现 准备工作&#xff1a; 1.单链表的创建 1.1头插法介绍 1.2尾插法介绍 总结&#xff1a; 2.单链表的初始化 3.单链表的求表长 4.单链表的销毁 5.单链表的插入 6.单链表的查找 6.1按序查找 6.2按值查找 7…

UDP聊天室项目

代码思路 服务器 #include <stdio.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <netinet/in.h> #include <netinet/ip.h> #include <stdlib.h> #include <unistd.h> #include <arpa/inet.h>…

每周心赏|极致浪漫,这些中秋仪式感AI住了

盈月揽星辉&#xff0c;万家赴团圆。✨ 月光散尽&#xff0c;总是带着一丝温柔的凉意。 &#x1f342;清风拨弦&#xff0c;总是留存着诗意的古韵悠扬。 千年前&#xff0c;李白对月独酌&#xff0c;苏轼对影成双&#xff0c; 千年后&#xff0c;文心智能体便利店与你穿越时…

adb的安装和使用 以及安装Frida 16.0.10+雷电模拟器

.NET兼职社区 .NET兼职社区 .NET兼职社区 1.下载adb Windows版本&#xff1a;https://dl.google.com/android/repository/platform-tools-latest-windows.zip 2.配置adb环境变量 按键windowsr打开运行&#xff0c;输入sysdm.cpl&#xff0c;回车。 高级》环境变量》系统变量》…

【C++】_stack和_queue容器适配器、_deque

当别人都在关注你飞的有多高的时候&#xff0c;只有父母在关心你飞的累不累。&#x1f493;&#x1f493;&#x1f493; 目录 ✨说在前面 &#x1f34b;知识点一&#xff1a;stack •&#x1f330;1.stack介绍 •&#x1f330;2.stack的基本操作 &#x1f34b;知识点二&…

电脑之间如何快速传大文件?

这里&#xff0c;为大家介绍一款免费的远程桌面软件——远程看看&#xff0c;该软件不仅支持远程控制&#xff0c;还提供了文件传输功能&#xff0c; 用户可以传输单个文件大小不超过2TB&#xff0c;且传输速度可达每秒10MB。若您不知道电脑之间如何快速传大文件&#xff0c;远…

城市交通标线检测系统源码分享

城市交通标线检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

redis基本数据类型和常见命令

引言 Redis是典型的key-value&#xff08;键值型&#xff09;数据库&#xff0c;key一般是字符串&#xff0c;而value包含很多不同的数据类型&#xff1a; Redis为了方便我们学习&#xff0c;将操作不同数据类型的命令也做了分组&#xff0c;在官网&#xff08; Commands | Do…

Kafka 基于SASL/SCRAM动态认证部署,kafka加账号密码登录部署

文章目录 前言下载 kafka安装启动zookeeper添加账号密码 启动kafka修改kafka配置文件增加jaas授权文件修改启动文件&#xff0c;启动kafka检查是否部署成功 offset explore 连接 前言 其实挺简单的几个配置文件&#xff0c;问大模型一直没说到点上&#xff0c;绕晕了。SASL/SC…

Vue3.0组合式API:setup()函数

1、什么是组合式API Vue 3.0 中新增了组合式 API 的功能&#xff0c;它是一组附加的、基于函数的 API&#xff0c;可以更加灵活地组织组件代码。通过组合式 API 可以使用函数而不是声明选项的方式来编写 Vue 组件。因此&#xff0c;使用组合式 API 可以将组件代码编写为多个函…

浅谈EXT2文件系统----超级块

超级块概述 在 EXT2 文件系统中&#xff0c;超级块&#xff08;superblock&#xff09;是一个非常重要的数据结构&#xff0c;包含了文件系统的全局信息。每个文件系统都有一个超级块&#xff0c;位于文件系统的第一个块之后&#xff0c;通常在块组的起始处。 超级块包含以下关…

Autosar模式管理实战系列-COMM模块状态机及重要函数讲解

1.Channel状态管理 上一节提到ComM进行通信模式管理提供有两大状态机,另外一个就是Channel状态管理。这里的Channel指的是一个通信总线,目前项目主要是采用CAN总线。ComM 模块对每一个Channel都定义了一个状态机,用于描述通道的各种状态、状态转移关系和状态转移动作。该状…

NFT Insider #147:Sandbox 人物化身九月奖励上线;Catizen 付费用户突破百万

市场数据 加密艺术及收藏品新闻 Doodles 动画特别剧《Dullsville and The Doodleverse》在多伦多国际电影节首映 Doodles 最近在多伦多国际电影节&#xff08;TIFF&#xff09;首映了其动画特别剧《Dullsville and The Doodleverse》&#xff0c;这是该品牌的一个重要里程碑。…