骤
[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