美文网首页
Nginx+uWsgi+Flask+MongnDB环境搭建

Nginx+uWsgi+Flask+MongnDB环境搭建

作者: iMichael_Zhang | 来源:发表于2016-08-22 14:46 被阅读0次

    本文环境搭建在64位的Ubuntu 16.04 Server上.

    Nginx安装

    nginx依赖以下模块:

    • gzip模块需要 zlib 库
    • rewrite模块需要 pcre 库
    • ssl 功能需要openssl库

    1.1.安装pcre

    获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本
    解压缩pcre-xx.tar.gz包。
    进入解压缩目录,执行./configure。
    sudo make & make install

    1.2.安装openssl(此步骤可以忽略, Ubuntu 16.04 Server 已经自带)

    获取openssl编译安装包,在http://www.openssl.org/source/上可以获取当前最新的版本。
    解压缩openssl-xx.tar.gz包。
    进入解压缩目录,执行./config。
    sudo make & make install

    1.3.安装zlib

    获取zlib编译安装包,在http://www.zlib.net/上可以获取当前最新的版本。
    解压缩zlib-xx.tar.gz包。
    进入解压缩目录,执行./configure。
    sudo make & make install

    1.4.安装nginx(安装完之后需要手动启动,命令行可以安装curl测试网页)

    获取nginx,在http://nginx.org/en/download.html上可以获取当前最新的版本。
    解压缩nginx-xx.tar.gz包。
    进入解压缩目录,执行./configure
    sudo make & make install
    sudo /usr/local/nginx/sbin/nginx

    1.5.安装uwsgi

    sudo -H pip install uwsgi

    注意:将pip安装的源设置为豆瓣的源
    建个文件 ~/.pip/pip.conf, 内容如下

    [global]
    timeout = 6000
    index-url = http://pypi.douban.com/simple/ 
    [install]
    use-mirrors = true
    mirrors = http://pypi.douban.com/simple/ 
    trusted-host = pypi.douban.com
    

    ===>此处为全局安装

    Flask安装(可能需要先安装pip或easy_install)
    sudo pip install Flask
    sudo pip install Flask-MongoEngine Flask-Security
    (或者将所要安装的软件名称保存在requirements.txt中,执行 sudo pip install -r requirements.txt)


    Node.js安装

    wget http://nodejs.org/dist/v4.4.6/node-v4.4.6.tar.gz
    tar -zxvf node-v4.4.6.tar.gz
    cd node-v4.4.6/
    ./configure
    sudo make
    sudo make install


    安装gulp

    sudo npm install -g gulp (全局环境安装)
    npm install --save-dev gulp (项目本地安装)
    cd app/ npm install (根据package.json安装Gulp依赖项)
    国内使用npm比较慢,可以考虑使用淘宝提供的cnpm:(经测试,淘宝源不太还用...)
    npm install -g cnpm --registry=https://registry.npm.taobao.org
    或者考虑下面的方法
    npm --registry=https://registry.npm.taobao.org install xxxxx


    ===>此处为局部安装

    Virtualenv安装(使用虚拟环境时需要安装)
    sudo pip install virtualenv
    [(sudo apt-get install python-virtualenv) for ubuntu]

    使用virtualenvwrapper

    virtualenvwrapper是virtualenv的扩展工具
    可以方便的创建、删除、复制、切换不同的虚拟环境

    1. 安装virtualenvwrapper
      pip install virtualenvwrapper
    2. 设置环境变量,把下面两行添加到~/.bashrc里。
      if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
      export WORKON_HOME=$HOME/.virtualenvs
      source /usr/local/bin/virtualenvwrapper.sh
      fi
      执行source ~/.bashrc , 然后就可以使用virtualenvwrapper了。
    3. 创建虚拟环境
      mkvirtualenv [虚拟环境名称]
    4. 命令列表
      列出虚拟环境
      lsvirtualenv -b
      切换虚拟环境
      workon [虚拟环境名称]
      查看环境里安装了哪些包
      lssitepackages
      进入当前环境的目录
      cdvirtualenv [子目录名]
      复制虚拟环境
      cpvirtualenv [source] [dest]
      退出虚拟环境
      deactivate
      删除虚拟环境
      rmvirtualenv [虚拟环境名称]

    Git安装

    1、 二进制方式安装:
    $ sudo apt-get install git-core (or ‘sudo apt-get install git-core’)


    Nginx+uwsgi配置

    nginx本身只能调用静态文件, 它需要依赖网关协议文件来调用脚本.
    uwsgi是nginx的标准模块, 用于调用其它脚本.
    修改nginx的配置文件conf/nginx.conf以指向uwsgi

    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:5000;
        root   html;
        index  index.html index.htm;
    }
    

    修改uwsgi文件, 配置脚本文件app_config.xml,
    即运行的文件名以及应用名(nginx, uwsgi和app间需要通过socket进行交互)

    <uwsgi>
         <pythonpath>/home/chenjiebin/web/flaskdemo</pythonpath>
         <module>flask</module>
         <callable>app</callable>
         <socket>127.0.0.1:5000</socket>
         <master/>
         <processes>4</processes>
         <memory-report/>
    </uwsgi>
    

    pythonpath表示项目目录
    module表示项目启动模块,如上例为app.py,这里就为app
    callable表示flask项目的实例名称,上例代码中app = Flask(name),所以这里为app
    socket表示和nginx通信的地址和端口,和nginx配置里的uwsgi_pass一致。
    processes表示开启多少个子进程处理请求。

    MongnDB安装(3.2.8版本)

    wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.9.tgz
    解压之后即可使用,配置参考我的相应文章

    相关文章

      网友评论

          本文标题:Nginx+uWsgi+Flask+MongnDB环境搭建

          本文链接:https://www.haomeiwen.com/subject/trfgsttx.html