centos+nginx+uwsgi+virtualenv+flask 多站点环境搭建
环境:
centos x64 6.6
nginx 1.6.2
python 2.7.9
uwsgi 2.0.9
virtualenv 12.0.5
flask 0.10.1
正文:
1、安装nginx
相关网站 http://nginx.com
1.1 配置yum第三方源
centos默认的源里没有nginx安装包,所以我们来修改第三方源。
#cd ~
#wget http://www.atomicorp.com/installers/atomic
#sh ./atomic
#yum check-update
1.2 安装nginx
#yum install nginx
#service nginx start
#chkconfig nginx on
2、安装类库
#cd ~
#yum groupinstall "Development tools"
#yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
3、安装Python
相关网站:
python http://www.python.org
3.1 安装最新版
centos 6.6默认安装的是python2.6.6版本,我们现在安装最新版的python2.7.9
#cd ~
#wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
#tar xvf Python-2.7.9.tgz
#cd Python-2.7.9
#./configure --prefix=/usr/local
#make && make altinstall
3.2 备份旧版本,链接新版本
由于centos系统的yum程序使用的是之前系统自带的python2.6.6版本,所以为了解决版本冲突问题,我们先将新旧版本的python做好区分和重新链接
#mv /usr/bin/python /usr/bin/python2.6.6
#ln -s /usr/local/bin/python2.7 /usr/bin/python
3.3 修改yum配置文件
重新指定其所使用的python程序路径:
#vi /usr/bin/yum
查找到:
#!/usr/bin/python
修改为:
#!/usr/bin/python2.6.6
修改完毕后,可是使用"python"命令进入python2.7.9的环境。
退出环境使用"exit()"命令。
4、安装Python包管理工具
相关网站:
distribute https://pypi.python.org/pypi/distribute
#cd ~
#wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz
#tar xf distribute-0.6.49.tar.gz
#cd distribute-0.6.49
#python setup.py install
#distribute --version
5、安装pip包管理工具
相关网站:
pip https://pypi.python.org/pypi/pip
#easy_install pip
#pip --version
6、安装uWSGI
相关网站:
uwsgi https://pypi.python.org/pypi/uWSGI
uwsgi参数详解 http://uwsgi-docs.readthedocs.org/en/latest/Options.html
#pip install uwsgi
#uwsgi --version
7、安装virtualenv
相关网站:
virtualenv https://pypi.python.org/pypi/virtualenv
#pip install virtualenv
#virtualenv --version
8、安装flask
相关网站:
flask http://flask.pocoo.org/
#mkdir /usr/share/nginx/www //新建项目库文件夹
#mkdir /usr/share/nginx/www.a.com //新建项目根目录文件夹
#cd /usr/share/nginx/www/www.a.com
#vietualenv env //创建虚拟环境
#. env/bin/activate //进入虚拟环境
#pip install flask //安装flask
#deactivate //退出虚拟环境
9、环境配置
9.1 配置声明
首先我要声明几个固定目录的绝对位置。(本节严格按照以下位置进行配置&如需修改路径请同时修改相关配置文件)
nginx配置文件: /etc/nginx/vhosts/www.a.com.conf
#mkdir /etc/nginx/vhosts //新建nginx配置文件夹
项目根目录: /usr/share/nginx/www/www.a.com
日志文件目录: /usr/share/nginx/log
#mkdir /usr/share/nginx/log //新建日志文件夹
uWSGI配置文件:/etc/uwsgi/www.a.com.ini
#mkdir /etc/uwsgi //新建uwsgi配置文件夹
9.2 配置uWSGI
9.2.1 新建uWSGI配置文件
#vi /etc/uwsgi/uwsgi_www.a.com.ini //新建uwsgi配置文件 //将下面标注蓝色的内容录入wusgi_www.a.com.ini文件 [uwsgi]
master = true
vhost = true
workers = 2
reload-mercy = 10
vacuum = true
max-requests = 1000
limit-as = 256
chmod-socket = 666
socket = /tmp/uwsgi_www.a.com.sock
venv = /usr/share/nginx/www/www.a.com/env
chdir = /usr/share/nginx/www/www.a.com
module = myapp
callable = app
touch-reload = /usr/share/nginx/www/www.a.com
pidfile = /var/run/uwsgi_www.a.com.pid
daemonize = /usr/share/nginx/log/uwsgi_www.a.com.log
9.2.2 为uwsgi添加开机脚本
#vi /etc/init.d/uwsgi_www.a.com
//将下面标注蓝色的内容录入uwsgi_www.a.com文件
#! /bin/sh
# chkconfig: 2345 55 25
# Description: Startup script for uwsgi webserver on Debian. Place in /etc/init.d and
# run 'update-rc.d -f uwsgi defaults', or use the appropriate command on your
# distro. For CentOS/Redhat run: 'chkconfig --add uwsgi' ### BEGIN INIT INFO
# Provides: uwsgi
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the uwsgi web server
# Description: starts uwsgi using start-stop-daemon
### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="uwsgi daemon"
NAME=uwsgi_www.a.com
DAEMON=/usr/local/bin/uwsgi
CONFIGFILE=/etc/uwsgi/$NAME.ini
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME set -e
[ -x "$DAEMON" ] || exit 0 do_start() {
$DAEMON $CONFIGFILE || echo -n "uwsgi already running"
} do_stop() {
$DAEMON --stop $PIDFILE || echo -n "uwsgi not running"
rm -f $PIDFILE
echo "$DAEMON STOPED."
} do_reload() {
$DAEMON --reload $PIDFILE || echo -n "uwsgi can't reload"
} do_status() {
ps aux|grep $DAEMON
} case "$1" in
status)
echo -en "Status $NAME: \n"
do_status
;;
start)
echo -en "Starting $NAME: \n"
do_start
;;
stop)
echo -en "Stopping $NAME: \n"
do_stop
;;
reload|graceful)
echo -en "Reloading $NAME: \n"
do_reload
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload}" >&2
exit 3
;;
esac exit 0 #chkconfig --add uwsgi_www.a.com //添加服务
#chkconfig uwsgi_www.a.com on //设置开机启动
9.2.3 修改nginx配置文件
首先打开nginx配置文件:
#vi /etc/nginx/nginx.conf
查找到:
include /etc/nginx/conf.d/*.conf;
修改为:
#include /etc/nginx/conf.d/*.conf; //在行首添加#号注释掉此句
include /etc/nginx/vhosts/*.conf; //引用应用配置文件
9.2.4 新建项目配置文件
#vi /etc/nginx/vhosts/www.a.com.conf
//将下面标注蓝色的内容录入uwsgi_www.a.com文件
server {
listen 80;
server_name www.a.com;
index index.htm index.html;
location / {
include uwsgi_params;
uwsgi_pass unix:///tmp/uwsgi_www.a.com.sock;
}
}
10、测试
10.1 开启服务
#service nginx start
#service uwsgi_www.a.com start
10.2 新建入口组件文件
#vi /usr/share/nginx/www/www.a.com/myapp.py //将下面标注蓝色的内容录入uwsgi_www.a.com文件 from flask import Flask
app = Flask(__name__) @app.route('/')
def hello_world():
return 'Hello World!' if __name__ == '__main__':
app.run()
运行浏览器访问www.a.com 此时出现"Hello World!"表示环境已经搭建成功。
PS:
1、码字太多难免出错,如发现错误或有疑问请留言,我第一时间回复大家。
2、本博客欢迎转发,但请保留以下信息:
By: oYY Url: http://www.cnblogs.com/echoyy Date: 2015年1月14日
centos+nginx+uwsgi+virtualenv+flask 多站点环境搭建的更多相关文章
- Ubuntu下nginx+uwsgi+flask的执行环境搭建
选择web framwork是个非常艰难的事情, 主要分为轻量级和重量级框架. 因为没有搭建站点这样的须要, 所以回避SSH, Django这样的框架, 而选择一个轻量级框架. 自己也比較青睐pyth ...
- nginx + uwsgi + django/flask Nginx + php-fpm + PHP
后端服务器设置nginx + uwsgi + django/flask需要注意的问题 - ACE开发者 https://acejoy.com/2018/09/09/547/ 后端开发应用中,除了Ngi ...
- Centos+nginx+uwsgi+Python多站点环境搭建
前言 新公司的第一个项目,服务器端打算用python作为restful api.所以需要在Centos上搭建nginx+fastcgi+python的开发环境,但后面网上很多言论都说uwsgi比fas ...
- 云效(阿里云)流水线 + nginx + uWsgi + flask + python3 基础环境搭建 --备忘
一.开发环境搭建 1.安装python3 yum -y groupinstall "Development tools" yum -y install zlib-devel bzi ...
- Linux(8)- nginx+uWSGI+virtualenv+supervisor 发布web服务器
一.理论梳理 WSGI是web服务器的网关接口,它是一个规范,描述了web服务器(下图中的WEB server)如何与web应用程序(下图中的Application)通信,以及web应用程序如何链接在 ...
- nginx+uwsgi+virtualenv+supervisor部署项目
一.导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求) 基于wsgi运行的 ...
- CentOS+nginx+uwsgi+Python 多站点环境搭建
转载:http://www.cnblogs.com/xiongpq/p/3381069.html 环境: CentOS X64 6.5 nginx 1.5.6 Python 2.7.5 正文: 一:安 ...
- Nginx+uwsgi部署 Diango(生产环境)
环境:CentOS6.5 + Nginx1.11.5 + Python3.5.2 1. 安装基础软件包 yum install -y zlib-devel bzip2-devel \ pcre-dev ...
- Nginx+uWSGI部署flask项目
uwsgi配置 uwsgi安装 安装uwsgi pip install uwsgi 启动uwsgi uwsgin --ini uwsgi.ini # 后台启动 nohup uwsgi --ini uw ...
随机推荐
- [Locked] Graph Valid Tree
Graph Valid Tree Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is ...
- 【递推】地铁重组(subway) 解题报告
问题来源 BYVoid魔兽世界模拟赛 [问题描述] 蒙提在暴风城与铁炉堡之间的地铁站中工作了许多年,除了每天抓一些矿道老鼠外,没有其他的变化.然而最近地铁站终于要扩建了,因为侏儒们攻克了建设长距离穿海 ...
- Spring与SpringMVC的容器关系分析
Spring和SpringMVC作为Bean管理容器和MVC层的默认框架,已被众多WEB应用采用,而实际使用时,由于有了强大的注解功能,很多基于XML的配置方式已经被替代,但是在实际项目中,同时配置S ...
- Storm-1.0.1+ZooKeeper-3.4.8+Netty-4.1.3 HA集群安装
Storm-1.0.1+ZooKeeper-3.4.8+Netty-4.1.3 HA集群安装 下载Storm-1.0.1 http://mirrors.tuna.tsinghua.edu.cn/apa ...
- 在eclipse下编译hadoop2.0源码
Hadoop是一个分布式系统基础架构,由apache基金会维护并更新.官网地址: http://hadoop.apache.org/ Hadoop项目主要包括以下4个模块: Hadoop Common ...
- 356. Line Reflection
首先找到X方向的中点,如果中点是一个点,那么分别从这个点开始往左右找就行:如果是一个区间,比如1 2之间,那么首先总点数得是偶数,然后以1和2往左右两边找就行.. 找的时候,有3种情况: 同时没找到, ...
- Python监控日志程序
一个简易的日志监控的脚本,功能如下:1.windows环境2.当匹配日志关键字时会发出声音,匹配的关键字不同,播放的声音不同3.能做到实时响应 注意:是在win环境下哦 直接上代码吧 1 2 3 4 ...
- 三星 note3销售地查询、销售地代码
查看销售地代码 用KIES验销售地:记下设定-关于-状态里的序号. 手机不要连接电脑,注意是不要连接,打开KIES3,点工具——固件恢复和初始化,输入大写的型号SM-N900或者SM-N9005,确认 ...
- [转] linux下的c/c++调试器gdb
PS:1. 断点C++类函数,用b 命名空间::类名::方法名 2. 编译参数一定要加-g,才可断点调试 http://www.cnblogs.com/xd502djj/archive/2012/08 ...
- Android ViewPager 打造炫酷欢迎页
Android ViewPager 打造炫酷欢迎页 ViewPager是Android扩展v4包中的类,这个类可以让用户切换当前的View.对于这个类的应用场景,稍加修改就可以应用到多个环境下.比如: ...