当前位置: 首页 > ai >正文

Java-43 深入浅出 Nginx - 基本配置方式 nginx.conf Events块 HTTP块 反向代理 负载均衡

点一下关注吧!!!非常感谢!!持续更新!!!

🚀 AI篇持续更新中!(长期更新)

目前2025年06月05日更新到:
AI炼丹日志-28 - Audiblez 将你的电子书epub转换为音频mp3 做有声书,持续打造实用AI工具指南!📐🤖

💻 Java篇正式开启!(300篇)

目前2025年06月11日更新到:
Java-42 深入浅出 Nginx - 缘起与发展 场景与配置快速上手
MyBatis 已完结,Spring 已完结,深入浅出助你打牢基础!

📊 大数据板块已完成多项干货更新(300篇):

包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件,覆盖离线+实时数仓全栈!
目前2025年06月05日更新到:
大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT案例 详解

👉 点个关注,不迷路!后续还将持续更新更多大模型+数据智能+工程实战内容,敬请期待!

在这里插入图片描述

配置文件

Nginx的配置文件nginx.conf包含三个内容:
● 全局块
● events块
● http块

Nginx 的配置文件(通常为 /etc/nginx/nginx.conf)采用分块结构,主要包括以下三大类:

├── 全局块(main block)
├── events 块
└── http 块├── server 块│    └── location 块

全局块 Main Block

从配置文件开始到events块之间的内容,此处的配置影响Nginx服务器整体的运行,比如Works进程的数量、错误日志的位置等。

  • 位置: 配置文件顶部
  • 作用: 配置影响整个 Nginx 服务的全局参数。

在这里插入图片描述

  • user:设置 Nginx 进程运行用户
  • worker_processes:工作进程数量,建议设为 CPU 核心数
  • error_log:指定错误日志路径和日志级别
  • pid:指定进程 ID 文件的位置
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /run/nginx.pid;

Events块

events主要影响Nginx服务器与用户的网络连接,比如 worker_connections 1024,标识每个process支持最大连接数是 1024

  • 位置: 紧接在全局块之后
  • 作用: 控制 Nginx 的连接处理模型,与高并发性能密切相关。

在这里插入图片描述

  • worker_connections:每个 worker 进程支持的最大连接数
  • use epoll:指定事件驱动模型(Linux 通常用 epoll)
events {worker_connections 10240;use epoll;
}

HTTP块

http块配置是变动最频繁的,虚拟主机的配置,监听端口的配置,请求转发、反向代理、负载均衡等。

  • 位置: 最核心模块
  • 作用: 处理所有基于 HTTP 协议的请求,包含服务器配置、反向代理、负载均衡等。

在这里插入图片描述

  • server 块:定义虚拟主机(监听端口、域名)
  • location 块:定义 URI 匹配规则和处理方式
  • upstream 块:定义上游服务器组(负载均衡)
  • log_format/access_log:定义日志格式
http {include       mime.types;default_type  application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;keepalive_timeout  65;include /etc/nginx/conf.d/*.conf;
}

反向代理

需求一

部署tomcat,保持默认监听8080端口。
修改Nginx配置,并重新加载:
在这里插入图片描述

需求二

部署一台tomcat,保持监听8081端口
修改Nginx配置,重新加载:
在这里插入图片描述
该部分主要就是 多Location的使用,语法如下:

location [=|~|~*|^~] /uri/ {}

在Nginx配置文件中,location有如下几种形式:
● 1正则匹配 location ~ /xxx {}
● 2不区分大小写的正则匹配 location ~* /xxx {}
● 3匹配路径的前缀 location ^~ /xxx {}
● 4精确匹配 location = /xxx {}
● 5普通路径前缀匹配 location /xxx {}

优先级如下:4 > 3 > 2 > 1 > 5

负载均衡

轮询

默认策略,每个请求按时间顺序逐一分配到不同的服务器,如果某一个服务器下线,能自动剔除。

upstream wzk {server localhost:8080;server localhost:8082;
}location /abc {proxy_pass http://wzk/;
}

weight

weight代表权重,默认每一个负载的服务器都为1,权重越高被分配的请求越多(用于服务器性能不均衡的场景)

upstream wzk {server localhost:8080 weight=1;server localhost:8082 weight=2;
}

ip_hash

每个请求按照ip的hash结果分配,每一个客户端的请求会固定分配到同一个目标服务器处理,可以解决Session问题

upstream wzk {ip_hash;server localhost:8080 weight=1;server localhost:8082 weight=2;
}

动静分离

动静分离就是将动态资源和静态资源的请求处理分配到不同的服务器上,比较经典的组合就是Nginx+Tomcat(Nginx处理静态资源,Tomcat处理动态资源),之前的例子中,Nginx反向代理目标服务器Tomcat,我们看到目标服务器ROOT的项目 index.jsp,这本身就是Tomcat在处理动态资源了。

在这里插入图片描述

http://www.xdnf.cn/news/13434.html

相关文章:

  • idea不同颜色总结
  • 【深尚想】LTR-390UV-01光宝环境光传感器电子元器件详细解析
  • HDFS 中 DataNode 挂载外部 S3 存储系统作为本地卷
  • 迁移科技3D视觉系统:开启袋子拆垛场景的智能革命新纪元
  • 53、错误处理-【源码分析】底层组件功能分析
  • Kafka消费者组位移重设指南
  • 从0到1掌握Sqoop:开启大数据迁移之旅
  • 爬取新浪新闻网的全部策略
  • 【kafka】rebalance机制详解
  • 基于GNU Radio Companion安装和搭建的简易FMRadio
  • Node.js版本管理
  • Contos7yum停服
  • latch/ff的电路结构及setup/hold/tpd、clkWidht/recovery/remove
  • Dexcap复现代码运行逻辑全流程(二)——realsense T265测试使用
  • 【学习笔记】RTSP-Ovnif-GB28181
  • vtk 对stl文件进行降采样
  • 鹰盾播放器AI识别字幕技术栈解析:从视频帧处理到语义理解的全流程实现
  • 工作总结及记录
  • vim的相关命令 + 三种模式(10)
  • Java异步编程难题
  • 保险丝的作用、基本参数和选型
  • vite原理
  • 智慧航空 | 飞机引擎设备拆解可视化
  • pysnmp模块中 GET、SET、WALK操作详细分步解析
  • 【Java】【力扣】121.买卖股票的最佳时机
  • 分布式I/O在食品包装行业中的应用
  • 239. 滑动窗口的最大值
  • [服务器] Amazon Lightsail SSH连接黑屏的常见原因及解决方案
  • 使用Kubectl命令操作集群
  • AIStor 的模型上下文协议 (MCP) 服务器: 工作原理