part2:服务器接收企业微信用户消息

2023-10-30

流程概括:

PART1:阿里云服务器配置

①购买并配置阿里云服务器(这里选择的是ESC云服务器 centOS7操作系统)

②配置安全组,开放端口(允许外部访问你的服务器)

③购买域名并解析到服务器端

④申请ssl证书并下载

PART2:远程操作服务器

①下载工具软件xshell和xftp,远程连接服务器并将相关文件(ssl证书、要部署的项目文件包)从本地上传服务器

②安装nginx(反向代理)并配置ssl证书

搭建项目所需环境(python环境、flask所需虚拟环境[我们的项目中用到python的轻量级web框架flask,flask正常运行需要虚拟环境])

④在服务器防火墙开放服务端口

⑤使用终端命令让项目后台运行

PART 1:阿里云相关配置

1.服务器:

服务器计算机的一种,它比普通计算机性能更好。服务器在网络中为其它客户机提供计算或者应用服务。

云服务器(Elastic Compute Service, ECS)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效,无需购买硬件,即可迅速创建或释放任意多台云服务器

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

登录阿里云管理后台:

地址:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

在云服务器概览查看我的资源——概览,单击实例名称查看详细信息

可以在详细信息中暂时关闭服务器,更改操作系统

 购买好服务器后在操作栏中点击更多,设置/更改远程连接密码

2.安全组:

阿里云服务器后台→右侧选项卡:安全组→创建安全组→操作选项卡:配置规则

手动添加:协议类型TCP;端口范围(特殊端口:如443为SSL协议端口;也有可以自定义服务的端口);授权对象0.0.0.0/0即为对所有访问方开放

3.域名: 

购买域名,完成实名认证

点击操作选项卡中的解析设置将域名解析到服务器

添加记录→两条记录类型分别为:@;www(一级/二级);记录值为主机IP地址;其他默认→状态正常即可

(域名备案:手机端下载APP搜索域名备案按提示操作即可)

检测解析结果:阿里云网站运维检测平台

PING 命令是用于确定本地主机(也就是你的机器)是否能与另一台主机(服务器和个人计算机)成功交换数据包,再根据返回的信息你就可以推断TCP/IP参数(因为现在网络一般都是通过TCP/IP传送数据的)是否设置,网络是否通畅等。

但不是PING成功就代表TCP/IP配置正确,你有可能要执行大量的本地主机与远程主机的数据包交换,才能确信TCP/IP配置的正确性.

打开终端(cmd),输入ping chichibomm.com,检测连接

4.ssl证书:

阿里云搜索ssl证书,可以免费申请ssl证书

申请后配置到服务器,如果不能检测到服务器,自行下载相关版本ssl证书后通过服务器终端命令将证书配置到服务器

数字证书&ssl证书:

数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。

SSL证书是数字证书的一种,遵守ssl协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能 ,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。

PART2:远程操作服务器

1.Xshell和xftp:

下载地址:家庭/学校免费 - NetSarang Website

Xshell用于远程连接服务器,Xftp用于传输本地文件到服务器

点击新建→使用ssh协议,默认端口号22,主机填写服务器公网IP,用户名(默认为root)密码(在阿里云服务器端设置/更改的服务器密码)方式登录进入终端

SSH协议:SSH Secure Shell 的缩写,是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH客户端适用于多种平台。几乎所有UNIX平台包括LHP-UXLinuxAIXSolarisDigital UNIXIrix,以及其他平台,都可运行SSH

终端页面如下(使用Linux命令)

几乎同样的方式用xftp远程连接到服务器并传输本地项目文件和ssl证书文件到主机(注意存放的目录[Linux基本目录结构:Linux目录结构和常用命令_Linux教程_Linux公社-Linux系统门户网站])

 2.nginx安装和ssl证书配置:

Nginx 安装配置 | 菜鸟教程

大致分为以下步骤:

①nginx所需环境安装(编译工具及库文件等);②nginx安装;③配置nginx.conf;④启动nginx

配置nginx.conf时要注意更改域名信息,监听端口改为443,<http>部分配置ssl证书(文件位置及文件名)

"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ11插口也属于物理端口的范畴。

443端口和80端口的区别?_weixin_39979119的博客-CSDN博客_443端口和80端口

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

Nginx是一个高性能的HTTP和反向代理服务器

关于正向代理服务器与反向代理服务器的区别问题_lyar1225的博客-CSDN博客_正向代理服务器

3.搭建项目所需环境:

python环境:(flask支持python3.6及以上版本)

python之(6)如何把python项目部署到linux服务器上 - 大码王 - 博客园

​​​​​​Linux部署Django:报错 nohup: ignoring input and appending output to ‘nohup.out’ - Tester北柯郡 - 博客园

centOS7自带python3环境,可跳过python环境的搭建

