中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何配置node服務器并且鏈接微信公眾號接口配置

發布時間:2021-08-17 14:05:23 來源:億速云 閱讀:116 作者:小新 欄目:web開發

這篇文章主要為大家展示了“如何配置node服務器并且鏈接微信公眾號接口配置”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何配置node服務器并且鏈接微信公眾號接口配置”這篇文章吧。

配置node服務器

在購買好服務器后,用Xshell鏈接到服務器。

1、安裝nvm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
或者
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

安裝完,關閉重新啟動一下Xshell。

2、用nvm安裝node

// 查看當前可安裝node版本
nvm ls-remote
// 選擇'nodejs.org'官網LTS穩定版本
nvm install v10.16.0
// 出現這樣的顯示表示安裝好了,默認的是v10.16.0的node版本,6.9.0的npm版本
Now using node v10.16.0 (npm v6.9.0)
Creating default alias: default -> v10.16.0
// 可以使用命令查看版本
node --version 
// nvm可以安裝多個node版本
nvm install v10.11.0
// 可以使用命令查看安裝了多少個node版本
nvm ls
// 可以使用命令指定默認的node版本,如果安裝了多個node版本,一定要指定一個默認的版本
nvm alias default v10.11.0
// 如果你不想使用默認,只是零時用一下,可以使用命令
nvm use v10.11.0

3、安裝nginx

// 查看服務器系統版本
$ cat /etc/redhat-release 
// 安裝epel-release 源
yum install epel-release -y
// 打開源配置
vim /etc/yum.repos.d/nginx.repo
// 在配置中設置nginx安裝源,具體可以參考nginx官網文檔('http://nginx.org/en/linux_packages.html#stable')
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
// 安裝nginx
yum install nginx -y
// 查看nginx是否安裝成功,成功的話會顯示路徑
whereis nginx

4、設置nginx

// 設置開機啟動
systemctl enable nginx
// 啟動服務,重啟是'systemctl restart nginx',停止是 'stop'
systemctl start nginx
// 重新加載,因為一般重新配置之后,不希望重啟服務,這時可以使用重新加載
systemctl reload nginx
// 查看服務器狀態
systemctl status nginx
// 如果CentOS7 系統打開了防火墻,還需打開防火墻端口
firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
firewall-cmd --list-service
// 如果要使用反向代理,CentOS7 需要打開網絡訪問權限
setsebool httpd_can_network_connect 1

5、部署測試項目

// 創建文件夾
mkdir server
// 進入文件夾
cd server
// 創建js文件
vim home.js
// 編寫測試代碼,注意,這里的ip地址一定要配置成0.0.0.0,如果配置成127.0.0.1,外網會報錯端口3000鏈接不通
const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`服務器運行在 http://${hostname}:${port}/`);
});
// 啟動
node home.js
// 如果報錯'Unhandled 'error' event',可能是端口被占用了,先查看端口占用情況
ps -ef|grep node
// 如果有占用,刪除占用,'xxxx'為'root'后的數字
skill -9 xxxxx

出現:服務器運行在 http://0.0.0.0:3000/ 即表示node運行成功,運行成功后,登錄阿里云后臺配置安全組規則
配置成功如下顯示:

允許 自定義 TCP 3000/3000 IPv4地址段訪問 0.0.0.0/0 node后臺端口

然后就可以在瀏覽器地址欄輸入你的服務器公網ip地址加上:3000,成功出現Hello World即表示安全組配置成功

6、配置nginx

// 進入 '/etc/nginx' 文件夾,查看下 'nginx.conf' 配置文件
cd /etc/nginx
ls
vim nginx.conf
// 低版本的nginx 'nginx.conf' 文件夾里有以下內容
// # include /etc/nginx/conf.d/*.conf;
// # include /etc/nginx/sites-enabled/*;
// 去掉 '#' 號
// 創建nginx配置文件,文件名隨意,我一般喜歡用項目名加端口號,比如 'wxServer-3000'
vim /etc/nginx/conf.d/wxServer-3000.conf
// 編寫配置文件代碼
# 項目名字
upstream wxServer {
# 需要代理的node端口號,也就是你寫的端口號
server 0.0.0.0:3000;
# nginx最大連接數
keepalive 8;
}
# nginx服務器實例
server {
# 代理出去的端口號,默認Http協議的80端口,如果配置其它端口需要更改 SELinux 的設置
listen 0.0.0.0:80;
# 別人訪問的域名或者ip地址,多個用空格隔開
server_name lzf.fun www.lzf.fun;
# 錯誤日志存放地址
access_log /var/log/nginx/wxServer-3000.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
# proxy_pass 設置反向代理用服務器域名,不使用反向代理,直接用上面upstream的名字就可以了
proxy_pass http://wxServer/;
proxy_redirect off;
}
}
// 保存配置文件后,檢查是否編寫錯誤
nginx -t
// 出現以下內容為正確
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
// 重新加載nginx服務器
systemctl reload nginx
// 在阿里云后臺開啟80端口的安全組,然后在瀏覽器輸入域名,可以看到 'Hello World' 就表示nginx配置成功了

