关键字: node express 服务器 域名 centos 微信公众号 自定义 开发 nginx
一文 扫除 搭建微信公众号环境的 易错点。从外太空 到内xx 的扫盲教程。
请注意 关键是 流程的跑通,不是 最终功能的实现。
随便输入文字,公众号 返回当前的时间
要跑通整个流程,需要经历以下几步
因为公众号最终是要面向外网使用的,那么就必须要有一台对外的服务器,推荐使用云服务器(自己做过内网穿透映射也可以,但是不方便)。
新用户或者大学生都有优惠,最便宜的配置 大概20元一个月,不同时期不同活动。
以下随便哪种都行。
注册成功后,进行登录,然后选购服务器。地域
推荐选择 广州 备案起来更方便。
购买成功后,可以看到如下界面
因为服务器对外使用,要么直接用ip,要么绑定一个域名,而微信公众号必须要绑定域名,因此,提前注册一个域名吧。
需要注意的是 xyz club
等域名 首年便宜,后几年贵,如果长期使用,还是建议 com cn
这类域名。
域名选购成功后,还不能马上使用,要进行解析。进入到域名管理页面。 选择你购买好的域名,点击 解析
添加解析记录
www
可以解析 如 www.baidu.com
这样@
可以解析 baidu.com
*
泛域名,可以解析很多 如 wx.baidu.com
api.baidu.com
...方便后期自己扩展填写完毕之后,需要等待十分钟,才可以生效。
在生效的几天之内,是可以直接用域名来访问到你的服务器的,如果要长期顺利使用,就必须要备案域名
在国内要用域名访问服务器,就必须要备案。
备案的途径目前两种
需要注意的是 不管是在电脑上还是在小程序上备案,都需要准备如下资料。
1
给好评 😄!!。
等待域名备案的同时,我们可以来搭建服务器。
作者搭建服务器的环境如下
通过ssh的方式来连接服务器,进行环境安装,工具有很多种,xshell
putty
等。作者这里用的是 xshell
新建连接
文件 > 新建
然后会弹出提示,让你输入用户名和密码
成功登录后,恭喜你,可以看到如下界面
什么是nginx Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务器
由于后期我们是通过nginx
来管理服务器的请求和代理node服务器。因此,我们需要先搭建nginx
。
检查看看是否是 centos 7 命令行中输入
cat /etc/redhat-release
提示:
yum可以理解为 centos中的360软件管家,是来下载软件和工具的
Nginx 不在默认的 yum 源中,可以使用 epel 或者官网的 yum 源,本例使用官网的 yum 源
sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
sudo yum install nginx
如要想实现 访问你的域名 例如: wx.baidu.com
便跳转到 你服务器上的某个服务器端口。
wx.baidu.com
->>> 127.0.0.1:9090
由于初学者可能不懂的如何在命令中来编辑文件(其实可以通过vi编辑器来操作),那么为了方便操作,建议使用图形化的工具wincp,就可以类似操作 本地的资源管理器一样。
下载 安装好 wincp
后,新增远程连接
成功登录,便能看到类似的界面
找到配置文件 /etc/nginx/nginx.conf
添加以下配置
# 定义映射到本地的端口 9091
upstream wx{
server 127.0.0.1:9091;
}
# 新增的服务配置
server {
# 监听80端口号
listen 80;
# 监听的域名
server_name wx.baidu.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 代理到 本地的 90901端口
proxy_pass http://wx;
}
}
如不会配置,则全部复制以下代码,完全替换即可
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
# 定义映射到本地的端口 9091
upstream wx{
server 127.0.0.1:9091;
}
#新增的服务配置
server {
# 监听80端口号
listen 80;
# 监听的域名
server_name wx.baidu.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 代理到 本地的 90901端口
proxy_pass http://wx;
}
}
}
编辑好后,启动nginx
sudo systemctl start nginx
浏览器中输入 wx.baidu.com
可以看到nginx服务器的提示,502是因为 你的 9091没有放如何服务。下一步,开始部署服务。
设置开机启动
sudo systemctl enable nginx
启动服务
sudo systemctl start nginx
重启服务
sudo systemctl restart nginx
暂停服务
sudo systemctl stop nginx
测试配置是否正确(用来检查配置是否ok,能否失效的)
sudo nginx -t
重启nginx服务
sudo nginx -s reload
其实微信公众号对于后台语言并没有什么要求,你只要安装接口约定,做好权限验证,发送的格式不要出错即可。那么我们在这里使用node+express来搭建一个简单的后台服务。
git clone https://github.com/itcastWsy/wx_public_api
cd wx_public
安装依赖
npm install
打开 routes\wxapi.js
下的 第六行 填入你的token
即可。
token
必须为英文或数字,长度为3-32字符。 要自己记住哦!
var token = "";
npm run start
还剩下最后一步,现在打开微信公众平台,进行登录。
登录成功后,在左侧菜单栏,点击 基本配置
需要说明的是 服务器地址,需要填写你之前备案过的域名 如 http://wx.baidu.com
因为我们在express后台中,是加一一层路由嵌套,此时地址就变成。 http://wx.baidu.com/wx
当验证通过时,会弹出如下提示
此时,打开我们的微信公众号,随便输入消息
至此,大功告成。
这么情况搭建好的环境,不骚跳一下 对得起自己吗
我们现在通过简单的几个操作,便可以为公众号接入 人工智能 对话!! 而且还是免费的!!!
点击右上角的 控制台 安装提示 即可完成 注册
完成接入
使用内置功能,一键即可完成接入。
点击授权接入后,接下来扫描二维码即可
此时,再回到你的公众号,随便闲聊。 建议此时 关闭 微信公众后台的服务器配置功能