flask虚拟环境:

方法①:flask官方文档对虚拟环境下安装依赖的要求:安装 — Flask 中文文档 (2.0.2)

官方文件执行到python3 -m venv venv命令行时可能会报错,复制报错关键词搜索得到解决方案:加参数

python3 -m venv venv --system-site-packages --without-pip

方法②:virtualenv安装:virtualenv的介绍及基本使用(所有命令解释)_墨痕诉清风的博客-CSDN博客_virtualenv

#!/bin/bash
cd /opt
pip install virtualenv //安装虚拟环境软件
virtualenv flask       //创建虚拟环境flask
. flask/bin/activate   //激活虚拟环境

退出虚拟环境是deactivate命令

虚拟环境无所谓安装在哪个目录,只要为flask或其他项目依赖包搭建好虚拟环境保证其正常运行即可;

虚拟环境之间不会起冲突,但两个虚拟环境不能同时运行一个程序,因为程序运行占用同一个端口(在本项目中,两个环境唯一冲突的就是,两个不能时运行main.py,为什么呢?因为他们都跑了https的服务监听了443端口。);但可以分别运行不同的程序

4.在服务器防火墙开放服务端口:

Linux 防火墙 | Linux 服务器如何开放端口 配置防火墙_weixin_30399871的博客-CSDN博客

5.部署服务并在后台运行项目:

开源项目包 Huang-Shijie-SDUWH/Helpdesk​​​​

使用前阅读说明文件README.md

main.py为主程序,其他为主程序依赖函数等;需要更改的部分为main.py里的域名和ssl证书文件位置及证书名,新建config.yaml文件,用于放AESkey Stoken corpid secret参数(新建.py更改扩展名为yaml即可)

在文件资源管理器——查看中可以显示文件扩展名

 更改完成后将项目文件上传到服务器(位置一般为opt文件夹)

使用nohup命令使项目在后台运行

Linux nohup 命令 | 菜鸟教程

cd project
nohup python main.py > /dev/null 2> /dev/null &

查看后台程序是否重复运行:
 

ps -ef|grep python

 可以看出虚拟环境下的python主程序文件运行重复,杀掉32070

kill -s 9 (程序号)

前台运行测试:

cd /opt/project python main.py

出现error字段:address already in use,即前面提到过的程序运行重复,端口被占用问题

杀掉之前运行的程序再开启新的即可

last step:登陆企业微信后台→应用管理→验证url请求通过即可实现接收消息!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

