Nginx+Django+Uwsgi架构部署

简介:

 随着IT不断发展,用户对网站的体验也越来越高,做为一名Linux运维攻城师,就得学习更多知识,网络、系统、硬件、开发等等知识。

    尤其是近期自动化运维的不断发展,更多的基础运维工程师开始不断的升华自己,提升自己,学习更多开发知识来满足企业的发展。目前自动化开发运维主要集中在python django、php开发,今天我们一起来探讨主流WEB服务器Nginx如何来部署Django,直接进入主题:

一、Django环境部署

官网下载django版本,目前最新版为1.7版本,https://www.djangoproject.com/

然后解压安装,我这里安装完后,新建的app主目录为:/root/django/django/bin/command

1
2
3
4
5
[root@Linux_wugk_SA command] # pwd
/ root / django / django / bin / command
[root@Linux_wugk_SA command] # ls
command  manage.py 
[root@Linux_wugk_SA command] #

二、Uwsgi安装部署

下载uwsgi安装包:wget http://projects.unbit.it/downloads/uwsgi-2.0.6.tar.gz

解压安装:tar xzfuwsgi-2.0.6.tar.gz ;cd uwsgi-2.0.6/ ;python setup.py install 即可。

安装完毕后,在/root/django/django/bin/command目录(与manage.py同级目录)新建如下文件:vi  django_wsgi.py

1
2
3
4
5
6
7
8
9
#!/usr/bin/env python
# coding: utf-8
import  os
import  sys
reload (sys)
sys.setdefaultencoding( 'utf8' )
os.environ.setdefault( "DJANGO_SETTINGS_MODULE" , "command.settings" )
from  django.core.handlers.wsgiimport WSGIHandler
application  =  WSGIHandler()

然后新建uwsgi配置文件,内容如下:vi uwsgi_socket.xml

1
2
3
4
5
6
7
<uwsgi>
    <socket> 127.0 . 0.1 : 199 < / socket>
        <chdir> / root / django / django / bin / command< / chdir>
            <module>django_wsgi< / module>
                <processes> 4 < / processes>
    <daemonize>uwsgi.log< / daemonize>
< / uwsgi>

注* chdir目录写当前目录,即/root/django/django/bin/command

三、Nginx部署配置

Nginx安装大家都非常熟悉,这里直接上Server段配置代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
         listen  80 ;
         server_name localhost;
         index index.php index.html;
         location  /  {
             include     uwsgi_params;
             uwsgi_pass   127.0 . 0.1 : 199 ;
             uwsgi_param UWSGI_CHDIR   / root / django / django / bin / command;
             uwsgi_param UWSGI_SCRIPTdjango_wsgi;
             access_log / usr / local / nginx / logs / access.log;
             }
         location  / static {
            root / root / django / django / bin / command / command;
         }
      }

四、部署测试

分别启动uwsgi和nginx即可,然后通过浏览器直接访问Nginx 80端口即可。

启动命令:

 uwsgi -x uwsgi_socket.xml 
/usr/local/nginx/sbin/nginx 

截图测试如下:

wKiom1QcD2DAYj2tAAQe9dfbsy8242.jpg

wKiom1QcD3LwqW9qAALk7wt_rVk268.jpg


wKiom1QcDC6SmavUAAD1mtnpt1o034.jpg

本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/1555300



相关文章
|
4月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
1980 5
|
4月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
236 5
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
467 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
9月前
|
应用服务中间件 Linux 网络安全
技术指南:如何把docsify项目部署到基于CentOS系统的Nginx中。
总结 与其他部署方法相比,将docsify项目部署到基于CentOS系统的Nginx中比较简单。以上步骤应当帮助你在不花费太多时间的情况下,将你的项目顺利部署到Nginx中。迈出第一步,开始部署你的docsify项目吧!
399 14
|
负载均衡 应用服务中间件 nginx
基于Nginx和Consul构建自动发现的Docker服务架构——非常之详细
通过使用Nginx和Consul构建自动发现的Docker服务架构,可以显著提高服务的可用性、扩展性和管理效率。Consul实现了服务的自动注册与发现,而Nginx则通过动态配置实现了高效的反向代理与负载均衡。这种架构非常适合需要高可用性和弹性扩展的分布式系统。
187 4
|
负载均衡 应用服务中间件 nginx
基于Nginx和Consul构建自动发现的Docker服务架构——非常之详细
通过使用Nginx和Consul构建自动发现的Docker服务架构,可以显著提高服务的可用性、扩展性和管理效率。Consul实现了服务的自动注册与发现,而Nginx则通过动态配置实现了高效的反向代理与负载均衡。这种架构非常适合需要高可用性和弹性扩展的分布式系统。
390 3
|
中间件 应用服务中间件 nginx
Nginx+uWSGI+Django原理
Nginx+uWSGI+Django原理
|
监控 应用服务中间件 网络安全
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
1089 0
|
Ubuntu Unix 应用服务中间件
详细拆分如何在ubuntu 上使用 nginx + uwsgi socket方式部署 Django 项目
详细拆分如何在ubuntu 上使用 nginx + uwsgi socket方式部署 Django 项目
406 0