Nginx代理技术全景图

Nginx代理
基础反向代理
负载均衡
缓存加速
安全防护
高级功能
请求转发
头部重写
连接池
轮询策略
权重分配
会话保持
静态缓存
动态缓存
边缘缓存
WAF规则
速率限制
地理封锁
WebSocket
SSL卸载
动态路由

代理类型深度对比

特性基础反向代理负载均衡缓存代理最佳适用场景
核心功能请求转发流量分配内容缓存缓存代理:高重复请求
性能影响极高负载均衡:高并发系统
配置复杂度★★☆☆☆★★★☆☆★★★★☆基础代理:简单转发
资源消耗高(内存)按需求选择
典型延迟5-50ms10-100ms1-5ms缓存代理:低延迟需求
企业应用内部服务代理应用集群CDN边缘节点根据架构层级选择

负载均衡策略详解

策略配置指令算法原理适用场景缺点
轮询默认顺序分配默认均衡不考虑服务器状态
加权轮询weight=3按权重比例异构服务器静态配置
IP哈希ip_hash客户端IP映射会话保持扩展性差
最少连接least_conn选择连接最少长连接服务计算开销
响应时间fair (第三方)最快响应优先性能敏感服务需额外模块

缓存优化技术

缓存类型存储位置缓存内容失效策略性能影响
客户端缓存用户浏览器静态资源Expires头极高
边缘缓存CDN节点静态内容TTL控制
反向代理缓存Nginx服务器动态内容Cache-Control
应用缓存内存(Redis)数据库查询LRU算法极高

一、Nginx 代理服务器配置

1. 基础反向代理

