Django部署:Django+gunicorn+Nginx环境的搭建

本人的服务器环境为Ubuntu14.04,使用的是Python3.4版本,并且安装有pip(Ubuntu中Python3配合的是pip3),并且以管理员身份运行,如果是普通用户,请切换管理员权限(sudo)。

一.gunicorn和nginx的简介

gunicorn需要搭配nginx使用,那么两者的作用到底是什么。

1.gunicorn简介:gunicorn是一个Python WSGI UNIX服务器。WSGI(Web Server Gateway Interface)是Web服务网关接口,位于WEB应用层和WEB服务器层之间。在这里WEB应用当然是指Python解释器及Django编写的程序,而WEB服务器指的是Nginx,所以Gunicorn位于两者之间。

2.Nginx简介:Nginx是反向代理服务器,接收外部Internet网络请求,并将请求转发给内部网络的WSGI,并将响应信息反馈给外部Internet用户。所以gunicorn就是起到沟通作用,将Django和Nginx联系起来,也就是我们说的网关作用。

二.Django,Gunicorn,Nginx的安装

在这里我们使用的是Django最新版本1.8.4,当然,你也可以选择其他版本。

#pip3 install Django==1.8.4

#pip3 install gunicorn

#apt-get install python-dev nginx

三.环境搭建与测试

1.创建Django项目

创建mysite项目

#django-admin.py startproject mysite

#cd mysite/

创建home应用

# python3 manage.py startapp home

2.设置setting.py文件

添加app,需要添加gunicorn和home(你自己设置的应用名)两项。

INSTALLED_APPS = (
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    # add app
    ‘bugapp‘,
    ‘gunicorn‘,
 )

3.运行gunicorn

#nohup gunicorn mysite.wsgi:application -b 127.0.0.1:1010&

nohup是后台运行指令,详细请查看:《nohup-真正的shell后台运行

当然,你也可以参考《鸟哥的linux私房菜(第三版)》,第17章第2节《脱机管理问题》

运行后可tail查看nohup.out文件,gunicorn的运行情况会输出到这个文件中。

4.查看端口

#netstat -plnt

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5414/nginx
tcp        0      0 127.0.0.1:1010          0.0.0.0:*               LISTEN      5131/python3
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      30237/sshd

很明显,gunicorn已经运行起来了,使用curl测试一下:

#curl 127.0.0.1:1010

这时候如果返回一个HTML页面,说明gunicorn运行成功。接下来就是将gunicorn的WEB数据发送到发向代理服务器Nginx了,并由它发布到Internet上接收访问。

4.配置Nginx

打开Ngnix配置文件/etc/nginx/site-available/default文件,建议提前将原文件做个备份。将该文件修改成一下内容:

1 server{
  2     listen 80;
  3
  4     server_name www.edse.cn;
  5     location / {
  6         proxy_pass http://127.0.0.1:1010;
  7         proxy_set_header Host $host;
  8         proxy_set_header X-Real-IP $remote_addr;
  9         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 10     }
 11
 12     location /static/{
 13         root /data/testweb;
 14     }
 15     location /media/{
 16         root /data/testweb;
 17     }
 18 }

保存后测试一下配置文件:

# nginx -t
nginx: [warn] conflicting server name "www.edse.cn" on 0.0.0.0:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

OK了!

5.最后重启服务器

#service nginx restart

四.代码变更后刷新页面

修改过Django代码后,需要重新建立gunicorn连接,否则页面还是维持代码变更前的状态。

参考文献:

《django 部署,gunicorn、virtualenv、nginx》

《Django 部署(nginx)》

时间: 2024-12-24 10:27:22

Django部署:Django+gunicorn+Nginx环境的搭建的相关文章

django 部署,gunicorn、virtualenv、nginx

声明: 1.本篇文章是我边写命令边写的,请尊重我的劳动成果,转载请加上链接. 2.我既然公开写出来,是希望大家遇到问题的时候有个参考,所以,大家可以免费转载,使用该文章 3.但是,如果你要用这篇文章来赚钱,sorry,你至少得分我点吧. 使用gunicorn 来部署django django写代码简单,但部署是个难题,今天终于发现gunicorn 这个好东西,与大家一起分享. 环境:ubuntu 14.04 64bit + django 1.6.5 + virtualenv + gunicorn

