欢迎光临
我们一直在努力

服务器部署流程(配置node服务器在购买好服务器后,用链接到服务器)

配置节点服务器并链接微信公众号接口配置

配置节点服务器

购买服务器后,使用服务器链接。

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 复制代码

安装后,关闭并重新启动。

2.用nvm安装节点

// 查看当前可安装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 复制代码

出现:服务器运行在:3000/微信服务器,表示节点运行成功。操作成功后,登录阿里云后台配置安全组规则

配置成功如下:

允许 自定义 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.编写本地节点代码

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.通过启动内网穿透,不推荐。可能启动成功,但是域名链接失败。

// 安装 npm install -g localtunnel // 开启本地服务器 lt –port 3000 复制代码

2.通过启动内网穿透,配置需要一点时间

可以通过内网穿透工具!本文安装配置,

如果你的代码是为了开放 3000 端口而写的,那么最好也配置 3000 端口

Tips:如果看到隧道链接成功,但是127.0.0.1:3000端口链接失败,不代表安装配置失败,需要启动代码

安装配置成功后,启动

// 查看当前可安装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 复制代码 0

如果可以在浏览器上成功看到,则说明内网穿透成功。

10.开通微信公众平台测试号

在微信公众平台的测试管理页面,界面配置信息和网址填写你启动的域名加forWx,比如我的域名是

// 查看当前可安装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 复制代码 1

Token是你自己的,你可以随便写,但必须和你本地代码中的Token一致。我在这里使用玛雅。

点击提交,显示配置成功

11.服务器链接微信公众号接口配置

通过上面的测试账号,验证代码没有问题,接口配置可以配置成功。剩下的就是把代码上传到服务器,选择rz和sz进行安装。当然最好还是用xftp

// 查看当前可安装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 复制代码 2

上传成功后解压,清除之前的Hello World代码,清除PM2,将当前代码重新挂在PM2上

在浏览器上输入域名+forWx,表示成功,如果没有出现,说明配置不成功,需要查看原因

登录微信公众平台账号,选择基本配置–>服务器配置,然后用同样的方法配置测试账号

点击提交,显示配置成功

结尾

嘘~~~我长长的吸了一口气,研究了很久。节点服务器终于配置成功了,已经链接到公众号接口配置了,我还有一个测试号。

您可以使用测试账号在本地编写代码,然后上传到服务器进行验证。

这样做的原因是,测试账号被破解了也无妨,一眨眼又修复了一个。如果服务器坏了,配置起来会很麻烦。

剩下的就是开发具体的服务,获取什么,自动回复消息,自定义菜单等。

赞(0) 打赏
未经允许不得转载:艾飞特资源网 » 服务器部署流程(配置node服务器在购买好服务器后,用链接到服务器)
分享到

登录

找回密码

注册