django结合nginx部署

简介:

安装nginx

yum -y install nginx

安装uwsgi

1
2
3
4
5
6
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

1
2
3
4
# 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同一目录下

1
2
3
4
5
6
7
8
#!/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同一目录下

1
2
3
4
5
6
7
<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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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

1
2
import  settings
url(r '^static/(?P<path>.*)$' 'django.views.static.serve' ,{ 'document_root' : settings.STATIC_ROOT }),

重新刷新以后恢复正常


之前因为nginx的运行用户与static的用户不一样,坑了半天,这里要注意下



本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1680467,如需转载请自行联系原作者
相关文章
|
5月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
2220 4
|
5月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
261 5
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
488 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
8月前
|
存储 前端开发 应用服务中间件
Django 实战:静态文件与媒体文件从开发配置到生产部署
Django项目中,静态文件(Static Files)和媒体文件(Media Files)是两类不同用途的文件。本文详细介绍了它们的区别、配置方法以及在开发与生产环境中的处理方式,并结合用户头像上传功能进行实战演示,最后讲解了如何通过Nginx或OpenResty部署静态与媒体文件服务。
421 1
|
10月前
|
应用服务中间件 Linux 网络安全
技术指南:如何把docsify项目部署到基于CentOS系统的Nginx中。
总结 与其他部署方法相比,将docsify项目部署到基于CentOS系统的Nginx中比较简单。以上步骤应当帮助你在不花费太多时间的情况下,将你的项目顺利部署到Nginx中。迈出第一步,开始部署你的docsify项目吧!
409 14
|
中间件 应用服务中间件 nginx
Nginx+uWSGI+Django原理
Nginx+uWSGI+Django原理
|
前端开发 JavaScript 应用服务中间件
使用nginx部署网站
使用nginx部署网站
|
JavaScript 应用服务中间件 nginx
nginx部署vue项目
本文介绍了将Vue项目部署到Nginx的步骤,包括构建Vue项目、上传dist文件夹到服务器、安装Nginx、配置Nginx代理静态文件以及重启Nginx,确保了Vue应用可以通过域名或IP地址访问。
993 1
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
4187 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
监控 应用服务中间件 网络安全
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
1127 0