实现负载均衡

开启两个服务器,nginx负责分发请求到两个服务器,以减轻单个服务器负担。

配置uwsgi服务器

在a项目目录下生成uwsgi.ini文件,在b项目目录下生成uwsgi.ini文件,如何写可以查看上一篇文章  https://www.cnblogs.com/pyweb/p/12030929.html

两个项目不同点是端口不同。

后台启动uwsgi服务器

nohup uwsgi --ini uwsgi_a.ini &
nohup uwsgi --ini uwsgi_b.ini &

配置nginx配置文件

vim /etc/nginx/nginx.conf

http {
upstream flasktest {
server 127.0.0.1:; # 配置多个服务器
server 127.0.0.1:; }
server {
listen 0.0.0.0:;
server_name www.flasktest.com;
charset UTF-;
access_log /etc/nginx/FlaskTest_access.log;
error_log /etc/nginx/FlaskTest_error.log;
client_max_body_size 75M; location / {
include uwsgi_params;
# uwsgi_pass 127.0.0.1:;
uwsgi_pass flasktest; # 使用上面的flasktest进行匹配,表示81端口同时监听82,83端口
uwsgi_read_timeout ;
} }

分发规则(轮询,ip_hash, fair, url_hash)

# 轮询,指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。如下所示,83的访问比率要比82的访问比率高一倍。
upstream linuxidc{
server 127.0.0.1:82 weight=;
server 127.0.0.1:83 weight=;
} # ip_hash, 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream linuxidc{ 
    ip_hash;
server 127.0.0.1:82;
server 127.0.0.1:83;
} # fair, 按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。
upstream linuxidc{
server 127.0.0.1:82;
server 127.0.0.1:83;
fair;
}
# url_hash, 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
# 注意:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。

upstream linuxidc{
server 127.0.0.1:82;
server 127.0.0.1:83;
hash $request_uri;
    hash_method crc32;
}
 

其他

upstream还可以为每个设备设置状态值,这些状态值的含义分别如下:

down: 表示单前的server暂时不参与负载.

weight: 默认为1.weight越大,负载的权重就越大。

max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.

fail_timeout :max_fails次失败后,暂停的时间。

backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

upstream bakend{ #定义负载均衡设备的Ip及设备状态
ip_hash;
server 10.0.0.11: down;
server 10.0.0.11: weight= max_fails= fail_timeout=1s;
server 10.0.0.11: max_fails= fail_timeout=1s;
server 10.0.0.11: backup;
}

uwsgi + nginx 部署python项目(二)的更多相关文章

  1. uwsgi + nginx 部署python项目(一)

    uWSGI uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI / uws ...

  2. 使用uWSGI+nginx部署Django项目

    最近使用django写了一些项目,不过部署到服务器上碰到一些问题,还有静态文件什么的一堆问题,这里总结一下碰到的问题和解决方案,总体思路是按照官方文档走的. 原文地址:http://uwsgi-doc ...

  3. ubuntu18+uwsgi+nginx部署django项目

    更新系统软件源 sudo apt-get update pip3安装 sudo apt install python3-pip 安装virtualenvwrapper pip3 install vir ...

  4. vue+uwsgi+nginx部署luffty项目

    在部署项目之前本人已经将前端代码和后端代码发布在了一个网站上,大家可自行下载,当然如果有Xftp工具也可以直接从本地导入. django代码 https://files.cnblogs.com/fil ...

  5. uwsgi+nginx部署django项目

    1. 概念解析(wsgi协议,uwsgi协议,uWSGI) 参考:https://www.cnblogs.com/wspblog/p/8575101.html 1.1 现实世界的web请求: 1.2  ...

  6. centOS+uwsgi+nginx 部署flask项目,问题记录

    用flask做的项目想要部署到centOS系统上,填了一些坑,终于成功了,记录一下遇到的问题: 此次部署主要是按照这个博客进行的 https://www.cnblogs.com/Ray-liang/p ...

  7. Ubuntu+Django+uWSGI+Nginx部署Django项目

    安装uWSGI,pip依据自己要使用的python版本自行选择,python2.x版本使用pip进行安装,python3.x版本使用pip3进行安装 pip install uwsgi 配置uWSGI ...

  8. 基于腾讯云CentOS7.4+MySQL5.7+Python3+uwsgi+nginx的Django项目部署

    准备知识 1.django一个基于python的开源web框架,请确保自己熟悉它的框架目录结构. 2.uWSGI一个基于自有的uwsgi协议.wsgi协议和http服务协议的web网关 3.nginx ...

  9. Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)

    Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...

随机推荐

  1. 移动web开发问题和经验总结

    前言 这里大部分是自己遇到过的情况,还有一部分借鉴了同行的文章,如果大家有遇到其它坑,欢迎提出来一起研究. 知识要点 1. Meta标签 1.禁止用户缩放页面,页面强制让文档的宽度与设备的宽度保持1: ...

  2. golang初识 和 变量,常量,iota

    目录 一.go语言与python 1. go语言 2. python 二.变量相关 1. go语言的基本语法 2. 标识符和关键字 3. 变量声明 (1)声明变量时未指定初始值 (2)声明变量时指定初 ...

  3. java 各版本新特性

    Java 5,6,7,8,9,10,11新特性吐血总结 lkd_whh关注赞赏支持 12018.04.01 14:09:15字数 1,948阅读 10,615 作者:拔剑少年 简书地址:https:/ ...

  4. java实现网页验证码功能_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 本文实例为大家分享了java网页验证码的实现代码,供大家参考,具体内容如下 Servlet: package cn.bd ...

  5. sh_02_第一个while循环

    sh_02_第一个while循环 # 打印 5 遍 Hello Python # 1. 定义一个整数变量,记录循环次数 i = 1 # 2. 开始循环 while i <= 3: # 1> ...

  6. 在windows窗口下打开文件夹

    System.Diagnostics.Process.Start("Explorer.exe", @"C:\Users\gnt-wangt\Documents\Visua ...

  7. 关于option标签的selected属性

    当item的dict_id和custSource一样,那么当前的item的name就被选中并显示在页面 如果直接写selected="selected",就等于直接回显这个集合中最 ...

  8. 第十一周java学习总结

    目录 第十一周java学习总结 学习内容 学习总结 提交代码截图 代码推送 第十一周java学习总结 学习内容 第13章 Java网络编程 主要内容 URL类 InetAdress类 套接字 UDP数 ...

  9. 对AC自动机+DP题的一些汇总与一丝总结 (1)

    (1)题意 : 输入n.m.k意思就是给你 m 个模式串,问你构建长度为 n 至少包含 k 个模式串的方案有多少种 分析:(HDU2825) DP[i][j][k] 表示 DP[第几步][哪个节点结尾 ...

  10. jQuery file upload上传图片出错分析

    以https://github.com/blueimp/jQuery-File-Upload/blob/master/basic-plus.html为例 注释掉load-image.all.min.j ...