Nginx+uWsgi+Flask+MongnDB环境搭建

本文环境搭建在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
解压之后即可使用,配置参考我的相应文章

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容