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

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在处理动态资源了。

在这里插入图片描述

相关文章:

  • 永磁同步电机无速度算法--基于稳态卡尔曼滤波器SSEKF的滑模观测器
  • 实战使用docker compose 搭建 Redis 主从复制集群
  • 【docker】docker registry搭建私有镜像仓库
  • Linux 杀进程指令详解:`kill -9 PID` 和 `kill -15 PID` 有什么区别?
  • 云计算迁移策略:分步框架与优势
  • 开源生态新势能: 驱动国产 DevSecOps 与 AI 工程新进展
  • Vim鼠标右键复制问题解决方法
  • 自定义鼠标效果 - 浏览器扩展使用教程
  • (新手友好)MySQL学习笔记(8):存储过程,自定义函数,游标
  • ubuntuserver24.04版本:redis编译安装时出现工具、依赖库问题解决方法
  • 大模型笔记_模型微调
  • 模拟IC设计提高系列5-温度角与蒙特卡洛仿真
  • AI任务相关解决方案8-基于卷积神经网络(CNN)和反向传播神经网络(BPNN)的数字图像水印改进算法
  • MCP使用
  • Leetcode20 (有效的括号)
  • 【慧游鲁博】【11】后端 · Spring Boot 集成 Python 配置
  • 统计学(第8版)——方差分析Ⅰ(考试用)
  • ES Modules 与 CommonJS 的核心区别详解
  • 台湾住宅IP哪家好,怎么找到靠谱的海外住宅IP代理商
  • Web 架构之微服务拆分原则与反模式
  • 做网站公司汉狮团队/百度seo关键词优化电话
  • wordpress复制按钮插件/seo效果分析
  • 郑州的做网站公司哪家好/云seo关键词排名优化软件
  • 数字化文化馆网站建设/全国疫情一览表
  • 网站建设鼠标点击变色怎么弄/百度一下首页登录
  • 小学网站建设方案书/百度的广告推广需要多少费用