环境准备

nginx+uwsgi方式部署顾名思义,需要nginx和uwsgi两个软件包。

nginx不用说,是必备的,关于nginx的安装本文不再赘述,详情可以自行搜索或者参考我以前的文章:

Debian8搭建LEMP环境

安装uwsgi

pip install uwsgi

上传项目代码 & 测试

# 进入项目目录,具体目录请自行选择
cd /path/to/project # 建立虚拟环境
virtualenv venv # 激活虚拟环境
source venv/bin/activate # 安装依赖
pip install -r requirement.txt # 开启测试服务器
python manage.py runserver 0.0.0.0:8001

配置uwsgi

uwsgi支持多种格式的配置文件,本文选择ini格式。

在项目目录中创建uwsgi.ini文件,内容如下:

[uwsgi]
# Django-related settings socket = :8001 # Virtualenv
home = /var/www/html/_project/ClassHelperWxApp/venv # the base directory (full path)
chdir = /var/www/html/_project/ClassHelperWxApp # Django s wsgi file
module = Config.wsgi # process-related settings
# master
master = true # maximum number of worker processes
processes = 4 # ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true

开启uwsgi测试

# 进入项目目录
cd /path/to/project # 开启uwsgi服务器
uwsgi -s --ini uwsgi.ini

这个时候还不能访问,因为服务器设置成socket模式,如果想先访问一下试试看,可以把ini配置文件里面的socket改成http,即可访问项目网站,不过静态文件暂时访问不了。

nginx配置反向代理

/etc/nginx/sites-available目录中新建一个配置文件。

例如:domain.com.conf,配置代码如下

附赠了https的配置,如果不需要的话把ssl相关的配置行删除即可。

server {
# the port your site will be served on
listen 80;
listen 443 ssl; # the domain name it will serve for
server_name domain.com; # substitute your machine's IP address or FQDN
charset utf-8; ssl on;
#证书文件
ssl_certificate /path/to/keys/1_domain.com_bundle.crt;
#私钥文件
ssl_certificate_key /path/to/keys/2_domain.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on; # max upload size
client_max_body_size 75M; # adjust to taste # Django media
location /media {
alias /path/to/project/media; # your Django project's media files - amend as required
} location /static {
alias /path/to/project/static; # your Django project's static files - amend as required
} # Finally, send all non-media requests to the Django server.
location / {
include uwsgi_params; # the uwsgi_params file you installed
uwsgi_pass 127.0.0.1:8001;
}
}

然后使用ln -s创建一个到sites-enabled的软链接,重新加载nginx即可。

service nginx reload

About


了解更多有趣的操作请关注我的微信公众号:DealiAxy

每一篇文章都在我的博客有收录:blog.deali.cn

Django应用部署:nginx+uwsgi方式的更多相关文章

  1. CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境, 记坑篇

    CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境 CentOS7 + Python3 + D ...

  2. debian完整部署 Nginx + uWSGI + Django

    手工部署一个Django服务器真心不容易,需要安装很多东西.从头开始搭建服务器,主要是为了梳理一下后续开发中一般为碰到的平台部署.对后续问题的解决有一定帮助. 通常部署有2中方式: 一种是使用现成提供 ...

  3. 部署 Nginx +uwsgi+centos7+django+supervisor 项目

    部署CRM项目 前言 使用软件 nginx 使用nginx是为了它的反向代理功能,项目会通过Django+uWSGI+Nginx进行服务器线上部署. uWSGI python web服务器开发使用WS ...

  4. Django 部署(Nginx+uwsgi)

    使用 uwsgi 来部署 安装 uwsgi sudo pip install uwsgi --upgrade 使用 uwsgi 运行项目 uwsgi --http :8001 --chdir /pat ...

  5. Django【部署】uwsgi+nginx

    uwsgi 遵循wsgi协议的web服务器 uwsgi的安装 pip install uwsgi uwsgi的配置 项目部署时,需要把settings.py文件夹下的: DEBUG = FALSE A ...

  6. docker 部署django项目(nginx + uwsgi +mysql)

    最近在学习用docker部署Django项目,经过百折不挠的鼓捣,终于将项目部署成功,爬过好多坑,也发现很多技能需要提高.特此写下随笔与小伙伴们分享,希望能对大家有所启发. docker的理论我就不赘 ...

  7. CentOS下 Django部署 nginx+uWSGI+Django(二)

    该篇内容承接CentOS下 Django部署 uWSGI+Django(一),细节流程可参考此篇内容. 1. 当前系统 CentOS Linux release 7.6.1810 Python 2.7 ...

  8. Ubuntu16.04下部署 nginx+uwsgi+django1.9.7(虚拟环境pyenv+virtualenv)

    由于用的新版本系统,和旧的稍有差别,在网上搜了很多相关资料,搞了三天终于搞好在Ubuntu16.04下的部署,接下来就详细写写步骤以及其中遇到的问题.前提是安装有虚拟环境pyenv+virtualen ...

  9. Django上线部署之uWSGI

    环境: 1.CentOS 7.2 64位 2.SQL Server 2016 Enterprise 64位 3.Python 3.6.5 64位 4.root用户 要求: 按照顺序部署 1.Windo ...

随机推荐

  1. Java笔记3:Eclipse添加jar包

    本文以jedis包为例,演示Eclipse如何添加和使用jar包.   1 建立一个名为ImportJarDemo的JavaProject.在该工程下建立一个libs的文件夹. 2 将下载的jedis ...

  2. 【重点突破】—— 当better-scroll 遇见Vue

    前言:在学习黄轶老师的<Vue.js高仿饿了么外卖App>课程中接触到了better-scroll第三方JavaScript组件库,这是黄轶老师自己基于iscroll重写的库.这里结合黄轶 ...

  3. [Node.js] Show More Lines in a Node.js Error Stack Trace

    Sometimes you are one or two lines short from finding the cause of the error in the stack trace but ...

  4. LintCode - Merge Two Sorted List

    LintCode - Merge Two Sorted Lists LintCode - Merge Two Sorted Lists Web Link Description Code - C Ti ...

  5. poj 1426 Find The Multiple (bfs 搜索)

    Find The Multiple Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 18012   Accepted: 729 ...

  6. leetcode268:Missing Number

    描写叙述 Given an array containing n distinct numbers taken from 0, 1, 2, -, n, find the one that is mis ...

  7. java 发送html邮件,苹果或者某些邮件客户端收到的内容为空白解决方案

    需要把网页标签中的双引号替换为  "  或者  \\\" 例如 <div id=\\\"container\\\" style=\\\"widt ...

  8. 【Java】Java_12 Eclipse

    1.eclipse简介 Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境. 尽管 Eclipse 是使用Java语 ...

  9. 【Java】Java_05 标识符与字符集

    1.标识符 用作给变量.类和方法命名.注意: 表示类名的标识符用大写字母开始.如:Man, GoodMan 表示方法和变量的标识符用小写字母开始,后面的描述性词以大写开始.green(),greenC ...

  10. jumpserverv0.5.0 基于 CentOS7安装部署

    基于 CentOS 7 一步一步安装 Jumpserver 0.5.0 环境 系统: CentOS 7 IP: 192.168.244.144 关闭 selinux和防火墙 # CentOS 7 $ ...