设为首页 收藏本站
查看: 1250|回复: 0

[经验分享] 基于Centos搭建nginx+uwsgi运行django环境

[复制链接]

尚未签到

发表于 2017-11-15 16:19:29 | 显示全部楼层 |阅读模式
  环境:
  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来访问新的网站。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-407280-1-1.html 上篇帖子: CentOS 7 之 Docker 安装及操作命令 下篇帖子: 技术文档(20)--Linux MySQL安装(CentOS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表