<dl id="vorq8"><menu id="vorq8"></menu></dl>

<sup id="vorq8"></sup>
<sup id="vorq8"></sup>
<sup id="vorq8"></sup>

<optgroup id="vorq8"><address id="vorq8"></address></optgroup>

    <sup id="vorq8"><menu id="vorq8"><small id="vorq8"></small></menu></sup>

    <div id="vorq8"><tr id="vorq8"><object id="vorq8"></object></tr></div>

    当前位置:  首页  >  PHP教程  >  PHP 应用  >  CMS建站

    在MacOS上部署Nginx和FastCGI以及Flask框架的教程

    这篇文章主要介绍了在MacOS上部署Nginx和FastCGI以及Flask框架的教程,Flask是Python下一个极简的web开放框架,需要的朋友可以参考下
    最近在学习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已经工作了。

    201552143836668.jpg (600×358)

    配置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:

    201552143905542.jpg (600×322)

    访问时出现了错误,这是因为我们的应用还没有启动。
    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会报错。

    吐了个 "CAO" !
    扫码关注 PHP1 官方微信号
    PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
    Copyright ? 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有
         
    pc蛋蛋
    <dl id="vorq8"><menu id="vorq8"></menu></dl>

    <sup id="vorq8"></sup>
    <sup id="vorq8"></sup>
    <sup id="vorq8"></sup>

    <optgroup id="vorq8"><address id="vorq8"></address></optgroup>

      <sup id="vorq8"><menu id="vorq8"><small id="vorq8"></small></menu></sup>

      <div id="vorq8"><tr id="vorq8"><object id="vorq8"></object></tr></div>

      <dl id="vorq8"><menu id="vorq8"></menu></dl>

      <sup id="vorq8"></sup>
      <sup id="vorq8"></sup>
      <sup id="vorq8"></sup>

      <optgroup id="vorq8"><address id="vorq8"></address></optgroup>

        <sup id="vorq8"><menu id="vorq8"><small id="vorq8"></small></menu></sup>

        <div id="vorq8"><tr id="vorq8"><object id="vorq8"></object></tr></div>

        3d判断组三技巧 体彩p3近十期开奖结果 11选5包稳赚教学资料 广东十一选五y计划 七乐彩走势图表500期 单双中特王长公开 四川时时彩高手 重庆欢乐生肖怎么玩 3d试机号定胆丹东 黑龙江22选5基本走势 k冰球杆 黑龙江36选7历史开奖结果查询结果 重庆百变王牌起止时间 欢乐升级游戏下载 山西彩票论坛