配置服务器
原来使用Apache + mod_wsgi,不愿再改。当我看了Nginx + uwsgi的配置语法,以及Nginx自身的介绍,此时不改,更待何时。
我在阿里云的CentOS下载nginx,使用Python虚拟环境下载uwsgi,一切都很顺利:
在nginx的配置文件/etc/nginx/nginx.conf的http{...server{...}...}的server块改动这几项即可:
charset utf-8;
location ~ /(jm-wechat|jm-dms|jm-admin|jm-test) {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080;
}
四个路径(正则方式)用于不同的功能访问:jm-wechat给微信使用,jm-dms给业务功能,jm-admin给用户认证准备(生成认证码),jm-test用于测试一些小玩意。这个做法不是我在项目启动时就设计好的,而是在项目推进中觉得需要,又返回去修改而成型的。
uwsgi_pass 用于把监听到对这些地址的访问,转给uwsgi处理,做了端口转发,这样不影响Nginx最前端的80端口,所以Nginx的设计很清楚!
事实上,①关于测试肯定有高大上且更合适的方法;②配置中的uwsgi_params(及其所在文件夹)的具体作用是什么;③即便做了备份,也不应该采用改动nginx.conf文件的方式,应该在conf.d中新建。具体这些我知道的不多,需要看一下专业的书籍,我觉得答案距离我只差一层纸。
关于uwsgi,写好uwsgi.ini文件即可。
题外话,我买了一本nginx的书籍,——精通Nginx,是一个瑞士人写的。然而我觉得几乎没有用处,比如配置nginx需要10个步骤或事项,它仅仅是列出这10项而已,完全没有前因后果、功能设计等等背景介绍。甚至它没有介绍nginx服务的启动/停止/重启方式,即便这是属于操作系统的事,但是有些参数至少和nginx的配置有一些关联吧。所以这本书,不知道为何(在知乎上)能进入关于nginx的重点推荐书单。它是属于那种不懂的人不能看,懂的人不需看的“书籍”。