安装nginx
yum -y install nginx
安装uwsgi
wget http://projects.unbit.it/downloads/uwsgi-2.0.6.tar.gz tar -zxvf uwsgi-2.6.tar.gz cd uwsgi-2.6.tar.gz python setup.py build make mv uwsgi /usr/bin/
uwsgi测试
创建test.py
# test.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return ["Hello World"]启动uwsgi
uwsgi --http :8000 --wsgi-file test.py
参数含义
http :8000 —— 协议 http,端口 8000
wsgi-file test.py —— 加载文件 test.py
访问 http://ip:8000
如果网页上是又HELLO world说明是正常的
配置django
编写django_wsgi.py文件,放在mange.py同一目录下
#!/usr/bin/env python
#coding: utf-8
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
os.environ.setdefault("DJANGO_SETTINGS_MODULE","Simplecmdb.settings")
from django.core.handlers.wsgi import WSGIHandler
application=WSGIHandler()配置uwsgi
新建一个xml文件
vim uwsgi.xml。将他放在mange.py同一目录下
<uwsgi> <socket>0.0.0.0:9001</socket> <chdir>/root/Django-1.6.11/Simplecmdb</chdir> <module>django_wsgi</module> <processes>4</processes><!-- 进程数 --> <daemonize>uwsgi.log</daemonize> </uwsgi>
在上面的配置中,我们使用 uwsgi.log 来记录日志,开启4个进程来处理请求。
配置nginx
user root;
server {
listen 80;
server_name localhost;
location / {
uwsgi_pass 0.0.0.0:9001;
include uwsgi_params;
}
location /static/{
alias /root/Django-1.6.11/Simplecmdb/static/;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}重启nginx
启动uwsgi服务
uwsgi -x uwsgi.xml
访问服务http://ip/admin
这里要说下admin后台的css样式处理
修改settings.py,在站点目录下建立自己的静态文件夹
mkdir static
STATIC_ROOT = "/站点路径/static/"
运行下列命令将相关文件copy到static目录
python manage.py collectstatic
修改urls.py
import settings
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_ROOT }),重新刷新以后恢复正常
之前因为nginx的运行用户与static的用户不一样,坑了半天,这里要注意下
转载于:https://blog.51cto.com/thedream/1680467
本文详细介绍了如何部署Django应用,包括安装NGINX、UWSGI,编写并配置WSGI文件,设置UWSGI和NGINX的日志、进程数量等关键步骤。同时,还涉及了Django应用的静态文件管理和访问路径优化。
1142

被折叠的 条评论
为什么被折叠?



