惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
T
Troy Hunt's Blog
L
Lohrmann on Cybersecurity
S
Schneier on Security
Spread Privacy
Spread Privacy
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
G
GRAHAM CLULEY
博客园 - 【当耐特】
有赞技术团队
有赞技术团队
SecWiki News
SecWiki News
博客园 - 叶小钗
博客园 - Franky
V
Vulnerabilities – Threatpost
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
O
OpenAI News
小众软件
小众软件
V
V2EX
N
News and Events Feed by Topic
T
The Exploit Database - CXSecurity.com
博客园 - 三生石上(FineUI控件)
The Hacker News
The Hacker News
Project Zero
Project Zero
The Last Watchdog
The Last Watchdog
雷峰网
雷峰网
Google Online Security Blog
Google Online Security Blog
T
Tailwind CSS Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
量子位
D
Docker
Recent Announcements
Recent Announcements
T
Threat Research - Cisco Blogs
P
Privacy International News Feed
爱范儿
爱范儿
PCI Perspectives
PCI Perspectives
Jina AI
Jina AI
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
大猫的无限游戏
大猫的无限游戏
V2EX - 技术
V2EX - 技术
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The Register - Security
The Register - Security
T
The Blog of Author Tim Ferriss
博客园 - 聂微东
Cloudbric
Cloudbric
S
Security Affairs
F
Fortinet All Blogs

熊孝兵的博客

2024:和自己对话 - 熊孝兵的博客 技术之外 - 熊孝兵的博客 自学了一年的摄影,我有哪些感悟。 - 熊孝兵的博客 为什么我如此钟爱 Apple 的产品 - 熊孝兵的博客 等风来,不如追风去,我的武功山之旅 🏞 - 熊孝兵的博客 入手 Sony α6400 - 熊孝兵的博客 摄影小白第一次相机出片 - 熊孝兵的博客 入手 Canon 70D 套机 - 熊孝兵的博客 2020 年终总结 - 熊孝兵的博客 游泳是门学问,喝水也是 - 熊孝兵的博客 小米手环5 NFC版开箱 - 熊孝兵的博客 Nintendo Switch Pro 手柄开箱 - 熊孝兵的博客 MacBook Pro 13 开箱 - 熊孝兵的博客 兰空图床的前生今世 - 熊孝兵的博客 2019 年终总结 - 熊孝兵的博客 小米手环4开箱 - 熊孝兵的博客 每天亿遍 - 熊孝兵的博客 渡劫,熊猫经历喵生的一道大坎... - 熊孝兵的博客 2018年终总结 - 熊孝兵的博客 Switch 港版开箱(多图) - 熊孝兵的博客
宝塔 WebHook 使用教程 - 熊孝兵的博客
2018-11-02 · via 熊孝兵的博客

最近开发一个微信的项目,需要配置服务器地址来接管消息处理,不能在像以前那样本地开发了,但也不能直接修改线上服务器的代码吧?这时候就要WebHook登场了。

简单介绍一下什么是WebHook:

Webhook是一个API概念,并且变得越来越流行。我们能用事件描述的事物越多,webhook的作用范围也就越大。Webhook作为一个轻量的事件处理应用,正变得越来越有用。

准确的说webhook是一种web回调或者http的push API,是向APP或者其他应用提供实时信息的一种方式。Webhook在数据产生时立即发送数据,也就是你能实时收到数据。这一种不同于典型的API,需要用了实时性需要足够快的轮询。这无论是对生产还是对消费者都是高效的,唯一的缺点是初始建立困难。

Webhook有时也被称为反向API,因为他提供了API规则,你需要设计要使用的API。Webhook将向你的应用发起http请求,典型的是post请求,应用程序由请求驱动。

接下来就来试试如何使用宝塔面板的WebHook插件吧!

1.1 安装Git

首先需要在你的服务器上安装git,登录服务器,执行 git --version命令查看是否安装。
如果没有,执行yum install git安装git

1.2 安装WebHook

进入宝塔面板,依次进入:软件管理->宝塔插件,在列表里可以看到宝塔WebHook插件,点击后面的安装即可。

1.3 添加WebHook

这里先随便输入一个符号(在编辑的时候重新添加shell命令进去,在上图输入框输入的命令会被过滤) 点击提交后,在编辑,输入下面的脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
echo ""
# 输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
# 判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then
echo "param参数错误"
echo "End"
exit
fi
# git项目路径
gitPath="/www/wwwroot/$1"
# git 网址
gitHttp="http://git.xxxxx.com/$1.git"

echo "Web站点路径:$gitPath"

# 判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
# 判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
git clone $gitHttp gittemp
mv gittemp/.git .
rm -rf gittemp
fi
# 拉取最新的项目文件
git reset --hard origin/master
git pull
# 设置目录权限
chown -R www:www $gitPath
echo "End"
exit
else
echo "该项目路径不存在"
echo "End"
exit
fi

添加完成以后,查看密钥

组成的链接是这样的:
http://面板Ip加端口/hook?access_key=密钥&param=项目在/www/wwwroot/目录下的目录

说明:当前shell命令把目录作为了变量 param 传输 考虑多项目的情况

1.4 配置git WebHook钩子

由于我使用码云比较多,这里就使用码云来做示例。

点击提交后,测试:

完成!

私有项目如何配置?

以上使用的是公开的仓库,所有人都有拉取代码的权限,那如果是私有项目如何通知服务器拉取呢?
这时候就需要用到项目部署公钥(SSH)了。

2.1 生成SSH公钥

首先登录服务器
输入命令cd ~/.ssh && ls查看有没有SSH key

如果没有,使用命令ssh-keygen -t rsa -C "[email protected]"生成。如下图所示:

复制好id_rsa.pub文件内容后,打开码云的私有项目,依次点击:管理->添加公钥,如图:

在码云上添加好公钥后,使用ssh -T [email protected]测试SSH连接:

2.2 更改shell命令中的git地址

复制码云私有项目仓库的SSH连接地址,如图:

将shell命令中的git地址更改为:gitHttp="你复制的SSH链接"

完成!