python+django+wusgi+nginx安装部署
基于centos搭建nginx+uwsgi运行django环境
环境:
CentOS 7
nginx/1.9.12
Python 2.7.5
一:安装依赖包5
yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel
sqlite-devel readline-devel tk-devel python-pip -y
二:安装uwsgi
uwsgi:https://pypi.python.org/pypi/uWSGI
uwsgi参数详解:http://uwsgi-docs.readthedocs.org/en/latest/Options.html
pip install uwsgi
uwsgi --version
三:测试uwsgi是否正常:
新建test.py文件,内容如下:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return "liuyao"
然后在终端运行:
uwsgi --http :8080 --wsgi-file test.py
在浏览器内输入:http://127.0.0.1:8080,
看是否有“liuyao”输出,若没有输出,请检查你的安装过程。
四:安装django
pip install django
测试django是否正常,运行:
django-admin.py startproject newsite
cd newsite
python manage.py runserver 0.0.0.0:8000
在浏览器内输入:http://127.0.0.1:8000,检查django是否运行正常。
五:安装nginx
1.下载
wget http://nginx.org/download/nginx-1.9.12.tar.gz
2.解压
tar xf nginx-1.9.12.tar.gz
cd nginx-1.9.12.tar.gz
3.编译
./configure --prefix=/usr/local/nginx-1.9.12 \
--with-http_stub_status_module \
--with-http_gzip_static_module
4.安装
make && make install
注:您可自行改变参数设置,具体请上官网学习,如果已经存在nginx服务,那么此步可省略
六:配置uwsgi
uwsgi支持ini、xml等多种配置方式,但个人感觉ini更方便:
在/ect/目录下新建uwsgi.ini,添加如下配置:
[uwsgi]
socket = 127.0.0.1:9090 //运行端口号
master = true //主进程
vhost = true //多站模式
no-stie = true //多站模式时不设置入口模块和文件
workers = 2 //子进程数
reload-mercy = 10
vacuum = true //退出、重启时清理文件
max-requests = 1000
limit-as = 512
buffer-sizi = 30000
pidfile = /var/run/uwsgi.pid //pid文件,用于下面的脚本启动、停止该进程
daemonize = /日志目录/uwsgi.log
启动方式:
uwsgi /etc/uwsgi.ini
七:设置nginx
找到nginx的安装目录,打开conf/nginx.conf文件,修改server配置
server {
listen 80; //设置网站运行端口
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090; //必须和uwsgi中的设置一致
uwsgi_param UWSGI_SCRIPT newsite.wsgi; //入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录
uwsgi_param UWSGI_CHDIR /newsite; //项目根目录,
index index.html index.htm;
client_max_body_size 35m;
}
}
注:
1.uwsgi脚本
请放在/etc/init.d/uwsgi 设置可执行
DESC="uwsgi daemon"
NAME=uwsgi
DAEMON=/usr/bin/uwsgi
CONFIGFILE=/etc/$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 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
八:测试
OK,一切配置完毕,在终端运行
/etc/init.d/uwsgi start
/usr/local/nginx/sbin/nginx -s reload 或者直接启动
在浏览器输入:http://127.0.0.1,恭喜你可以看到django的“It work”了~
九:多站配置
使用多个uwsgi服务的方法来实现多个站点。
重复第六步,创建uwsgi9091.ini,并相应修改文件中的
socket = 127.0.0.1:9091
pidfile = /var/run/uwsgi9091.pid
daemonize = /日志目录/uwsgi9091.log
并且设置脚本 启动服务
然后新建nginx的配置文件为:
server {
listen 8000;
server_name 127.0.0.1;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9091;
uwsgi_param UWSGI_SCRIPT oldsite.wsgi;
uwsgi_param UWSGI_CHDIR /web/oldsite;
index index.html index.htm;
}
}
然后我们就可以通过http://127.0.0.1:8000来访问新的网站了。
完毕!
python+django+wusgi+nginx安装部署的更多相关文章
- python django uwsgi nginx安装
python django uwsgi nginx安装 已安装完成python/django的情况下安装 pip install uwsgi cd /usr/share/nginx/html/ vim ...
- centos7 nginx配置httpsCenos(6.6/7.1)下从源码安装Python+Django+uwsgi+nginx环境部署(二)
1.yum安装nginx 下载对应当前系统版本的nginx包(package) # wget http://nginx.org/packages/centos/7/noarch/RPMS/ngin ...
- Django+uwsgi+Nginx安装部署
安装 安装Nginx Nginx是最流行的高性能HTTP服务器. 安装pcre: wget https://sourceforge.net/projects/pcre/files/pcre/8.37/ ...
- python Django教程 之 安装、基本命令、视图与网站
python Django教程 之 安装.基本命令.视图与网站 一.简介 Django 中提供了开发网站经常用到的模块,常见的代码都为你写好了,通过减少重复的代码,Django 使你能够专注于 w ...
- Cenos(6.6/7.1)下从源码安装Python+Django+uwsgi+nginx到写nginx的环境部署(一)
梳理下这几个的关系: centos是redhat的社区版操作系统. Python2.7.5是开发语言(centos6.5下自带的python是2.6.6版本,所以需要源码更新,而centos7.1下面 ...
- Django+Uwsgi+Nginx项目部署文档
一.基本环境搭建 1)查看服务器 [root@Myjumpserver ~]# cat /etc/sysconfig/selinux SELINUX=disabled SELINUXTYPE=targ ...
- Django部署,Django+uWSGI+nginx+Centos部署
说明:系统是在windows上开发的,使用django1.11.4+python3.6.3开发,需要部署在centos6.4服务器上. 第一步:在Centos6.4上安装Python3.6.2 安装请 ...
- Nginx安装部署与测试
场景:项目需要部署在生产环境中,这些新的工具都需要在生产环境中去实践练习.有时间再部署一套ELK的日志分析系统,这样的系统才算具有一定的应用价值. 1 Nginx安装 用root用户安装,采用源代码编 ...
- nginx安装部署(支持https)
1 安装环境准备 1.1 准备环境清单 以下是基本环境清单列表: 软件名称 版本号 说明信息 Linux CentOS 6.7 部署机器只需为Linux系统即可,无严格要求 1.2 ...
随机推荐
- WPF——执行命令清空文本框
一.造一个窗体,在窗体里面先造一个StackPanel,然后再StackPanel里面放好按钮和文本框,注意给所有的控件和容器起名字 <Grid> <StackPanel Name= ...
- hdu-5364 Distribution money
http://acm.hdu.edu.cn/showproblem.php?pid=536 Distribution money Time Limit: 2000/1000 MS (Java/Othe ...
- Dim Loop 出现结果不同
(1)结果是:循环1次 Dim counter,num counter = 0 'num = 9 Do Until num = 10 num = num - 1 counter = c ...
- 独立线程中实现QT GUI
在网上搜集的资料: http://www.qtcentre.org/threads/16552-Starting-QT-GUI-in-a-seperate-Threadhttp://stackover ...
- office文件密码破解方法及软件
今天会用到3个软件 1.Office Password Remover 说明:这个软件可以很快破解.doc .xls的密码 使用方法:参考百度经验里面的文章http://jingyan.baidu ...
- linux统计文件夹某一些文件的大小总和
du -m smallgame_2006* | awk '{sum += $1}; END{print sum}' -m代表单位是MB, awk命令需要'',且命令需换行
- HW5.11
public class Solution { public static void main(String[] args) { System.out.printf("%s\t%s\n&qu ...
- POJ-3648 Wedding 2sat
题目链接:http://poj.org/problem?id=3648‘ 题意:一对情人举行婚礼,有n对夫妇参加,别人对着坐在一个长桌子的两边,新娘和新郎坐在最后面,新娘只能看见坐在他对面的人.现在, ...
- PAT 1038 体验Python之美
1038. Recover the Smallest Number (30) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...
- iOS开发中常见的语句@synthesize obj = _obj 的意义详解
我们在进行iOS开发时,经常会在类的声明部分看见类似于@synthesize window=_window; 的语句,那么,这个window是什么,_ window又是什么,两个东西分别怎么用,这是一 ...