微信个人公众号开发-先搭个免费的服务器吧(AWS EC2)

自媒体运营教程 183 0

微信个人公众号开发-先搭个免费的服务器吧(AWS EC2)-第1张图片-90博客网

Python + Flask + Nginx 搭建免费微信公众号服务器


最近帮朋友做了个个人公众号, 一直也想研究下公众号开发, 免费帮忙, 不能再贴钱搞服务器吧, 于是就想到了免费的服务器资源 亚马逊的AWS EC2.

说是免费, 也就是给你一个低配虚拟服务器用来练手, 时间是一年.后面就是按需收费了. 不过咱也可以赖皮,一年过后把这个服务器干掉, 换个邮箱重新注册一个继续玩. 如果你微信公众号用户成规模的,估计得考虑花钱整个国内的了, 大概看了下也不贵.

额...扯远了, 下面正式进入主题: 标题30字限制不足以表达,其实我想写的标题还要加上 Python + Flask + Nginx.(现在干啥都扯上Python哈, 没办法, 最近这个热乎.)

1.在亚马逊aws创建新用户.


相关教程网上很多很全, 而且界面也有中文,所以此处省略若干URL, 还请客观在搜索引擎里小手抖一抖,搜索相关教程.

需要注意的是, 注册时你得有张visa 或 MasterCard 信用卡来绑定账户, 亚马逊到时候会砍你一刀1$作为认证,好像实际没有砍,只是做认证而已.

2. 选择服务器区域然后创建的操作系统.


系统我选的Ubuntu, 其实linux的都差不多, 之前用过aws linux, 这次试试Ubuntu, 发现没什么发现.

此处可能有坑,需注意: 选择服务器区域(也称"节点")的时候,一般都是选响应最快的, 可以在http://www.cloudping.info/ 查询. 但是但是但是, 之前一直最快的东京服务器好像无法远程ssh, 不知是我rp问题还是其他,于是我选择韩国首尔就没啥问题.

3. 开始部署Flask应用程序.(终于步入最核心主题)


3.1 先写个简单Flask应用程序在你本地跑跑.

首先得先把Flask装在本地:

pip install flask

这里之所以建议现在本地创建,原因是在服务器上编写或调试都不方便, 当然是针对我这种新手而言.

fs在本地新建一个文件夹 flaskserver 用来存放代码文件.

在文件夹内新建文件 flaskserver.py

微信个人公众号开发-先搭个免费的服务器吧(AWS EC2)-第2张图片-90博客网


在终端输入下面的命令,测试你的Flask应用:

python flaskserver.py

可以看到服务以及运行起来了

微信个人公众号开发-先搭个免费的服务器吧(AWS EC2)-第3张图片-90博客网


浏览器输入http://0.0.0.0:5000, 可以看到运行效果

微信个人公众号开发-先搭个免费的服务器吧(AWS EC2)-第4张图片-90博客网

相关影片资源迅雷下载推荐

小程序开发需要什么知识?

小程序开发需要什么知识?

小程序开发,小程序开发需要什么知识?


创建WSGI入口点文件wsgi.py, 这个文件用在后面服务器部署时候用.

微信个人公众号开发-先搭个免费的服务器吧(AWS EC2)-第5张图片-90博客网


创建USGI配置文件flaskserver.ini,部署的时候用.

微信个人公众号开发-先搭个免费的服务器吧(AWS EC2)-第6张图片-90博客网


3.2 服务器环境安装.

好了,现在该ssh到亚马逊服务器上配置下环境了。(关于如何配置ssh到服务器的过程,这里就不详细敷出)

首先安装 NginxFlask , uWSGI

pip install uwsgi flask nginx

注意:如果提醒权限不足请加 sudo

3.3 部署代码及服务配置.

1)安装完毕后在服务器上创建个文件夹

mkdir /var/www/flaskserver/

