环境准备

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. javascript专业八级测试答案整理

    前几天社区的群里森破发了一个这样的链接: http://ourjs.com/detail/52fb82e13bd19c4814000001 做了一遍后突然对人生感到了迷茫,本着不能只有我一个人伤心的原 ...

  2. riched32.dll riched20.dll msftedit.dll 解析

    摘要: 本文对Rich Edit控件底层消息机制进行了讲解,以期读者对Windows平台下的Rich Edit控件有一个更深入的认识,同时对于使用Win32 SDK进行开发的人员具有一定参考价值.因为 ...

  3. Oracle database wrc运行报错ORA-15557

    [oracle@host capture]$ wrc system/oracle@db1 REPLAYDIR=/home/oracle/cap_dir/ Workload Replay Client: ...

  4. Spring Ajax一个简单样例

    配置不说了.要在前面helloworld的样例基础上弄. 相同在hello下新建ajax.jsp <%@ page language="java" contentType=& ...

  5. Android自己定义(三)实现圆盘的百分比设置

    近期一直在学习自己定义控件,昨天看到群里有人问怎样怎样实现圆盘样式的显示,学有所用,于是乎就有了这篇博客 先上图,一目了然 这里的显示颜色以及颜色块的大小你都能够自己设置 这里设置了三种颜色,相应三种 ...

  6. mui 选项卡

    方法一:通过css 实现选项卡 <div id="slider" class="mui-slider"> <div id="slid ...

  7. 【Python3 爬虫】14_爬取淘宝上的手机图片

    现在我们想要使用爬虫爬取淘宝上的手机图片,那么该如何爬取呢?该做些什么准备工作呢? 首先,我们需要分析网页,先看看网页有哪些规律 打开淘宝网站http://www.taobao.com/ 我们可以看到 ...

  8. freemarker相关

    大部分引入:http://www.blogjava.net/alinglau36/archive/2011/02/23/344970.html Freemarker操作字符串 1.substring( ...

  9. oracle备份还原数据库

    首先到对应bin目录下打开cmd(windows),linux用相应终端链接:eg:D:\app\sun\product\11.2.0\dbhome_1\BIN 用户备份:exp u_tdms/p_t ...

  10. filebeat 选项

    Filebeat Options input_type: log|stdin 指定输入类型 paths 支持基本的正则,所有golang glob都支持,支持/var/log/*/*.log enco ...