# 创建代理配置
[root@localhost ~]# vi /etc/nginx/conf.d/proxy.conf
server {listen 80;server_name proxy.localhost;location / {proxy_pass http://backend_server;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}# 定义上游服务器
upstream backend_server {server 192.168.1.101:8080;server 192.168.1.102:8080;
}# 重载配置
[root@localhost ~]# nginx -t && systemctl reload nginx

2. 负载均衡策略

# 加权轮询
upstream backend {server 192.168.1.101 weight=3;  # 处理3倍流量server 192.168.1.102;
}# IP哈希保持会话
upstream backend {ip_hash;server 192.168.1.101;server 192.168.1.102;
}# 最少连接数
upstream backend {least_conn;server 192.168.1.101;server 192.168.1.102;
}

3. 缓存配置

# 代理缓存设置
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=PROXY_CACHE:10m inactive=60m;server {location / {proxy_cache PROXY_CACHE;proxy_cache_valid 200 302 10m;proxy_cache_valid 404 1m;proxy_cache_min_uses 1;add_header X-Cache-Status $upstream_cache_status;}
}

二、Nginx 性能优化

1. 连接优化

# 编辑主配置文件
[root@localhost ~]# vi /etc/nginx/nginx.conf
events {worker_connections 10240;  # 单worker最大连接数multi_accept on;           # 同时接受多个连接use epoll;                 # Linux高性能事件模型
}http {keepalive_timeout 30s;     # 保持连接超时keepalive_requests 100;    # 单连接最大请求数sendfile on;               # 零拷贝传输tcp_nopush on;             # 优化数据包发送tcp_nodelay on;            # 禁用Nagle算法
}

2. 压缩优化

gzip on;
gzip_min_length 1024;          # 最小压缩文件大小
gzip_comp_level 6;             # 压缩级别(1-9)
gzip_types text/plain text/css application/json application/javascript;
gzip_vary on;                  # 根据请求头启用压缩

3. 静态资源优化

location ~* \.(jpg|png|css|js)$ {expires 30d;               # 客户端缓存30天access_log off;             # 关闭访问日志add_header Cache-Control "public";open_file_cache max=1000 inactive=20s;  # 文件描述符缓存
}

4. 内核参数调优

# 编辑sysctl配置
[root@localhost ~]# vi /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
fs.file-max = 100000# 应用配置
[root@localhost ~]# sysctl -p

三、高级代理功能

1. WebSocket 代理

location /wsapp/ {proxy_pass http://websocket_backend;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_read_timeout 600s;    # 长连接超时
}

2. 动态SSL证书

# 使用Let's Encrypt自动续签
[root@localhost ~]# certbot --nginx -d domain.com# 配置自动重载
[root@localhost ~]# echo "0 0 * * * certbot renew --quiet" | crontab -

3. 地理位置路由

geo $geo {default default_backend;192.168.1.0/24 lan_backend;
}server {location / {proxy_pass http://$geo;}
}

命令总结表格

演示命令功能描述关键参数
proxy_pass http://backend反向代理配置后端服务器地址
upstream backend { ... }定义服务器组server + weight
proxy_cache_path配置代理缓存缓存路径和参数
worker_connections 10240调整并发连接数最大连接数
gzip on启用压缩减少传输体积
expires 30d静态资源缓存客户端缓存时间
sysctl -p应用内核参数系统级优化
certbot --nginx自动SSL证书免费HTTPS证书

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92527.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92527.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/92527.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[0CTF 2016]piapiapia

usernamepassword回显推断admin123Invalid user name or passwordadmin123Invalid user name or passwordadmin123Invalid user name or passworda123Invalid user name说明username是adminadmin1Invalid password这很奇怪了admin0200?admin11Invalid user name or …

人工智能系列(7)人工神经网络中的无监督学习

一. 无监督学习简介神经网络的一个关键属性是能够从环境中学习,并在不断学习的过程中持续改善性能。在无监督学习(又称自组织学习,self-organized learning)中,网络无需外部教师提供目标输出,而是通过对输入…

250810-OpenWebUI集成Dify应用

A. 最终效果 B. 环境配置 配置并启动Open-WebUI 随后浏览器访问:http://localhost:8080 pip install open-webui open-webui serve配置并启动Pipelines Pipelines默认占用80端口相比于Docker的启动方式,可以在相同的命令行中,查看pipelines …

day22|学习前端ts语言

抽象类,继承。不能创造实例class类:属性声明,构造器,方法,实例继承super()override重写父类继承的方法声明提升(hoisting)同一个js作用域内部,编译阶段把函数…

【网络安全】CTF——[网鼎杯2018]Unfinish-SQL注入-二次注入

目录 一、前言 二、环境 三、复现 3.1寻找注入点 3.2尝试盲注 3.3正则限制 3.4脚本注入获取flag 四、总结 一、前言 前两天复现了一道CTF题目[网鼎杯 2018]Comment,今天继续来学习一下SQL二次注入。 二、环境 BUUCTF在线评测 三、…

【langchain】如何给langchain提issue和提pull request?

什么是issue? 可以这么理解,bug是issue的子集。issue可以包含bug\feature\sercurity and others. https://github.com/langchain-ai/langchain/issues/32484 什么是pull request? 其实我真不是很理解,但不妨我来提pr https://github.com/langchain-ai/…

MySQL的存储引擎:

目录 InooDB引擎: MyISAM引擎: InooDB引擎与MyISAM存储引擎的区别: Archive引擎: Blackhole引擎: CSV引擎: Memory引擎: Federated引擎: Merge引擎: NDB引擎&a…

Mock与Stub

一、核心概念与差异对比特性MockStub核心目的验证对象间的交互行为提供预定义的固定响应验证重点方法调用次数、参数、顺序不关注调用过程,只关注结果行为模拟可编程的智能模拟静态的简单响应适用场景验证协作关系隔离依赖、提供固定数据复杂性较高(需要…

香港服务器容器网络插件的多节点通信性能基准测试

香港服务器容器网络插件的多节点通信性能基准测试在云计算和容器化技术快速发展的今天,香港服务器因其优越的地理位置和网络环境,成为众多企业部署容器服务的首选。本文将深入探讨香港服务器环境下容器网络插件的多节点通信性能,通过详实的基…

Vue3 学习教程,从入门到精通,Vue 3 全局 API 语法知识点及案例详解(32)

Vue 3 全局 API 语法知识点及案例详解 Vue 3 提供了丰富的全局 API,用于创建应用实例、注册全局组件、指令、插件等。以下将详细介绍 Vue 3 的主要全局 API,并结合详细的案例代码进行说明。每个案例代码都包含中文注释,帮助初学者更好地理解…

UE5多人MOBA+GAS 41、制作一个飞弹,添加准心索敌

文章目录添加新角色(不写了)创建一个发射技能创建一个飞弹类添加击中特效添加准星UI获取瞄准目标添加新角色(不写了) 将原本的机器人蓝图改为BP_PlayerCharacter,以此创建子蓝图 创建动画蓝图模板(具体就…

解决渲染抖动与滚动锚点定位不准确问题的方法与经验分享

场景描述:React 虚拟列表(Virtualized List)是当我们在处理大列表时,为了提升性能而采用的一种技术。然而在实现过程中,可能会遇到渲染抖动问题以及滚动锚点定位不准确的问题。  解决方案:React虚拟列表实…

OpenAI 时隔多年再开源!GPT-OSS 120B/20B 发布,支持本地部署,消费级 GPU 即可运行

OpenAI 近期做出了一项令人瞩目的战略转变:宣布推出两款开放权重(Open Weight) 语言模型 GPT-OSS-120B 和 GPT-OSS-20B。这不仅是其自 GPT-2 之后首次开源模型,更关键的是,这两款模型特别针对消费级硬件进行了深度优化…

MySQL高可用方案之MySQL Group Replication高可用架构搭建完全指南

MySQL Group Replication高可用架构搭建完全指南 前言 在当今互联网应用中,数据库高可用性已成为系统设计的核心需求。MySQL作为最流行的开源关系型数据库之一,其高可用解决方案备受关注。MySQL Group Replication是MySQL官方推出的原生高可用解决方案,它基于Paxos协议实现…

网站SSL证书到期如何更换?简单完整操作指南

----------------------------------------------------------------------------------------------- 这是我在我的网站中截取的文章,有更多的文章欢迎来访问我自己的博客网站rn.berlinlian.cn,这里还有很多有关计算机的知识,欢迎进行留言或…

Spring Boot 开发三板斧:POM 依赖、注解与配置管理

引言 Spring Boot 是一个功能强大且广受欢迎的框架,用于快速构建基于 Spring 的应用。它通过简化配置和自动化管理,帮助开发者专注于业务逻辑的实现。然而,要想高效地开发 Spring Boot 应用,掌握以下三个关键点至关重要&#xff1…

kubernetes安装搭建

个人博客站—运维鹿:http://www.kervin24.top/ CSDN博客—做个超努力的小奚: https://blog.csdn.net/qq_52914969?typeblog 一、kubernetes介绍 Kubernetes本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容…

MySQL高可用方案之MySQL InnoDB Cluster高可用架构实战指南:从零搭建到生产部署

MySQL InnoDB Cluster高可用架构实战指南:从零搭建到生产部署 一、引言:为什么选择MySQL InnoDB Cluster 在当今数据驱动的商业环境中,数据库高可用性已成为企业IT基础设施的核心需求。MySQL作为全球最受欢迎的开源关系型数据库,其高可用解决方案备受关注。而MySQL InnoD…

祝融号无线电工作频段

前面深入查证了旅行者1号的无线电工作频段: 旅行者1号无线电工作频段-CSDN博客 下面尝试查证我国祝融号无线电工作频段。 一、百度百科 来自百度百科: 我注意到一条关键信息: 这说明祝融号在国际上是有合作的,而不是我们国家单…

Kafka生产者相关原理

前言前面已经介绍了Kafka的架构知识并引出了Kafka的相关专业名称进行解释这次分享一下Kafka对生产者发送消息进行处理的运行机制和原理生产者发送消息两种方式同步发送消息程序中线程执行完消息发送操作之后会等待Kafka的消息回应ack默认等待30秒没有回应就会抛出异常等待时间和…