part2:服务器接收企业微信用户消息 的相关文章

  • 在Python中,如何将矩阵逆时针旋转90度?

    gt gt gt def rotate matrix k List List int For example if I have m 1 2 3 2 3 3 5 4 3 rotate matrix m should give me 3 3
  • 如果 Excel 文件是由程序创建的,Pandas read_excel 对于具有简单公式的单元格返回 nan [重复]

    这个问题在这里已经有答案了 I use pd read excel读取由以下命令创建的 excel 文件openpyxl并从一个网址下载 解析后的数据框将给出nan如果单元格值是公式 which formula is simply 100
  • scipy.optimize on pandas dataframe

    我试图搜索它 但结果很差 有人可以向我解释一下如何在 Pandas DataFrame 上执行 optimize minimize 以便最小化 DataFrame 中的类别和结果列之间的错误 考虑这个例子 import pandas as
  • 键入的完整命令行

    我想获得输入时的完整命令行 This join sys argv 在这里不起作用 删除双引号 另外 我不想重新加入已解析和拆分的内容 有任何想法吗 你太迟了 当键入的命令到达 Python 时 您的 shell 已经发挥了它的魔力 例如 引
  • 带有 mkdocs 的本地 mathjax

    我想在无法访问互联网的计算机上使用 MathJax 和 Mkdocs 因此我不能只调用 Mathjax CDN Config mkdocs yml site name My Docs extra javascript javascripts
  • 用 Python 绘制直方图

    我有两个列表 x 和 y x 包含字母表 A Z Y 包含它们在文件中的频率 我尝试研究如何在直方图中绘制这些值 但在理解如何绘制它方面没有成功 n bins patches plt hist x 26 normed 1 facecolor
  • 如何从hdfs读取文件[重复]

    这个问题在这里已经有答案了 我在 project1目录下的hadoop文件系统中有一个文本文件名mr txt 我需要编写 python 代码来读取文本文件的第一行 而不将 mr txt 文件下载到本地 但我无法从 hdfs 打开 mr tx
  • 设置高亮大括号的 vim 颜色主题

    如何更改突出显示大括号的 vim 配色方案 我希望实际编辑 vim 主题文件以使更改永久生效 问候 克雷格 匹配括号的自动高亮颜色称为MatchParen 您可以通过执行以下操作来更改 vimrc 中的颜色 highlight MatchP
  • 更改 Matplotlib 投影轴的背景颜色

    我正在尝试使用 Cartopy 创建一个图形 该图形需要在未投影的轴上绘制投影轴 这是一个尽可能简单的代码版本 它将轴上的内容替换为背景颜色 import matplotlib pyplot as plt import cartopy cr
  • python Recipe:列出最接近等于值的项[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 考虑像这样的列表 0 3 7 10 12 15 19 21 我想获得最接近任何值的最近的最小数字 所以如果我通过4 我会得到3 如果我
  • 为什么 Collections.counter 这么慢?

    我正在尝试解决罗莎琳德的基本问题 即计算给定序列中的核苷酸 并在列表中返回结果 对于那些不熟悉生物信息学的人来说 它只是计算字符串中 4 个不同字符 A C G T 出现的次数 我期望collections Counter是最快的方法 首先
  • 如何在matplotlib中调整x轴

    I have a graph like this x轴上的数据表示小时 所以我希望x轴设置为0 24 48 72 而不是现在的值 很难看到 0 100 之间的数据 fig1 plt figure ax fig1 add subplot 11
  • 无法导入QUERY_TERMS

    我正在运行一个网站Python and Django Django filters 2 1 installed Django 2 1 installed 当我运行时 我收到以下错误 importError Could not import
  • 如何展平解析树并存储在字符串中以进行进一步的字符串操作 python nltk

    我正在尝试从树结构中获取扁平树 如下所示 我想将整个树放在一个字符串中 就像没有检测到坏树错误一样 S NP SBJ NP DT The JJ high JJ seven day PP IN of NP DT the CD 400 NNS
  • 两种 ODE 求解器之间的差异

    我想知道 两者之间有什么区别ODEINT and solve ivp用于求解微分方程 它们之间有什么优点和缺点 f1 solve ivp f 0 1 y0 y0 is the initial point f2 odeint f y0 0 1
  • pandas.read_fwf 忽略提供的数据类型

    我正在从文本文件导入数据框 我想指定列的数据类型 但 pandas 似乎忽略了dtype input 一个工作示例 from io import StringIO import pandas as pd string USAF WBAN S
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • MoviePY 无法在 Windows 上检测 ImageMagick 二进制文件

    我刚买了一台新笔记本电脑 想要设置MoviePY在那新的Windows 64x Python3 7 0 机器 我对所有内容都进行了三次检查 但是当涉及到我的代码的文本部分时 它向我抛出了这个错误 OSError MoviePy Error
  • 如何同时接受int和float类型的输入?

    我正在制作一个货币转换器 如何让 python 同时接受整数和浮点数 我就是这样做的 def aud brl amount From to ER 0 42108 if amount int if From strip aud and to
  • Biopython 可以执行 Seq.find() 来解释歧义代码吗

    我希望能够在 Seq 对象中搜索考虑歧义代码的子序列 Seq 对象 例如 以下内容应该是正确的 from Bio Seq import Seq from Bio Alphabet IUPAC import IUPACAmbiguousDNA

随机推荐

  • 【VxWorks】Vxworks、QNX、Xenomai、Intime、Sylixos、Ucos等实时操作系统的性能特点

    目录 1 VxWorks操作系统 2 QNX操作系统 3 Xenomai操作系统 4 INtime操作系统 5 SylixOS操作系统 5 1 SylixOS官网
  • uniapp 跳转传参 [‘object‘] 问题解决, 遇坑解决

    普通 号拼接传参不知道什么原因 接收参数时转换数据失败 换成模板传参试试 解决 传 ckgd productList 传参时先转为json 一定要用模板字符串传参 如下 uni navigateTo url pagesA service d
  • MySQL执行器与存储引擎是怎么交互的

    体系结构 1 连接器 2 查询缓存 3 分析器 4 优化器 多个索引 选择哪个索引 join的顺序 5 执行器 调用存储引擎接口获取满足条件的第一行记录 调用存储引擎接口获取满足条件的下一行记录 6 存储引擎 索引下推 假设现子表T有字段
  • c++泛型算法扩展和迭代器、反向迭代器

    cout lt lt 插入迭代器 lt lt endl back inserter 创建一个使用push back的迭代器 front inserter 创建一个使用push front的迭代器 inserter 创建一个使用insert的
  • bee-box

    这篇博客就是为了记下bee box做题过程 随便记记 免得忘了 安装 先去官网下载了 然后分个新的盘单独放进去 打开虚拟机 双击bee box vmx就能安装了 打开里面的火狐会自动跳去一个登录界面 默认账号和密码是bee bug 登录然后
  • GitHub 源代码被泄露了...

    阅读本文大概需要 4 分钟 来自量子位 GitHub 忽然 开源 了自己代码的一部分 还将它放在了 GitHub 上 事件起因是这样的 TypeScript 的开发者 Resynth 忽然 Po 了篇文章 表示代码托管服务 GitHub 的
  • 【牛客网OJ题】不要二

    题目描述 二货小易有一个WH的网格盒子 网格的行编号为 0 H 1 网格的列编号为0 W 1 每个格子至多可以放一块蛋糕 任意两块蛋糕的欧几里得距离不能等于2 对于两个格子坐标 x1 y1 x2 y2 的欧几里得距离为 x1 x2 x1 x
  • spring注解:@Autowired、@Qualifier、@Primary

    Autowired 默认情况下 Autowired 按类型装配 Spring Bean 如果容器中有多个相同类型的 bean 则框架将抛出 NoUniqueBeanDefinitionException 以提示有多个满足条件的 bean 进
  • Raki的读paper小记:SELF-INSTRUCT: Aligning Language Models with Self-Generated Instructions

    Abstract Introduction Related Work 研究任务 改进大模型遵循指令的能力 SELF INSTRUCT提供了一种几乎无需注释的方法来使预训练语言模型与指令对齐 已有方法和相关工作 许多研究提出使用语言模型进行数
  • Vue 2.0双向绑定原理的实现

    Object defineProperty方法 vue js是采用数据劫持结合发布 订阅者模式的方式 通过Object defineProperty 来劫持各个属性的setter getter 在数据变动时发布消息给订阅者 触发相应的监听回
  • 分布式系统的正确性验证方法

    分布式系统的正确性验证方法 1 Jepsen框架 Jepsen是一个开源的分布式一致性验证框架 可用于验证分布式数据库 分布式消息队列 分布式协调系统 Jepsen探索特定故障模式下分布式系统是否满足一致性 Jepsen框架是一个
  • 用于构建 RESTful Web 服务的多层架构

    文章出自 Bruce Sun Java 架构师 IBM 简介 由于它简便 轻量级以及通过 HTTP 直接传输数据的特性 RESTful Web 服务成为基于 SOAP 服务的一个最有前途的替代方案 在本文中 我们将概述 REST 和 RES
  • 分享63个最常见的前端面试题及其答案

    在前端面试中 各种面试题都会遇到 因此 今天我们整理了60 比较常见繁杂的面试题 希望这些面试题能够对你有所帮助 当然 这些面试题的答案都不是标准答案 只是对答案做了一个简介明了的说明 希望可以快速帮助你梳理重点核心内容 这些答案可以作为参
  • 密码破解---实验八:Windows本地破解用户口令

    目录 一 实验目的及要求 二 实验原理 1 Windows NT 系统密码存储的基本原理 2 SAM的导出方法 三 实验环境 四 实验步骤及内容 五 实验总结 六 分析与思考 一 实验目的及要求 1 了解Windows2000 XP Ser
  • apache服务详解

    APACHE服务 Apache HTTP Server 简称Apache 是Apache软件基金会的一个开放源码的网页服务器 可以在大多数计算机操作系统中运行 由于其多平台和安全性被广泛使用 是最流行的Web服务器端软件之一 它快速 可靠并
  • [机缘参悟-72]:深度思考-人生自省的四重境界:不觉、自觉、觉他、圆满

    前言 人有觉 自觉 觉他 觉行圆满 阐述了人生自省的三重状态 把 不觉 也放入其中 作为在芸芸众生的起点 福 看天下 众生皆苦 从 福 家来看 身体的劳作都算不上真正的苦 福 学中 对于 苦 有不同的认识 可以总结出人世间八大痛苦 此为众生
  • SpringSecurity源码分析(一) SpringBoot集成SpringSecurity即Spring安全框架的加载过程

    Spring Security是一个强大的并且高度可定制化的访问控制框架 它基于spring应用 Spring Security是聚焦于为java应用提供授权和验证的框架 像所有的spring项目一样 Spring Security真正的强
  • osError cannot load library‘Libsndfile.dll‘:error 0x7e

    解决 1 在所给报错路径下 在site packages文件夹下自己创建一个命名为 soundfile data的文件夹 2 下载libsndfile64bit dll文件 下载地址为https github com bastibe lib
  • MySQL8 详细安装步骤 【附安装包】

    一 准备安装包 方式1 云盘 下载 MySQL8 百度云盘下载地址 地址永久有效 链接 https pan baidu com s 1s BH7uizzuwr8P QAJzH4w 提取码 e2xf 方式2 官网下载 MySQL官网下载安装包
  • part2:服务器接收企业微信用户消息

    流程概括 PART1 阿里云服务器配置 购买并配置阿里云服务器 这里选择的是ESC云服务器 centOS7操作系统 配置安全组 开放端口 允许外部访问你的服务器 购买域名并解析到服务器端 申请ssl证书并下载 PART2 远程操作服务器 下