Nginx基础知识之————Nginx 环境的搭建?

本课时主要给大家讲解如何在 Linux 系统下搭建 Nginx 和 Nginx 搭建过程中常见问题的知识,并结合实例让学员掌握 Nginx 环境的搭建. 下载解压: 安装gcc-c++ 从新配置文件: 出现错误:缺少pcre这个库 提示错误:zlib这个库没有安装 继续 配置文件没有问题了: 编译: 测试是否安装成功: 进入: /usr/local/ 目录介绍: conf:Nginx的配置文件 html:网页程序 logs:日志文件 sbin:启动Nginx 安装完成:

nginx环境下搭建nagios 3.5.0

本文基于<LNMP最新源码安装脚本>,Nagios依赖PHP环境和perl环境,由于Nginx不支持Perl的CGI,需先来搭建Perl环境,Nagios原理介绍略. 1.下载最新稳定源码包和Perl脚本 wget http://www.cpan.org/modules/by-module/FCGI/FCGI-0.74.tar.gz wget http://www.cpan.org/authors/id/B/BO/BOBTFISH/FCGI-ProcManager-0.24.tar.gz wg

CentOS7部署Flask+Gunicorn+Nginx+Supervisor

1. Git客户端 Win10安装git for windows 1.1 设置Git全局参数 打开Git Bash $ git config --global user.name "Alice-HomePC" $ git config --global user.email "[email protected]" 1.2 生成SSH Key 打开Git Bash,可使用-C选项指定公钥的说明信息 $ ssh-keygen -t rsa -C "Alice-

测试环境搭建和部署(在Linux环境下搭建jdk+Tomcat+mysql环境和项目包的部署)

1.Linux环境(我搭建的是64位centos版本的linux系统) 1.下载并安装一个VMware Workstation虚拟机,是搭建Linux系统的平台.      2.下载一个centos安装包. 3.打开VMware Workstation,新建一个虚拟机,根据提示安装步骤,导入安装包,设置用户名和密码(此处设置的是普通账户,但密码和根账号root共用),其他的步骤全部点击下一步到最后,然后 静静等安装成功. 4.安装完成后,输入密码进入图形化界面,点击右键选择Open in Ter

nginx+uwsgi+django部署流程

当我们在用django开发的web项目时,开发测试过程中用到的是django自带的测试服务器,由于其安全及稳定等性能方面的局限性,django官方并不建议将测试服务器用在实际生产. nginx+uwsgi+django是我们常用的django部署方式.nginx作为最前端的服务器,他负责接收所有的客户端请求,对于请求的静态文件,由nginx服务器自己完成,因为它具有很好处理静态文件的能力,性能进行过优化,支持高并发量:uWSGI服务器作为支持服务器,是用来服务nginx的,nginx将请求的动态

CMDB之部署Django Nginx+Gunicorn+virtualenv+supervisord应用

应用搭建好了,该上线部署: 虚拟环境需安装的包: (Dfcenv) [[email protected] Dfcenv]# pip list Django (1.10.1) gunicorn (19.6.0) meld3 (1.0.2) MySQL-python (1.2.5) pip (8.1.2) setuptools (26.1.1) supervisor (3.3.1) wheel (0.29.0) gunicorn配置如下: (Dfcenv) [[email protected] Df

Nginx+Gunicorn+virtualenv+supervisord+Postgresql部署Django应用

关于Django应用部署 Django是一个高效.多功能和动态地进化的Web应用开发框架.目前比较流行的部署.运行Django应用方式是基于Apache的mod_wsgi模块,但更加高效.弹性,同时又更加复杂的方式是使用以下工具来部署实施:Nginx.Gunicorn.virtualenv.supervisord.Postgresql.以下详细介绍如何结合这些工具来部署Django应用到Linux上. 准备工作 需要有一台拥有root权限的Linux服务器,这是部署应用的平台.本文采用CentO

python+nginx+gunicorn 部署django小记

部署环境 Ubuntu 12.04 LTS django 1.6.2 nginx 1.1.19 guniron 19.3.0 安装配置各项 安装django: pip install django==1.6.2 装nginx,此步适用ubuntu: apt-get install nginx 其它: 推荐源码安装 nginx命令: 启动:  /etc/init.d/nginx start 停止: /etc/init.d/nginx stop 测试配置文件是否正确: nginx -t 配置prox