Nginx IP地址较少时如何合理分配后端服务资源
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地址较少时如何合理分配后端服务资源的更多相关文章
- 在nginx配置将请求转发到某个真实后端服务ip
一.打开nginx机器的nginx配置文件 命令: locate nginx.conf 会列出所有nginx.conf文件的地址, 一般咱们要用的nginx配置文件是/usr/local/nginx/ ...
- Nginx IP地址透传
L:119
- --with-http_realip_module选项(后台Nginx服务器记录原始客户端的IP地址 )
转自:http://blog.itpub.net/27043155/viewspace-734234/ 通过这个模块允许我们改变客户端请求头中客户端IP地址值(例如,X-Real-IP 或 X-For ...
- 计算机网络九:IP地址、子网掩码、默认网关、DHCP服务器、DNS服务器、WINS服务器
一.IP地址与子网掩码 1.IP地址 ipv4下,ip地址=网络号+主机号. 2.子网掩码 子网掩码(subnet mask)又叫网络掩码.地址掩码.子网络遮罩,它是一种用来指明一个I ...
- 通过DHCP动态管理IP地址
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP ...
- IP地址分类及CIDR划分方法
IP地址的分类和表示有三种形式,1.分类的IP地址.2.子网划分.3.无分类编址CIDR 1.分类的IP地址 IP地址:: = {<网络号>,<主机号>} 不同的网络号和主机号 ...
- 2-4-搭建DHCP服务实现动态分配IP地址-NTP网络时间同步
本节所讲内容: •DHCP服务器工作原理 •使用DHCP为局域网中的机器分配IP地址 •使用DHCP为服务器分配固定IP地址 •ntpdate加计划任务同步服务器时间 ---------------- ...
- 100.64.0.0/10运营商级(Carrier-grade)NAT保留IP地址
在一次跟踪路由的网络操作时发现自己路由器下一跳路由节点的IP地址比较奇怪,是100.64.0.1.好奇促使我查询了这个IP地址的归属,结果是保留地址,到这里觉得比较奇怪了,按照常理以IPv4为例保留的 ...
- IP地址-计算机网络
如需转载请联系:fengxw6@mail2.sysu.edu.cn 未经许可,禁止转载. ---Sun Yat-sen University 冯兴伟 1. MAC地址和IP地址都是全局的(全球分配) ...
- 重学计算机网络(二) - 曾记否,查IP地址
先献上几个梗 1.1.1.1 不是测试用的,原来一直没分配,现在被用来做一个DNS了,宣传是比谷歌等公司的dns服务 更保护用户隐私. IP地址255.255.255.255,代表有限广播,它的目标是 ...
随机推荐
- Config:Spring Cloud分布式配置组件
Config:Spring Cloud分布式配置组件 问题总结 Config? Config工作原理? Config 的特点? Config+Bus 实现配置的动态刷新? 问题答案 Config Co ...
- Android 蓝牙使用
原文地址: Android 蓝牙使用 - Stars-One的杂货小窝 公司项目需求需要实现监听蓝牙耳机连接,且要获取蓝牙耳机电量功能,翻了不少官方文档,记录下技术调研代码 注:本文没有研究蓝牙配对功 ...
- C# 成为2023年度编程语言之王
原文发表在公众号 腾讯云开发者:https://mp.weixin.qq.com/s/5owE5hmJVkwOLJrKMXfR6Q 导读 2023 TIOBE 年度编程语言正式揭晓,C# 在陪跑多年后 ...
- 【K8S系列】如何高效查看 k8s日志
序言 你只管努力,其他交给时间,时间会证明一切. 文章标记颜色说明: 黄色:重要标题 红色:用来标记结论 绿色:用来标记一级论点 蓝色:用来标记二级论点 Kubernetes (k8s) 是一个容器编 ...
- Python借助企业微信群机器人发送消息、图片和文件
企业微信功能日益强大,腾讯官方也提供了丰富的API供开发者实现企业微信的很多自动化场景.比如,如何给某个企业微信群发送消息.图片或者文件,甚至@指定群用户?别急,看小爬君轻松教会大家. Step1:在 ...
- 【昇腾】ModelArts与Atlas 200 DK云端协同开发——行人检测Demo(完整版)
摘要:本文主要为大家展示如何基于ModelArts与Atlas 200 DK 端云协同开发的行人检测Demo实现过程. 基于开源数据集,使用ModelArts训练行人检测模型,在本地MindStudi ...
- GaussDB(DWS)发生数据倾斜不要慌,一文教你轻松获取表倾斜率
摘要:GaussDB(DWS)是MPP并行架构,若表的数据存在倾斜情况,会引起一系列性能问题,影响用户体验,严重时可能会引起系统故障.因此能快速获取倾斜的表并整改是GaussDB(DWS)运维管理人员 ...
- Axure 变量、属性、函数
局部变量 使用场景非常多; 需要先创建; 只能作用于当前事件; 命名需要注意,只能英文+数字; 全局变量 需要先创建; 可以作用于整个文档,在任意页面调用或使用 中继器的 Item 属性 item:获 ...
- CXF WebService 授权&动态调用
SpringBoot WebService 源代码:https://gitee.com/VipSoft/VipWebService 服务端添加拦截器 import org.apache.cxf.bin ...
- 【django drf】 阶段练习
目录 需求 settings.py views.py urls.py serializers.py permissions.py page.py authenticate.py model.py 权限 ...