最近虽然学术进展依然缓慢,可是没有那么大的心理压力了。

原因可能有二,一是前一段刚投了一篇文章出去,二是前一段审了一篇投在还不错的期刊上的超水的文章,结果别的reviewer还给放过去了,我直接让打回重改了。可能是看到这么水的文章都有希望发这样的期刊吧……

最近创建了一个自己的微信公众号,滑雪前线,用来分享一些滑雪相关资讯,因为我发现国内的滑雪虽然已经热起来了,但是还没有形成相应的文化。

可是自己毕竟是码农出身,天生的手贱,不甘于每天安安心心找几篇文章翻译翻译、搬运搬运,总想要把技术方面的东西用上来。这不,开始给公众号搭建服务器了。

主要参考这篇Blog,但是由于按照原博客Token验证不了,且原博客werobot版本较老,对代码有所微调。

买的是阿里云最便宜1核1G内存,1M带宽,40G硬盘的ECS服务器,OS Ubuntu 14.04 64位操作系统,一个月68块钱,对我来说也就是两顿饭钱。

主要组件展示

  1. Nginx
  2. Gunicorn
  3. Python
  4. Pip
  5. Virtualenv
  6. Flask
  7. Supervisor
  8. WeRoBot SDK

简单说下主要逻辑关系,我们用Nginx作为Web服务器,该服务器无法直接和Flask (or Python)交互,所以我们需要引入Gunicorn,它是一个独立的WSGI容器,可以容纳WSGI应用并且提供HTTP服务。而后,用Supervisor 管理服务器进程,当某个应用挂掉,可以自动重启。

安装Virtualenv及必要组件

用来创建不同的Python隔离环境,可以保证一个干净的环境。

$ adduser wechatmanager #创建新用户
$ sudo apt-get update
$ sudo apt-get install zsh # 强烈推荐该shell
$ sudo apt-get install -y python python-pip python-virtualenv # 安装各类组件
$ sudo mkdir /home/wechatmanager && cd /home/wechatmanager
$ sudo virtualenv wechat_connector# 此时在mirror文件夹下创建一个虚拟环境
$ cd /home/wechatmanager/wechat_connector
$ sudo source ./bin/activate # 激活虚拟环境
$ sudo apt-get install -y nginx gunicorn # 安装各类组件# 取消激活命令为
deactivate

安装WeRoBot SDK

$ sudo pip install werobot

基本应答helloworld代码 in app.py:

import werobot
robot = werobot.WeRoBot(token='tokenhere')
# 消息处理函数
@robot.handler
def echo(message): return 'Hello World!'robot.run(server="gunicorn", port=8000)

然后去微信公众平台把Token改为你自己设置的Token。

配置 Nginx

$ sudo /etc/init.d/nginx start #启动nginx
$ sudo rm /etc/nginx/sites-enabled/default #删除默认配置
$ sudo touch /etc/nginx/sites-available/wechat_connector#建立项目文件
$ sudo ln -s /etc/nginx/sites-available/wechat_connector/etc/nginx/sites-enabled/wechat_connector #设置软链接
$ sudo vim /etc/nginx/sites-enabled/wechat_connector #编辑项目文件

添加:

server { server_name your_domain;listen 80;location /weixin { proxy_pass http://127.0.0.1:8000;}
}

腾讯公众号默认只能连接http的80端口和https的443端口
当公众号向(your_domain/weixin)发送消息,便会反向代理到127.0.0.1的8000端口,这也是为什么我们之前的代码监听8000端口的原因

# 重启 nginx:
$ sudo /etc/init.d/nginx restart

配置 Supervisor

$ sudo apt-get install -y supervisor #安装
$ sudo vim /etc/supervisor/conf.d/test.conf #创建配置文件

添加:

[program:wechat_connector]
command = python /home/wechatmanager/wechat_connector/app.py
directory = /home/wechatmanager/wechat_connector
timeout = 60*60
user = newuser
autostart = true
autorestart = true
redirect_stderr = true
stdout_logfile = /home/mirror/logs/wechat_connector.log

启动Supervisor

$ sudo supervisorctl reread
$ sudo supervisorctl update
$ sudo supervisorctl start wechat_connector ## 重启supervisor
$ sudo supervisorctl restart wechat_connector

微信平台端设置
进入微信公众平台—>开发者模式—>设置URL和Token,URL为your_domain/weixin,Token为你在werobot中设定的
如果配置没有问题,顺利通过,用微信给你的公众平台发消息应该能看到’hello world!’。
Tips: 出现任何问题,重启supervisor,倘若仍不能够解决,请查看log文件。
参考
阿里云ECS搭建微信公众平台
WeRoBot
VPS环境搭建详解
Flask on Ubuntu

文/TheEverest(简书作者)
原文链接:http://www.jianshu.com/p/e22d152fae9a
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

利用阿里云ECS搭建微信公众平台服务器相关推荐

  1. 使用阿里云ECS构建微信公众号管理系统

    微擎-基于ECS搭建微信公众号管理系统 相关链接: 微擎 阿里云ECS开通 一.环境搭建 连接ECS服务器 打开系统自带的终端工具: Windows:CMD或Powershell. MAC:Termi ...

  2. 百度云搭建微信公众平台服务器,微信大众开放平台开发03-百度BAE上搭建属于自己的微信公众平台 -JAVA,微信公众开放平台部署到百度云中BASE2.0,进行调试,木有钱买云服务器的亲们试试...

    微信公众开放平台开发03---百度BAE上搭建属于自己的微信公众平台 -JAVA,微信公众开放平台部署到百度云中BASE2.0,进行调试,木有钱买云服务器的亲们试试 微信公众开放平台开发03---百度 ...

  3. 1:新浪云SAE搭建微信公众平台开发-java

    从微信调用API中可以看出个大概流程,如下图 通过上图的了解,可知要想做微信公众平台第二次开发 必须搭建一个自定义服务器,自定义服务器上面部署相应的逻辑代码,搭建自定义服务器的方式有很多种 比如百度云 ...

  4. 2021最新 阿里云ECS搭建我的世界服务器

    1. 购买阿里云服务 1.1 选择系统 5人以下纯净服1核2G够用 少量mod推荐2核4G,mod越多内存越高越好 1M带宽在不修改服务器默认视野的情况下足够10人使用系统镜像选择时记得选择ubunt ...

  5. 上海服务器 微信平台,微信公众平台服务器 fastweixin

    软件介绍 fastweixin -- 快速搭建微信公众平台服务器 简单封装了所有与微信服务器交互的消息:文本消息.图片消息.图文消息等等 1.0版本提供了一个基于springmvc的控制器,集成了微信 ...

  6. 公众平台 python_轻松实现python搭建微信公众平台

    本文主要是一步一步教大家如何利用python搭建微信公众平台,有兴趣的朋友可以参考一下 使用的工具,python 新浪SAE平台,微信的公众平台 你需要先在微信的公众平台与新浪SAE平台上各种注册,微 ...

  7. python微信公众号框架_轻松实现python搭建微信公众平台

    本文主要是一步一步教大家如何利用python搭建微信公众平台,有兴趣的朋友可以参考一下 使用的工具,python 新浪SAE平台,微信的公众平台 你需要先在微信的公众平台与新浪SAE平台上各种注册,微 ...

  8. 使用python-aiohttp搭建微信公众平台

    aiohttp是一个基于asyncio的异步http框架,在高并发的情况下具有很好的性能,这也是我选择使用aiohttp来搭建微信公众平台的原因.但是由于网上关于aiohttp的资料较少,再加上自己对 ...

  9. python微信公众号翻译功能怎么用_使用python一步一步搭建微信公众平台(二)----搭建一个中英互译的翻译工具...

    距离上次写使用python一步一步搭建微信公众平台(一)已经有几个月了,当中自已也搭建了一个中英文互译的小应用,可是由于英文翻中文好弄,中文翻译成英文一直有问题,知道是编码的问题,但是一直搞不定,于是 ...

  10. 用python设计一个简易的英汉互译界面_使用python一步一步搭建微信公众平台(二)----搭建一个中英互译的翻译工具...

    距离上次写使用python一步一步搭建微信公众平台(一)已经有几个月了,当中自已也搭建了一个中英文互译的小应用,可是由于英文翻中文好弄,中文翻译成英文一直有问题,知道是编码的问题,但是一直搞不定,于是 ...

最新文章

  1. 第二次作业+105032014116
  2. Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
  3. oracle 数字不用,oracle – Plsql将数字(货币)拼写为意大利货币而不用硬编码的翻译编号...
  4. 10K入职linux运维岗位小伙伴感谢信及面试经历分享
  5. Android多线程源码学习笔记一:handler、looper、message、messageQueue
  6. 一个报文的路由器之旅_一个报文的路由器之旅
  7. OO模式-Composite
  8. how to add user into sudoers file?
  9. 数据3分钟丨Apache Doris谴责DorisDB违背开源精神;HC2021下周召开;openGauss训练营第二期圆满落幕...
  10. 网络管理与维护作业9
  11. Mysql查询汉字语法_Mysql数据库查询语法详解
  12. SpringMVC日期处理(二)
  13. angualrjs学习总结二(作用域、控制器、过滤器)
  14. ●UVA 11021 tunnello
  15. 岁月温柔-10 妈妈的执念--不肯开空调,坚持使用油汀
  16. 投影仪对焦应用镜头马达驱动芯片
  17. HP-UX Samba服务配置手册
  18. 攻略:苹果手机投屏电脑 iPhone镜像投屏怎么操作
  19. android 监听wifi的连接状态,Android判断wifi状态 监听wifi连接
  20. AI青年的跨界故事,值得双击!

热门文章

  1. barefoot公司和Tofino芯片
  2. [ICCV2021] TransReID: Transformer-based Object Re-Identification 行人重识别
  3. jena mysql_在Jena框架下基于MySQL数据库实现本体的存取操作
  4. pvs-stdio ue4_PVS-Studio –用于C,C ++,C#和Java的静态代码分析器
  5. BUUCTF RSA题目全解1
  6. Python爬虫--- 1.5 爬虫实践: 获取百度贴吧内容
  7. 基于二维码的室内定位技术(二)——实现
  8. 2021-2025年中国智能储藏加热器行业市场供需与战略研究报告
  9. malloc、calloc、realloc函数讲解
  10. winforms 文本框_在禁用的VB.Net WinForms文本框中自定义颜色的新方法