7、配置PM2

// 安裝PM2
npm install pm2 -g
// 進入你的node項目存放的文件夾,pwd是你的文件夾路徑
cd pwd
// 啟動pm2,--watch監聽,每次改動代碼自動啟動,-i 1 啟動一個實例,根據服務器又幾個核心設置
// -i 0 則會根據機器當前核數自動開啟盡可能多的進程
pm2 start home.js --watch -i 1
// 查看pm2
pm2 ls
// 查看錯誤日志
pm2 logs
// 重啟
pm2 restart home.js
// 停止,id通過查看獲得
pm2 stop home|id
// 刪除
pm2 delete home|id
// 了解程序的詳細信息
pm2 describe home|id
// 關閉Xshell,刷新域名,還可以看見 'Hello World' 表示配置成功

鏈接微信公眾號接口配置

8、編寫本地node代碼

const Koa = require('koa')
const cors = require('koa2-cors')
const Router = require('koa-router')
const crypto = require('crypto')
const app = new Koa()
// 微信配置
const config = {
wechat: {
appID: 'appID',
appsecret: 'appsecret',
token: 'Maya'
}
}
// 使用koa2-cors解決跨域問題
app.use(
cors({
origin: ctx => {
if (ctx.url === '/test') {
return false
}
return '*'
},
exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'],
maxAge: 5,
credentials: true,
allowMethods: ['GET', 'POST', 'DELETE'],
allowHeaders: ['Content-Type', 'Authorization', 'Accept']
})
)
// 給微信驗證的
const wxServer = new Router()
wxServer.get('/', async ctx => {
const { signature, timestamp, nonce, echostr } = ctx.query
const token = config.wechat.token
let hash = crypto.createHash('sha1')
const arr = [token, timestamp, nonce].sort()
hash.update(arr.join(''))
const shasum = hash.digest('hex')
if (shasum === signature) {
return (ctx.body = echostr)
}
ctx.status = 401
ctx.body = 'Invalid signature'
})
// 裝載所有路由
const router = new Router()
router.use('/forWx', wxServer.routes(), wxServer.allowedMethods())
// 加載路由中間件
app.use(router.routes()).use(router.allowedMethods())
app.listen(3000)
console.log('[demo] start-quick is starting at port 3000')

9、通過內網穿透的方式測試本地代碼是否ok

1、通過localtunnel啟動內網穿透,不推薦,有可能啟動成功,但是域名鏈接失敗

// 安裝
npm install -g localtunnel
// 開啟本地服務器
lt --port 3000

2、通過natapp啟動內網穿透,配置需要花費一點時間

可以通過內網穿透工具natapp!這篇文章安裝配置,

如果你代碼寫的是開啟3000端口,那么最好也配置成3000端口

tips:如果看到隧道鏈接成功,但是127.0.0.1:3000端口鏈接失敗的提示,不代表安裝配置失敗,是需要你啟動一下代碼

安裝配置成功后,啟動

node home.js

能夠成功在瀏覽器上看到 Invalid signature 表示內網穿透成功

10、開啟一個微信公眾平臺測試賬號

在微信公眾平臺測試管理頁面,接口配置信息,URL填寫你natapp啟動的域名加上forWx,比如我的域名是

http://qf7rja.natappfree.cc/forWx

Token是你自己自定義的,可以隨便寫,但是要和你本地代碼里的Token一致,我這里用的是Maya

點擊提交,顯示配置成功

11、服務器鏈接微信公眾號接口配置

通過上面的測試賬號,驗證了代碼沒有問題,可以配置成功接口配置,剩下的就是把代碼上傳到服務器了,安裝選擇rz和sz,當然,使用xftp更好

// 安裝
yum install lrzsz -y
// 上傳,執行命令,選擇打包文件
rz
// 下載,filename是你打包的服務器文件夾,或者單個文件
sz filename

上傳成功后,解壓縮,清除前面的 Hello World 代碼,清空 PM2 ,重新把現在代碼掛到 PM2 上

在瀏覽器上輸入域名 + forWx 能出現 Invalid signature 表示成功,如果沒有出現,配置不成功,需要排查原因

在微信公眾平臺登錄賬號,選擇基本配置-->服務器配置,然后按照配置測試賬號的方式去配置。

以上是“如何配置node服務器并且鏈接微信公眾號接口配置”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

越西县| 资中县| 定州市| 灵川县| 永年县| 潜山县| 夏河县| 措美县| 嘉兴市| 平南县| 谷城县| 若羌县| 凭祥市| 辛集市| 海城市| 中宁县| 东辽县| 新疆| 斗六市| 绵阳市| 同德县| 安溪县| 余干县| 蓬安县| 两当县| 平罗县| 汉川市| 邓州市| 青田县| 伊金霍洛旗| 中山市| 兴义市| 汤阴县| 瑞金市| 满城县| 金川县| 民权县| 沧源| 武穴市| 玉田县| 神木县|