设为首页 加入收藏

TOP

nginx+uWSGI+django+virtualenv+supervisor部署发布web项目(二)
2018-11-08 10:10:54 】 浏览:491
Tags:nginx uWSGI django virtualenv supervisor 部署 发布 web 项目

[root@node1 ~]# yum install -y uwsgi-plugin-python34.x86_64

为解决启动报错:

!!! UNABLE to load uWSGI plugin: /usr/lib64/uwsgi/python_plugin.so: cannot open shared object file: No such file or directory !!!

[root@node1 ~]# ln -sv /usr/lib64/uwsgi/python34_plugin.so /usr/lib64/uwsgi/python_plugin.so

3 启动uwsgi

(django) [root@node1 mysite]# uwsgi --http-socket :8888 --plugin python --wsgi-file ./test.py

Ubuntu下:uwsgi --http :88888 --wsgi-file test.py

4 测试

[root@node1 ~]# curl http://127.0.0.1:8888/index/
This is uwsgi test

test.py文件内容如下:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"This is uwsgi test"]

5 报错解决

(1)invalid request block size: 21573 (max 4096)...skip

buffer-size = 65536

(2)-- unavailable modifier requested: 0 --

-- unavailable modifier requested: 0 –

plugins = python #指定插件

 四、Django与uwsgi的结合

1 热启动Django

(1)uWsgi热加载python程序(仅做测试使用)

(django) [root@node1 mysite]# uwsgi --http-socket  :8000 --plugin python  --module  mysite.wsgi  --py-autoreload=1

按下Ctrl +C 可终止进程

(2)启动Django

(django) [root@node1 mysite]# uwsgi --http-socket  :8000 --plugin python  --module mysite.wsgi

 2   在/etc/目录下新建uwsgi_nginx.ini

uwsgi支持ini、xml等多种配置方式,本文以 ini 为例,添加如下配置

[root@node1 ~]# cat /etc/uwsgi_nginx.ini
[uwsgi]
# Django-related settings
# the base directory (full path)  #Django项目的目录
chdir           = /root/django/mysite
# Django's wsgi file
module          = mysite.wsgi
# the virtualenv (full path)  #虚拟目录的路径
home            = /root/django
# process-related settings
# master
master          = true
# maximum number of worker processes  #启动进程数,处理器个数
processes       = 1
# threads = 4                 #线程个数
# the socket (use the full path to be safe  #指定套接字
socket          = 0.0.0.0:8000
# ... with appropriate permissions - may be needed #权限设置,要是提示权限不够,可以改为666
# chmod-socket    = 664
# clear environment on exit #退出时清除环境
vacuum          = true
#指定插件,不然会报错:-- unavailable modifier requested: 0 --
plugins = python

3 指定配置文件并启动uwsgi

[root@node1 ~]# uwsgi --ini  /etc/uwsgi_nginx.ini

五、 配置nginx结合uWSGI

1 安装Nginx

[root@node1 ~]# yum install nginx –y

2 新建Nginx配置文件

[root@node1 ~]# vim /etc/nginx/conf.d/djang.conf

server {
    listen       80;
    server_name  192.168.15.128; #指定本机ip或者配置你的域名
    location / {
              include  /etc/nginx/uwsgi_params;
              uwsgi_pass 0.0.0.0:8000;

              }
    location /static {  #配置静态文件目录
              alias /root/django/mysite/static;
              }
    location /media {
              alias /root/django/mysite/media;
              }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

3 启动nginx

[root@node1 ~]# systemctl start nginx

此时以及可以测试访问了

[root@node1 ~]# curl http://127.0.0.1/index/
Hello World!

用浏览器测试如下

 

六、nginx结合supervisor

1 安装supervisor

[root@node1 ~]# yum install python34-setuptools.noarch
[root@node1 ~]# yum install  supervisor

2 生成配置文件

通过命令生成supervisor的配支文件

[root@node1 ~]# echo_supervisord_conf > /etc/supervisord.conf

3 编辑配置文件/etc/supervisord.conf

再最后添加如下内容:

[program:mysite]
command= /usr/sbin/uwsgi --uwsgi-socket 0.0.0.0:8000 --plugin python\
--chdir /root/django/mysite --home=/root/django --module mysite.wsgi
directory=/root/django/mysite
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true

说明:

# [program:mysite] 指定程序名称
# /usr/sbin/uwsgi 指定uwsgi的位置,
#--chdir /root/django/mysite 指定项目路径
# --home=/root/django 指定寻虚拟目录

4 启动supervisor

最后启动supervi

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇1.Python是什么 下一篇分享个最新Python入门到实战flask..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目