Django nginx配置实现过程详解
django
在引入第三方模块的时候保证服务的高可用,要设立一个备份接口,当主接口宕机时可以设置一个超市参数来使用备份的接口。
nginx
反向代理器,网站服务器,负载均衡
基本命令
- sudo nginx启动
- sudo nginx -s stop
- sudo nginx -s quit
- sudo nginx -s reopen
关键配置模块
- events配置域:网络连接相关配置(I/O模块)
- server配置域:相关服务节点配置
- location
- http配置域
- upstream配置域:反向代理配置域
层次关系
events { .... } http { ... upstream { ... } server { ... location { ... } } }
WSGI协议:web server 和 web application通信的规范
uwsgi : webserver 接受客户端的请求,传送给 web application
web application :django flask tornado
django uwsgi部署
- uWSGI可以进行多线程调度,进程监控
- 提供完善的请求日志处理
- runserver 性能差
为什么有了uwsgi还要使用nginx
- nginx提供了更加安全的服务保障
- 提供反向代理,负载均衡等功能
- 对于静态文件处理能力强
nginx配置步骤
uwsgi启动django应用服务
修改nginx配置文件完成反向代理配置
/etc/nginx/sites-available/nginx.conf备份
upstream uwsgi { server 127.0.0.1:8000; } server { listen:80; server_name: .xxxxx.com 无论一级域名还是二级域名 charset:utf-8; access_log # 可以配置日志文件 location / { proxy_pass http://uwsgi; # 所有访问域名的连接转发到配置好的upstream } }
删除源/nginx.conf 给新配置的conf设置软连接
收集静态文件,完成静态文件寻址配置
设置好static_url
python manage.py collect
拷贝生成的目录
server { listen:80; server_name: .xxxxx.com 无论一级域名还是二级域名 charset:utf-8; access_log # 可以配置日志文件 location / { proxy_pass http://uwsgi; # 所有访问域名的连接转发到配置好的upstream } location /static { alias 拷贝好的目录 } }
nginx -s reload
https部署,可以在腾讯云申请个人域名免费https,配置好server中的certificate
负载均衡 反向代理upstream,配置权重,直接在每一个配置好的upstream中配置权重weight。关闭uwsgi端口的访问。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
初次部署django+gunicorn+nginx的方法步骤
环境 ubuntu16.04 python3.6 django1.11 gunicorn19.7.1 nginx1.10.3 写在前面 其实无论是在部署,还是在其他方面,我们总会遇到一些问题.建议当感觉自己被卡住的时候,试着退出局部,从更高一层去观察问题,因为这个事情无论是多复杂,它还是由人设计出来的,它身上多多少少带着一些人类思考模式的通性(这个表达有点问题,但是我暂时想不出更好的了),尝试透过现象看本质,比如这个东西它为什么跑不起来,为什么我打开网页永远是404,如果这个时候你直接去问度娘,
-
Centos8下django项目部署 nginx+uwsgi的教程
1.虚拟环境virtualenv安装 1.安装virtualenv pip3 install virtualenv 2.创建目录,把项目文件传过来 mkdir My cd My 3.创建独立运行环境-命名 virtualenv --no-site-packages --python=python3 venv1 #创建独立的环境,并且指定解释器是python3 4.进入虚拟环境 source venv1/bin/activate #此时进入虚拟环境(venv1) 5.在虚拟环境中安装第
-
Centos部署django服务nginx+uwsgi的方法
1.安装python3 yum -y install wget gcc make zlib-devel readline-devel bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel openssl-devel wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz xz -d Python-3.6.1.tar.xz tar -xvf P
-
Ubuntu系统搭建django+nginx+uwsgi的教程详解
1. 在开发机上的准备工作 1.确认项目没有bug. 2.用pip freeze > requirements.txt将当前环境的包导出到requirements.txt文件中,方便在部署的时候安装. 3.将项目上传到服务器上的/srv目录下.这里以git的形式为例,打开终端,依次输入如下命令 •git init •git remote add origin xxx.git •git add . •git commit -m 'first commit' •git pull origin mas
-
详解Django+uwsgi+Nginx上线最佳实战
什么是uwsgi? uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换.WSGI是一种Web服务器网关接口.它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范. WSGI是一种通信协议. uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信.uwsgi协议是一个uWSGI服务器自有的协议,
-
Docker部署Django+Mysql+Redis+Gunicorn+Nginx的实现
一. 前言 docker技术现在非常火热,通过容器构建项目环境,运行效率和部署效率都很不错.所以最近抽空看了一些教程,然后将博客部署方式改为了docker,感觉网上没有特别好的关于 docker 部署 django 项目的教程,特意写了这篇文章,算是记录自己的心得. 本次教程的测试环境为 Deepin ,主要侧重于 容器的编排 和 Django 相关部署知识,一些细节方面,例如环境依赖安装,不会讲得特别详细.由于是在本地测试,所以在配置 nginx 相关信息时,将配置 http 代理而非 htt
-
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
首先先说一下思路: 1.本地django项目打包 主要用到的是 python自带的distutils.core 下的 setup,具体代码在下面,主要讲的两个问题是package主要打包为和目录同级的代码,例如:TCMS如果还有一个子文件夹,那就不能自动打包了.这个时候需要用到data_files.glob(*filename)文件名模式匹配,不用遍历整个目录判断每个文件是不是符合. from distutils.core import setup import glob setup( name
-
浅谈Django+Gunicorn+Nginx部署之路
前言 最近,我已经成功将我的个人网站从 Flask 迁移到 Django 了,最早接触 Django 的时候大概是在 4 年前,我记得那个时候 Django 中的路由配置使用 正则 来进行的,但是我有特别烦这个东西,所以就果断弃坑了.然后今年年初的时候,我用 Flask 写了一个我的个人网站,刚开始的时候功能还是比较简单,看着路由配置和部署规则都很方便,就果断采用了.但是后来我想添加的功能越来越多的时候,我发现我已经越来越难掌控它了,正好最近我稍微看了一下 Django 这几年的变化,最新的 2
-
Django uwsgi Nginx 的生产环境部署详解
配置生产环境 #setting.py 文件中 DEBUG = False # 生产环境 # 允许访问的域名,域名前加一个点表示允许访问该域名下的子域名,比如 www.zmrenwu.com. # test.zmrenwu.com 等二级域名同样允许访问.如果不加前面的点则只允许访问 zmrenwu.com ALLOWED_HOSTS = ["127.0.0.1",".blogzjl.site"] 创建Python虚拟环境 安装 virtualenv sudo pip
-
Django nginx配置实现过程详解
django 在引入第三方模块的时候保证服务的高可用,要设立一个备份接口,当主接口宕机时可以设置一个超市参数来使用备份的接口. nginx 反向代理器,网站服务器,负载均衡 基本命令 sudo nginx启动 sudo nginx -s stop sudo nginx -s quit sudo nginx -s reopen 关键配置模块 events配置域:网络连接相关配置(I/O模块) server配置域:相关服务节点配置 location http配置域 upstream配置域:反向代理配
-
Django加载配置的过程详解
目录 一. Django服务启动 manage.py 二. 引入配置 三. 加载配置 一. Django服务启动 manage.py os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ui.settings") 设置配置文件环境变量- #!/usr/bin/env python import os import sys if __name__ == "__main__": os.environ.se
-
Django url 路由匹配过程详解
1 Django 如何处理一个请求 当一个用户请求Django 站点的一个页面,下面是Django 系统决定执行哪个Python 代码使用的算法: Django 确定使用根 URLconf 模块.通常,这是 ROOT_URLCONF 设置的值(即 settings 中的 ROOT_URLCONF),但如果传入 HttpRequest 对象拥有 urlconf 属性(通过中间件设置),它的值将被用来代替 ROOT_URLCONF 设置.可以在 django/core/handlers/base.p
-
Nginx 动态域名解析过程详解
目录 摘要 基于自定义DNS服务器动态解析 default.conf配置 主要配置点 启动访问 基于K8S的CoreDns动态域名解析 default.conf 主要配置点 摘要 Nginx进行反向代理的时候会进行域名解析,把域名解析为具体IP后缓存在本地,如果域名对应的IP发生了改变,则会导致Nginx代理失效,下面使用Nginx的resolver指令来实现域名动态解析. 基于自定义DNS服务器动态解析 内网DNS服务器我使用的是dnsmasq default.conf配置 server {
-
Spring基于xml文件配置Bean过程详解
这篇文章主要介绍了spring基于xml文件配置Bean过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通过全类名来配置: class:bean的全类名,通过反射的方式在IOC容器中创建Bean,所以要求bean中必须有一个无参的构造器. <bean id="helloWorld" class="com.gong.spring.beans.HelloWorld"> <property na
-
CentOS 7.9服务器Java部署环境配置的过程详解
目录 CentOS 7服务器Java部署环境配置 FTP服务器搭建 设置root用户可登录 jdk安装 mysql安装 开启Navicat远程连接的配置 Tomcat安装 Redis安装 Nginx安装 CentOS 7服务器Java部署环境配置 FTP服务器搭建 1.安装 vsftpd yum install -y vsftpd 2.安装完成后运行以下命令进入/etc/vsftpd目录,并查看该目录下的文件 cd /etc/vsftpd ls 设置root用户可登录 在安装vsftpd默认情况
-
nginx配置静态文件服务器详解
本文主要介绍一些Nginx做图片服务器的简单配置,但不包括Nginx的安装部署以及实现原理. 配置步骤 下载nginx Windows nginx安装教程及简单实践 配置nginx\nginx-1.13.4\conf\nginx.conf文件 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #
-
Django logging配置及使用详解
1. settings.py文件 做开发离不开必定离不开日志, 以下是我在工作中写Django项目常用的logging配置. # 日志配置 BASE_LOG_DIR = os.path.join(BASE_DIR, "log") LOGGING = { 'version': 1, # 保留字 'disable_existing_loggers': False, # 是否禁用已经存在的日志实例 'formatters': { # 定义日志的格式 'standard': { 'format
-
Django 缓存配置Redis使用详解
一.cache介绍 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存. 缓存工作原理:缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有用户来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中去取得数据,然后返回给用户. Django提供了6种缓存方式: 开发调试缓存 内存缓存 文件缓存 数据库缓存 Memcache缓存(使用python-memcached
随机推荐
- VBS教程:函数-GetObject 函数
- Ubuntu系统安装Ruby的三种方法
- sqlserver中delete、update中使用表别名和oracle的区别
- OpenStack Identity(Keystone)身份服务、体系结构与中间件讲解
- mysql建立外键
- PHP注释实例技巧
- 谈谈Jquery ajax中success和complete有哪些不同点
- PHP中new static()与new self()的区别异同分析
- ajax无刷新验证注册信息示例
- js模拟jquery的slide和fadeIn和fadeOut功能
- 如何解决attachEvent函数时,this指向被绑定的元素的问题?
- MySQ索引操作命令总结(创建、重建、查询和删除索引命令详解)
- jquery实现简单的轮换出现效果实例
- iscroll-probe实现下拉刷新和下拉加载效果
- 浅谈Java多线程编程中Boolean常量的同步问题
- Cisco路由器故障诊断技术重新编辑
- Python+selenium实现截图图片并保存截取的图片
- react-native 圆弧拖动进度条实现的示例代码
- android输入框内容改变的监听事件实例
- ASP.NET Core中使用EPPlus导入出Excel文件的完整步骤