Nginx IP地址较少时如何合理分配后端服务资源


背景

客户系统很多时候会通过网闸或者是VPN登录到产品内
此时的IP地址一般是相同的.
这种情况下较难实现根据ip地址使用ip_hash的方式将压力分散到不同的服务器上面. 想到之前有很多应用喜欢根据浏览器来判断是否符合需求
不符合需求就给出提示, 避免使用起来有问题. 想着也可以使用这种方法对应用进行切分. 所以总结了一下.

同事思路

同事一开始从网上找了一个 denied 和 allow 的方式
但是nginx有一个匹配后的处理过程 匹配到denied 可能就直接返回 不就行走了,
所以会导致不符合预期的情况

根据remote_addr进行处理.

思路:
使用 remote_addr 进行判断
如果属于地址范围 则进行一下处理 如果不属于再进行另外的域名站点 需要注意nginx 其实不支持 if else的语法
需要先定义一个变量.通过变量的方式进行设置处理.

nginx代码

worker_processes  1;
user root ;
events {
worker_connections 1024;
} http {
include mime.types;
default_type application/octet-stream; upstream A {
ip_hash ;
server 10.110.xx.xxx:5200;
}
upstream B {
ip_hash ;
server 10.110.yy.yyy:5200;
}
upstream C {
ip_hash ;
server 10.110.zz.zzz:5200;
} log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" $request_time $upstream_response_time';
access_log access.log main ;
client_header_timeout 600;
client_body_timeout 600;
client_max_body_size 300m;
proxy_send_timeout 600;
proxy_read_timeout 600;
proxy_buffer_size 1024k;
proxy_buffers 16 1024k;
proxy_busy_buffers_size 2048k;
proxy_temp_file_write_size 2048k;
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 8;
gzip_types text/plain application/javascript text/css application/json text/javascript image/svg+xml image/png;
gzip_vary off; server {
listen 88;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
set $is_matched 0;
if ( $remote_addr ~* "10.72.xx.xxx") {
set $is_matched 1;
proxy_pass http://A;
}
if ($remote_addr ~* "10.25") {
set $is_matched 1;
proxy_pass http://B;
}
if ( $is_matched = 0 ){
proxy_pass http://C;
}
}
}
}

Nginx IP地址较少时如何合理分配后端服务资源的更多相关文章

  1. 在nginx配置将请求转发到某个真实后端服务ip

    一.打开nginx机器的nginx配置文件 命令: locate nginx.conf 会列出所有nginx.conf文件的地址, 一般咱们要用的nginx配置文件是/usr/local/nginx/ ...

  2. Nginx IP地址透传

    L:119

  3. --with-http_realip_module选项(后台Nginx服务器记录原始客户端的IP地址 )

    转自:http://blog.itpub.net/27043155/viewspace-734234/ 通过这个模块允许我们改变客户端请求头中客户端IP地址值(例如,X-Real-IP 或 X-For ...

  4. 计算机网络九:IP地址、子网掩码、默认网关、DHCP服务器、DNS服务器、WINS服务器

    一.IP地址与子网掩码 1.IP地址 ipv4下,ip地址=网络号+主机号. 2.子网掩码         子网掩码(subnet mask)又叫网络掩码.地址掩码.子网络遮罩,它是一种用来指明一个I ...

  5. 通过DHCP动态管理IP地址

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP ...

  6. IP地址分类及CIDR划分方法

    IP地址的分类和表示有三种形式,1.分类的IP地址.2.子网划分.3.无分类编址CIDR 1.分类的IP地址 IP地址:: = {<网络号>,<主机号>} 不同的网络号和主机号 ...

  7. 2-4-搭建DHCP服务实现动态分配IP地址-NTP网络时间同步

    本节所讲内容: •DHCP服务器工作原理 •使用DHCP为局域网中的机器分配IP地址 •使用DHCP为服务器分配固定IP地址 •ntpdate加计划任务同步服务器时间 ---------------- ...

  8. 100.64.0.0/10运营商级(Carrier-grade)NAT保留IP地址

    在一次跟踪路由的网络操作时发现自己路由器下一跳路由节点的IP地址比较奇怪,是100.64.0.1.好奇促使我查询了这个IP地址的归属,结果是保留地址,到这里觉得比较奇怪了,按照常理以IPv4为例保留的 ...

  9. IP地址-计算机网络

    如需转载请联系:fengxw6@mail2.sysu.edu.cn 未经许可,禁止转载. ---Sun Yat-sen University 冯兴伟 1.  MAC地址和IP地址都是全局的(全球分配) ...

  10. 重学计算机网络(二) - 曾记否,查IP地址

    先献上几个梗 1.1.1.1 不是测试用的,原来一直没分配,现在被用来做一个DNS了,宣传是比谷歌等公司的dns服务 更保护用户隐私. IP地址255.255.255.255,代表有限广播,它的目标是 ...

