前言
目前在开发微信公众号服务器程序的时候遇到了部署的问题。我们采用和微信官方示例一样的web.py作为开发框架,由于微信公众号仅支持80和443端口然后使用python wx.py 80命令使得这个web app运行在服务器的80端口上。
但众所周知的而是http请求都默认使用80端口,所以如果按照上面的操作,就会出现其它的问题。举个例子,假如我购买了域名www.test.com,将其按照A解析方式绑定服务器的ip地址,那么要部署这个域名所指向的网页,只能将其部署在非80端口比如8080。这会导致访问主页时就要输入www.test.com:8080才行,显然这不是一个好的方法。
所以为了避免公众号webapp独占80端口,这里要引入nginx来实现反向代理的工作。反向代理是什么呢?简单的说就是client即浏览器仅输入域名www.test.com(不加端口就默认使用80)即可,它的请求最先到达的是反向代理服务nginx,再由nginx来进行内部的分派,比如可以将www.test.com的请求分配给运行在8080端口的webapp,或者为了负载均衡根据client的ip地址等规则,将请求分派给另一个服务器来处理。这些服务器上的处理对用户是不可见的,它就是一个反向代理的工作。
静态配置
nginx的优点不多介绍了,反正我知道淘宝都在用它。据说它在部署静态网页具有天然的优势。以debian系linux系统为例来看nginx部署静态网站的方法。
nginx安装目录在/etc/nginx,删除sites-enabled下的默认配置,然后在conf.d目录下添加static.conf文件