之所以写这篇文章,是因为搭建python环境相对复杂一些,还有就是网上很多资料写的都不算完整,按照文档归最后都不成功,所以为避免后续兄弟们再重蹈覆辙,我提前扫了下雷,给大家分享下,避免再遇到问题,另外这个是简易版环境,算是开发版环境,如果要正式用,请深入学习下nginx 和uwsgi官网文档,其实搭建flask环境可以采用很多不同方法,例如apache 的mod_wsgi,不过网上说uwsgi是效率最高的一个,所以后续环境就打算用它了,准备开始,我是用的阿里云ECS机器,如果你是在自己服务器上,请作为参考,基本步骤:
- 安装nginx
- 安装uwsgi
- 配置nginx 文件
- 配置 uwsgi文件
- 测试
1、安装nginx,我直接yum安装的
yum install nginx
安装完的版本是nginx-1.0.15-12
2、安装uwsgi
1 2 3 4 5 6 7 8 |
#wget http://projects.unbit.it/downloads/uwsgi-0.9.6.8.tar.gz #tar -zxvf uwsgi-0.9.6.8.tar.gz #cd uwsgi-0.9.6.8.tar.gz #python uwsgiconfig.py --build #python setup.py install |
3、修改nginx 配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#cd /etc/nginx/conf.d/ #vi default.conf 修改 server 段如下: server { listen 8080 default_server; server_name your_server_name; #charset koi8-r; #access_log logs/host.access.log main; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { include /etc/nginx/uwsgi_params; uwsgi_pass 127.0.0.1:5000; } |
4、配置uwsgi文件
我的项目文件目录是在/home/flaskc下,所以先cd 到这个目录,然后vi myapp_config.xml (这个文件是新增,配置如下:
1 2 3 4 5 6 7 8 9 |
<uwsgi> <pythonpath>/home/flaskc</pythonpath> <module>flaskc</module> <callable>app</callable> <socket>127.0.0.1:5000</socket> <master/> <processes>3</processes> <memory-report/> </uwsgi> |
简单解释,flaskc是你写的模块程序名称,也就是你在当前目录下由一个 flaskc.py的文件,127.0.0.1:5000是与nginx通信用的。
5、启动测试
启动nginx
/etc/init.d/nginx start
启动uwsgi
uwsgi -x myapp_config.xml -d uwsgi.log
-x 是指定xml配置文件,-d是后台运行,日志写入uwsgi.log文件
6、访问http://domain or ip:8080将看到可以正常访问,我因为在服务器上已经有80了,所以我用的8080,大家不必这样做,直接用80就可以。
7、关闭uwsgi,killall -9 uwsgi