随机推荐

  1. Dart 3.2 更新盘点

    作者 / Kevin Moore 和 Michael Thomsen 我们隆重宣布推出 Dart 3.2,这一版本针对以下方面做出了改进: 新增了一项语言功能,可对私有 final 字段进行非空升级: ...

  2. UnionFind 并查集

    简介 UnionFind 主要用于解决图论中的动态联通性的问题(对于输入的一系列元素集合,判断其中的元素是否是相连通的). 以下图为例: 集合[1, 2, 3, 4] 和 [5, 6]中的每个元素之间 ...

  3. 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 04.角色感知组件PawnSensingComponent和更平滑的转身

    斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论 概述 本文章对应课程第十一章 43.44节.本文讲述PawnSensingComponent中的视觉感知的使用,以及对 ...

  4. POJ 3537 Crosses and Crosses 博弈论 SG函数 记忆化搜索

    原题链接 题意 两人在一个长为n * 1的棋盘上下棋,两人持相同棋子,如果某人下完之后,棋盘上有三个棋子相连,则此人获胜.给出n,求是否先手必胜. 思路 一开始分析成了最少取3个,最多取5个的巴什博弈 ...

  5. spring-cloud-alibaba项目打包

    在父依赖中加入 <build> <plugins> <plugin> <groupId>org.springframework.boot</gro ...

  6. 【华为云技术分享】网络场景AI模型训练效率实践

    [摘要] 问题 KPI异常检测项目需要对设备内多模块.多类型数据,并根据波形以及异常表现进行分析,这样的数据量往往较大,对内存和性能要求较高.同时,在设计优化算法时,需要快速得到训练及测试结果并根据结 ...

  7. 诸多老牌数据仓库厂商当前,Snowflake如何创近12年最大IPO金额

    摘要:在数据仓库/分析领域,有传统厂商Oracle,Teradata,开源软件Hadoop,云厂商AWS Redshift,Google Bigquery,Snowflake成功的技术原因是什么? 1 ...

  8. 云图说|图解制品仓库CodeArts Artifact

    摘要:制品仓库用于存放由源码编译生成的.可运行的二进制文件,重要作用是实现制品文件的可信存储,支撑软件开发活动. 本文分享自华为云社区<[云图说]第277期 图解制品仓库CodeArts Art ...

  9. 大数据处理黑科技:揭秘PB级数仓GaussDB(DWS) 并行计算技术

    摘要:通过这篇文章,我们了解了GaussDB(DWS)并行计算技术的原理以及调优策略.希望广大开发者朋友们能够在实践中尝试该技术,更好地进行性能优化. 随着硬件系统的越来越好,数据库运行的CPU.磁盘 ...

  10. CodeArts TestPlan:一站式测试管理平台

    摘要:华为云正式发布CodeArts TestPlan,这是一款自主研发的一站式测试管理平台,沉淀了华为30多年高质量的软件测试工程方法与实践,覆盖测试计划.测试设计.测试执行和测试评估等全流程. 本 ...