然后将本地创建的那3个文件(flaskserver.py,wsgi.py, flaskserver.ini)copy到此文件夹中.如果手头没有sftp工具,直接在此文件夹下创建文件也行,反正没多少代码,而且代码都是测试过了的。

给用户www-data程序访问权限:

sudo chown www-data:www-data /var/www/flaskserver

2)键入以下命令创建 uWSGI启动服务
nano /etc/systemd/system/uwsgi.service

微信个人公众号开发-先搭个免费的服务器吧(AWS EC2)-第7张图片-90博客网


3)配置Nginx代理:

接下来我们需要配置Nginx使用uwsgi协议向socket转发web请求.

首先在使用以下命令在Nginx的sites-available目录下新建一个服务配置文件:

sudo nano /etc/nginx/sites-available/flaskserver

内容为:

微信个人公众号开发-先搭个免费的服务器吧(AWS EC2)-第8张图片-90博客网


注意要将你aws ec2 服务器的公网IP或者DNS 配置到上面代码里(server_name 项), 这个值应该在aws控制台这个界面上找:

微信个人公众号开发-先搭个免费的服务器吧(AWS EC2)-第9张图片-90博客网


然后将上面的Nginx配置文件链接到sites-enabled目录下:

sudo ln -s /etc/nginx/sites-available/falskserver/flaskserver /etc/nginx/sites-enabled

就快大功告成了, 先测试下nginx 配置是否ok

sudo nginx -t

如果没啥问题, 就把Nginx 服务重启应用新的配置文件.

sudo service nginx restart

重启uwsgi服务
sudo systemctl restart uwsgi.service

如果不出意外的话, 在浏览器里访问你aws服务器的公网IP, 应该可以看到web页面可以正常工作了.

4. 错误排查


做了这么多工作, 到头来一访问发现不行. 耐心点, 新手就是个踩坑的过程, 以下是我踩过的坑:

  1. 访问公网IP, 没有响应

    去检查下aws的入站规则,是不是没有开放给外部访问

  1. 有响应,但是返回错误

    这个错误可能由很多原因导致的

    1) 配置有误

    2)代码有误

    3)权限配置有误

    这个只能查看日志找原因, 日志一般在以下下几个目录:

    /var/log/nginx/

    /var/log/uwsgi/

5. 服务器其他设置


入站规则

当你的服务运行正常的时候,你会发现每天会有N多恶意爬虫来扫描你的ip, 不断地尝试你网站的突破口,看起来好怕怕.

虽然我们的应用他可能没法攻破, 但就这么天天不断地爬, 免费服务器受不了, 日志记录也受不了. 所以安全起见,设置入站规则, 列出可以访问你网站的白名单. 这个在微信公众号开发的时候同样适用, 我能可以拿到微信服务器所有的ip,然后添加到入站规则里就好了.

结语


看到这里有人可能会说, 上面这一通和微信公众号开发有毛线关系? 不要急嘛, 服务器的搭建是公众号开发的重点, 而有了后台服务器的公众号, 公众号便沦为了一个前端UI, 大部分功能逻辑都要在服务器端搞定. 所以下篇文章应该是如何将公众号和我们搭建的服务器关联起来.

有问题请留言, 有错误请拍砖, 交流愉快:)

相关影片资源迅雷下载推荐

经验分享:如何快速、低成本的开发一个网站?

一、需求背景先自我介绍一下吧,我是杭州某互联网公司的产品助理(嗯,对,还不是产品经理,只是一只会画原型的产品狗)。去年(2019年)12月份的时候,boss突然把我叫到办公室,说需要重新开发一个网站(是一个API ...

网站建设,经验分享:如何快速、低成本的开发一个网站?

企业网站建设与开发最低只要299元起,包含域名服务器,需要的联系QQ345424724,电话15516990022,18530226930

标签: 公众号开发 微信个人公众号开发-先搭个免费的服务器吧(AWS EC2)

抱歉,评论功能暂时关闭!