服务器上django项目配置负载均衡
服务器正常需要的nginx和uwsgi的配置就不多说了,前面讲过了,直接开始主题.
负载均衡,说白了,所有请求发给A服务器,然后它转发到其它服务器中实现负载均衡
Nginx的反向代理
反向代理指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接到客户端,此时代理服务器对外就表现为一个服务器,而此种工作模式类似于LVS-NET模型。
反向代理也可以理解为web服务器加速,它是一种通过在繁忙的web服务器和外部网络之间增加的 一个高速web缓冲服务器,用来降低实际的web服务器的负载的一种技术。反向代理是针对web服务器提高加速功能,所有外部网络要访问服务器时的所有请求都要通过它,这样反向代理服务器负责接收客户端的请求,然后到源服务器上获取内容,把内容返回给用户,并把内容保存在本地,以便日后再收到同样的信息请求时,它会将本地缓存里的内容直接发给用户,已减少后端web服务器的压力,提高响应速度。因此Nginx还具有缓存功能。
第一步 配置负载均衡策略, 在/etc/nginx/conf.d 在其目录下新建一个conf格式的文件, 为什么要把文件建在这个文件夹下呢
我们打开 /etc/nginx 下 的nginx的配置文件nginx.conf
这个文件有两句配置,是当我们启动nginx的时候 会自动加载 目录/etc/nginx/conf.d 下的所有的格式为conf的文件
我们在这个目录下 新建一个格式conf的文件,需要加入以下配置语句
upstream backend{#ip_hash;#weight 服务器权重值,如果服务器性能一致,可以将权重值配置为一样server 127.0.0.1:9701 weight=1;server 127.0.0.1:9702 weight=2;server 127.0.0.1:9703 weight=4;}
server {listen 8001;server_name 127.0.0.1;access_log /var/log/nginx/nginx_demo_access.log;error_log /var/log/nginx/nginx_demo_error.log;charset utf-8;client_max_body_size 75M;location / {proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_buffering off;#Backend自己随便起的,但是要保证和upstream后面的名一致proxy_pass http://backend;}}
下一步 将django项目上传到服务器上,配置uwsgi文件和项目相对应的nginx端口server,应为使用端口做的负载均衡,所以
需要将项目赋值三份放到不同的目录下,在每一个项目下新建对应的uwsgi.ini文件,加入项目启动的uwsgi相关配置
图上的乱码是我在新建文件的时候用windows 新建的文件直接通过filezille 直接拖进项目的,所以出现了注释的汉字乱码.
不影响使用.如果使用命令行新建文件的话,不会出现编码乱码.
[uwsgi] # Django-related settings socket = 127.0.0.1:7777 # 项目绝对路径 chdir = /home/project/WeChat # Django的wsgi文件相对路径 wsgi-file = WeChat/wsgi.py # process-related settings # master master = True # 最大进程数 processes = 4 # 线程数 threads = 2 #设置此参数,有一个主进程 master=True #守护进程的方式运行,log日志存在此log文件里 deamonize=/var/log/uwsgi/djangoProject.log #主进程id写入文件里 pidfile= /var/log/nginx/uwsgi.pid # ... with appropriate permissions - may be needed # chmod-socket = 664 #退出时,清理环境 vacuum = True reload-mercy = 10 max-requests = 5000 limit-as = 512 buffer-size = 30000
第三步,就需要配置一下nginx去监听这三个服务的端口.
在 /etc/nginx/conf.d下新建一个conf格式的配置文件,在文件中配置服务监听的server端口,需要
监听upstearm backend中监听的三个端口,分别配置三个server,监听不同端口,配置和uwsgi交互的内网端口,例如 9701<-
>9801 ,9702<->9802,9703<->9803....
server {listen 9701;server_name 127.0.0.1access_log /var/log/nginx/myblog_access.log;error_log /var/log/nginx/myblog_error.log;charset utf-8;client_max_body_size 75M;root /home/nginx_demo;location / {include uwsgi_params;uwsgi_pass 127.0.0.1:9801;uwsgi_read_timeout 30;}}server {
listen 9702;
server_name 127.0.0.1
access_log /var/log/nginx/myblog_access.log;
error_log /var/log/nginx/myblog_error.log;
charset utf-8;client_max_body_size 75M;
root /home/project/nginx_demo;
location / {include uwsgi_params;uwsgi_pass 127.0.0.1:9802;uwsgi_read_timeout 30;
}
location /static/ {expires 30d;autoindex on;add_header Cache-Control private;alias /home/linux/Desktop/1/Hello/static/;}
}server {listen 9703;server_name 127.0.0.1access_log /var/log/nginx/myblog_access.log;error_log /var/log/nginx/myblog_error.log;charset utf-8;client_max_body_size 75M;root /home/project3/nginx_demo;location / {include uwsgi_params;uwsgi_pass 127.0.0.1:9803;uwsgi_read_timeout 30;}location /static/ {expires 30d;autoindex on;add_header Cache-Control private;alias /home/linux/Desktop/1/Hello/static/;}}
下一步 我们需要重启nginx服务,,打开三个命令行工具,分别进入三个项目目录,使用uwsgi --ini xxx.ini 启动项目
.可以把三个项目的首页展示内容稍微改改,再访问项目即可看到效果,当前访问的不一定是上次访问的服务器
以下是 端口直接的关系图...........
![](/assets/blank.gif)
服务器上django项目配置负载均衡相关推荐
- 如何为 Django 服务配置负载均衡
现在的 Web 服务有一个很重要的性能指标叫 QPS,QPS 的全称是 Queries Per Second 意思是"每秒查询率",是一台服务器每秒能够相应的查询次数,是对一个特定 ...
- nginx 负载均衡 404_nginx配置负载均衡
- 负载均衡是网络基础架构的一个非常关键的组成部分,有了负载均衡,我们可以把应用服务器部署多台,避免了服务宕机,也增强了服务的性能及可用性. - 负载均衡的算法有很多 ,这里只是简单提下, - **轮 ...
- Nginx + Tomcat 配置负载均衡集群
1.前期环境准备 准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章<一台机器同时启动多个tomcat>. nginx官网下载解压版nginx. 创建一个简单的w ...
- azure git怎么使用_Azure(一)Azure Traffic Manager为我们的Web项目提供负载均衡
一,引言 上一篇讲到我们将自己的Net Core Web 项目部署到 Azure 的 Web App 的一项 pass 服务,假如随着项目的日益增长的访问量,之前部署到单节点的应用可能无法保证其稳定性 ...
- 将一个项目布到服务器上,怎么在云服务器上布项目
怎么在云服务器上布项目 内容精选 换一换 为某个后端云服务器组添加后端云服务器.当后端云服务器组被监听器使用后,访问负载均衡器的流量可以通过负载均衡算法分发到不同的后端云服务器上,分担流量.属于一个后 ...
- 10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡...
10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡 原文:10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡 分布式 ...
- nginx与IIS服务器搭建集群实现负载均衡(三)
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 在<架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)>中提到有 ...
- Nginx_01_Nginx三大基础功能(静态服务器、虚拟主机、负载均衡/服务端代理)
文章目录 一.前言 二.Nginx三大功能--HTTP服务器 三.Nginx三大功能--虚拟主机 3.1 虚拟主机 3.2 Nginx配置文件的结构 3.3 Nginx三种虚拟主机方式--基于ip的虚 ...
- 阿里云配置负载均衡以及遇到的问题
第一步:开通阿里云NAS,安装NFS客户端 yum install nfs-utils 第二步:把项目挂载到NAS上实现两台服务器的项目文件共享,删改一个另一个也会改变,可解决session共享(文件 ...
最新文章
- 苹果官方 Crash文件分析方法 (iOS系统Crash文件分析方法)
- 与老黄的技术对聊总结
- Git pull[push] 不用每次输入用户名和密码
- 事业单位综合应用能力计算机,最新事业单位统考-综合应用能力C类梳理精华.pdf...
- Windows 网络服务架构系列课程详解(一) ----DHCP服务器的搭建与配置
- usb设备由生产到使用 java 114979888
- 库克时期的苹果和乔布斯时期的苹果是否有差距?
- android radiogroup 底部菜单,Android底部菜单栏(RadioGroup+Fragment)美化
- 几个文本处理工具的简单使用(wc,cut,sort,uniq,diff和patch)
- python飞机大战怎么将图片保存_Python飞机大战完整素材包(字体音乐图片)
- 动态交叉表(永洪bi)
- tp交换机管理页面_tplink交换机怎么设置_tplink交换机使用方法 | tplogin.cn
- 2020.10.16 web前端 盒子模型border-box 图片模糊处理(filter)clac的使用 CSS的过渡(trancsion hover)
- 拜访名寺古刹之圆通寺
- 内网渗透-内网穿透猕猴桃抓密码提权烂土豆提权
- 如何用matlab画一个球
- 利用百度地图根据三点求位置
- UMLChina建模竞赛第3赛季第10轮:汽车、EA
- Excel客户等级星级表达
- 超融合一体机成为数据中心的必需品