最近在学习Flask,本文介绍一下如何部署Flask开发的应用,同时也学习一下Nginx的使用,这只是在Mac上的一个实验。
应用
这里使用的应用就是官方的文档中给出的Flaskr。
安装Nginx
使用HomeBrew安装Nginx:
$ brew install nginx
HomeBrew会自动安装Nginx及其依赖的程序。在我的电脑上安装的是Nginx 1.6.2,配置文件的路径是/usr/local/etc/nginx/nginx.conf。
启动Nginx的命令:
$ nginx
Nginx的默认端口是8080,用浏览器打开localhost:8080,显示如下所示的页面说明Nginx已经工作了。
配置Nginx
修改Nginx的配置文件:
server { listen 80; server_name localhost; charset utf-8; location / { try_files $uri @flaskr; } location @flaskr { include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_param SCRIPT_NAME ""; fastcgi_pass unix:/tmp/flaskr-fcgi.sock; } }
重新启动Nginx:
$ nginx -s quit $ sudo nginx
因为使用了80端口,启动Nginx时需要加上sudo。
启动完成后,访问localhost:
访问时出现了错误,这是因为我们的应用还没有启动。
FastCGI Server
Nginx是一个静态WEB服务器,不能直接运行我们的Python应用,当Nginx接受到请求时,会通过FastCGI转发给我们的应用,应用是运行在FastCGI Server上的,这个server接收Nginx的请求并调用我们的程序,将结果返回给Nginx,Nginx再将结果返回给用户。
我们要使用的FastCGI Server是flup,安装方法:
$ pip install flup
在应用目录下创建一个fcgi文件,例如flaskr.fcgi:
#!/usr/bin/python from flup.server.fcgi import WSGIServer from flaskr import app if __name__ == '__main__': WSGIServer(app, bindAddress='/tmp/flaskr-fcgi.sock').run()
同时给fcgi文件可执行的权限:
$ chmod +x flaskr.fcgi
手动启动server:
$ screen $ ./flaskr.fcgi
使用screen使server在后台运行,或者:
$ nohup ./flaskr.fcgi &
再次访问localhost就可以看到我们的应用了。
遇到的问题
第一次运行FastCGI server后,任然无法访问,查看Nginx的日志后发现Nginx服务器没有权限访问socket文件,修改nginx.conf添加user配置:
复制代码 代码如下:user wzy;
启动的时候Nginx报错:
nginx: [emerg] getgrnam("wzy") failed in /usr/local/etc/nginx/nginx.conf:2
Google一下后发现要加上用户组才行,改成这样:
复制代码 代码如下:user wzy wheel;
再次启动Nginx后一切正常了。
Nginx配置项user的使用方法:
Syntax: user user [group]; Default: user nobody nobody;
如果忽略group,Nginx会使用和user名称一样的用户组,例如我设置user wzy,那么Nginx启动的时候会去查找用户组wzy,我的电脑上没有这个用户组,所以Nginx会报错。
Python
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]