nginx—proxy代理实现和相关配置优化负载均衡
2023-09-27 14:25:42 时间
代理规则
#将URI为/test的请求代理到127.0.0.1上,端口号为666,协议为HTTP
location = /test {
proxy_pass http://127.0.0.l:666;
}
#/test/v1/会被替换为/abc/,如/test/v1/xxx?a=1到达后端会变为/abc/xxx?a=1
location /test/v1/ {
proxy_pass http://127.0.0.1:666/abc/
}
location /abc/和location/abc的区别:
/abc/:原样替换
/abc:什么都不会改变,直接传递原始的URL
减少后端的网络开销
- proxy_pass_request_body:确定是否向后端服务器发送HTTP请求体
- proxy_pass_request_headers:确定是否向后端服务器发送HTTP请求头
控制请求头和请求体
名称 | 作用 | 支持配置的环境 |
proxy_hide_header | 禁止某个请求头被转发到后端服务器,如proxy_hide_hedaer Cache-Control | http、server、location |
proxy_pass_header | 允许已被禁止转发的请求头继续转发,如 proxy_pass_hedaer Cache-Control | http、server、location |
proxy_set_header | 添加或修改请求头信息,如proxy_set_header_ HOST "www.why.com" | http、server、location |
proxy_set_body | 对请求体进行覆盖,后端服务器收到的将会是覆盖后的值,如proxy_set_body 'why=123' | http、server、location |
注意:在设置proxy_set_header后,下一级会继承合格请求头的内容。但如果下一层级也配置了proxy_set_hader指令,那么当请求到下一层级时,在上一层级配置的请求头将会被全部覆盖。比如:server使用了proxy_set_header,那么location也配置了proxy_set_header,则会覆盖server配置的,如要保留需重新在location配置。
控制请求和后端服务器的交互时间
名称 | 作用 | 位置 |
proxy_connect_timeout | 设置请求和后端服务器建立连接的超时时间,默认是60s,例如:proxy_connect_timeout 5s; | http/server/location |
proxy_read_timeout | 设置后端服务器读取相应的 超时时间,即两个相邻请求之间的时间,若在规定时间内客户端没有收到返回内容,就会关闭连接,默认是60s,例如:proxy_read_timeout 10s; | http/server/location |
proxy_send_timeout | 设置请求发送到后端服务器的超时时间,即两个相邻请求之间的时间,如果再规定时间内后端服务器没有受到任何请求,就会关闭连接,默认是60s,例如:proxy_send_timeout 10s; | http/server/location |
代理多台服务器
upstream why_server {
server 127.0.0.1:81 max_fails=5 fail_timeout=5s weight=10;
server 127.0.0.1:82 max_fails=5 fail_timeout=5s weight=10;
server 127.0.0.1:83 max_fails=5 fail_timeout=5s weight=10;
}
server {
listen 80;
location / {
proxy_pass http://why_server
}
}
长连接配置
名称 | 作用 | 位置 |
keepalive_requests | 设置每个连接的最大请求次数,超过这个次数就会关闭该连接建立新的连接 | http/server/location |
keepalive_timeout | 设置keep-alive客户端连接在服务器端保持开启的超时时间 | http/server/location |
keepalive | 设置worker进程和后端服务器之间保持空闲连接的最大值,如过空闲连接数大于这个值,则会关闭使用最少的连接 | upstream |
proxy_http_version 1.1 | 设置HTTP请求协议,要确保是1.1长连接协议 | http/server/location |
proxy_set_header Connection "" | 清空Connection请求头,避免客户端传递短连接的请求头信息 | http/server/location |
加速域名解析
两个配置都支持http、server、location三个块
server {
listen 80;
location / {
resolver 114.114.114.114 114.114.115.115 valid=30s; #有效期之内不会触发DNS解析,使用之前解析的IP地址
resolver_timeout 5s; #解析的超时时间
}
}
相关文章
- 爱快路由器的一些注意事项硬件配置+多线负载均衡
- php7安装及配置及php错误日志记录
- 【以太网链路聚合与交换机堆叠、集群(链路聚合的手动模式和LACP模式、LACP报文格式、活动链路选举、负载分担及配置)】-20211218(HCIA大结局)
- Linux上搭载Nginx负载均衡的详细配置及使用案例详解.
- 阿里云负载不支持 WebSocket 协议与 WSS 和 Nginx 配置问题
- Nginx负载均衡配置实例详解
- Linux 下 Nginx 反向代理 负载均衡配置
- tomcat配置的环境变量catalina.home和catalina.base 区别
- 在VMware 虚拟机中配置 windows2003系统的NLB负载均衡;0x800706D5错误的解决方法;没有接口可用于安装新的群集
- SpringCloud Zuul 路由映射规则配置
- Tomcat安装、配置、优化及负载均衡详解
- 使用LVS实现负载均衡原理及安装配置详解
- Springboot+shiro配置笔记+错误小结
- 【Springboot】FastJson与Jackson全局序列化方式的配置和相关工具类
- 【科普向】什么是CPU、什么是GPU?本机Win11的CPU和GPU配置如何
- nginx—负载均衡配置
- 【DevOps】docker安装nexus3,配置nginx代理(更新于2022.04.30)
- Ubuntu 16.04 配置安卓5.1编译环境
- pycharm配置opencv库
- Nginx反向代理和负载均衡的配置
- nginx负载均衡简单配置
- Linux下Samba的配置
- PVE虚拟平台常用简明操作,三分钟搞定虚拟机更换安装配置
- ASP.NET Core使用Vue.js的项目配置及组合输出方法
- 如何配置OVN负载均衡器?
- Nginx 的 Location 配置指令块
- nginx + tomcat配置负载均衡
- 是时候使用 YAML 来做配置或数据文件了