ngnix文件解析-ruoyi cloud plus

开源项目中ngnix.conf文件如下

worker_processes  1;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;# 限制body大小client_max_body_size 100m;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;upstream server {ip_hash;# gateway 地址server 127.0.0.1:8080;# server 127.0.0.1:8081;}server {listen       80;server_name  localhost;# https配置参考 start#listen       443 ssl;# 证书直接存放 /docker/nginx/cert/ 目录下即可 更改证书名称即可 无需更改证书路径#ssl on;#ssl_certificate      /etc/nginx/cert/xxx.local.crt; # /etc/nginx/cert/ 为docker映射路径 不允许更改#ssl_certificate_key  /etc/nginx/cert/xxx.local.key; # /etc/nginx/cert/ 为docker映射路径 不允许更改#ssl_session_timeout 5m;#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#ssl_prefer_server_ciphers on;# https配置参考 end# 演示环境配置 拦截除 GET POST 之外的所有请求# if ($request_method !~* GET|POST) {#     rewrite  ^/(.*)$  /403;# }# location = /403 {#     default_type application/json;#     return 200 '{"msg":"演示模式,不允许操作","code":500}';# }# 限制外网访问内网 actuator 相关路径location ~ ^(/[^/]*)?/actuator.*(/.*)?$ {return 403;}location / {root   /usr/share/nginx/html; # docker映射路径 不允许更改try_files $uri $uri/ /index.html;index  index.html index.htm;}location /prod-api/ {proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_read_timeout 86400s;# sse 与 websocket参数proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_buffering off;proxy_cache off;proxy_pass http://server/;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}

解析如下:

以下是对你提供的 Nginx 配置文件的逐行解析:
nginx
worker_processes  1;
- 指定 Nginx 启动的工作进程数。在这里设置为 1,适合于小型应用或开发环境。
nginx
error_log  /var/log/nginx/error.log warn;
- 设置错误日志的路径和日志级别。这里的日志会记录到  `/var/log/nginx/error.log` ,并且只记录警告级别及以上的错误。
nginx
pid        /var/run/nginx.pid;
- 指定 Nginx 主进程的 PID 文件路径。这个文件用于存储 Nginx 主进程的进程 ID。
nginx
events {worker_connections  1024;
}
-  `events`  块用于配置与事件处理相关的设置。 `worker_connections`  指定每个工作进程可以同时处理的最大连接数,这里设置为 1024。
nginx
http {
- 开始  `http`  块,所有与 HTTP 相关的配置都在这个块内。
nginxinclude       mime.types;
- 包含 MIME 类型的定义文件,Nginx 将根据文件扩展名来确定内容类型。
nginxdefault_type  application/octet-stream;
- 设置默认的内容类型为  `application/octet-stream` ,用于未明确指定类型的文件。
nginxsendfile        on;
- 启用高效的文件传输方式,使用  `sendfile`  系统调用来提高文件传输的性能。
nginxkeepalive_timeout  65;
- 设置客户端连接的保持活动时间为 65 秒,超过这个时间后,连接将被关闭。
nginxclient_max_body_size 100m;
- 限制客户端请求的最大体积为 100MB,防止过大的请求影响服务器性能。
nginxlog_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
- 定义访问日志的格式,日志中将记录客户端 IP、请求时间、请求内容、状态码、发送的字节数、来源、用户代理和 X-Forwarded-For 信息。
nginxaccess_log  /var/log/nginx/access.log  main;
- 设置访问日志的路径为  `/var/log/nginx/access.log` ,并使用上面定义的  `main`  格式。
nginxupstream server {
- 定义一个名为  `server`  的上游服务器组,后端服务器的配置将放在这个块内。
nginxip_hash;
- 使用  `ip_hash`  负载均衡策略,确保来自同一 IP 的请求总是被转发到同一台后端服务器。
nginxserver 127.0.0.1:8080;
- 定义一个后端服务器,地址为  `127.0.0.1` ,端口为  `8080` 。
nginx# server 127.0.0.1:8081;
- 注释掉的行,表示这是一个备用的后端服务器地址( `127.0.0.1:8081` ),当前未启用。
nginx}
- 结束  `upstream`  块。
nginxserver {
- 开始一个  `server`  块,定义一个虚拟主机。
nginxlisten       80;
- 指定服务器监听的端口为 80,通常用于 HTTP 服务。
nginxserver_name  localhost;
- 设置服务器的名称为  `localhost` ,可以通过该名称访问该虚拟主机。
nginx# https配置参考 start
- 注释行,表示 HTTPS 配置的起始部分。
nginx#listen       443 ssl;
- 注释掉的行,表示可以启用 SSL 的 443 端口。
nginx# ssl on;
- 注释掉的行,表示可以启用 SSL。
nginx#ssl_certificate      /etc/nginx/cert/xxx.local.crt;
- 注释掉的行,表示 SSL 证书的路径。
nginx#ssl_certificate_key  /etc/nginx/cert/xxx.local.key;
- 注释掉的行,表示 SSL 证书密钥的路径。
nginx#ssl_session_timeout 5m;
- 注释掉的行,表示 SSL 会话超时时间。
nginx#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
- 注释掉的行,表示 SSL 加密套件的配置。
nginx#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
- 注释掉的行,表示支持的 SSL 协议版本。
nginx#ssl_prefer_server_ciphers on;
- 注释掉的行,表示是否优先使用服务器的加密套件。
nginx# https配置参考 end
- 注释行,表示 HTTPS 配置的结束部分。
nginx# 演示环境配置 拦截除 GET POST 之外的所有请求
- 注释行,表示以下配置是用于演示环境的。
nginx# if ($request_method !~* GET|POST) {#     rewrite  ^/(.*)$  /403;# }
- 注释掉的条件语句,用于拦截除了 GET 和 POST 之外的所有请求,并重定向到  `/403` 。
nginx# location = /403 {#     default_type application/json;#     return 200 '{"msg":"演示模式,不允许操作","code":500}';# }
- 注释掉的块,用于处理  `/403`  请求,返回 JSON 格式的响应。
nginx# 限制外网访问内网 actuator 相关路径
- 注释行,表示以下配置是用于限制访问。
nginxlocation ~ ^(/[^/]*)?/actuator.*(/.*)?$ {return 403;}
- 这个配置块会匹配所有以  `/actuator`  开头的请求,并返回 403 Forbidden,限制外部访问。
nginxlocation / {root   /usr/share/nginx/html; # docker映射路径 不允许更改try_files $uri $uri/ /index.html;index  index.html index.htm;}
- 处理根路径的请求:-  `root`  指定文档根目录为  `/usr/share/nginx/html` 。-  `try_files`  尝试查找请求的文件,如果找不到,则返回  `/index.html` 。-  `index`  指定默认的索引文件为  `index.html``index.htm` 。
nginxlocation /prod-api/ {
- 处理以  `/prod-api/`  开头的请求。
nginxproxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- 这些指令用于设置代理请求头,传递客户端的请求信息到后端服务器。
nginxproxy_read_timeout 86400s;
- 设置与后端服务器的读取超时时间为 86400 秒(24 小时),适合长时间的请求。
nginxproxy_http_version 1.1;
- 设置与后端服务器的 HTTP 协议版本为 1.1。
nginxproxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";
- 这两行用于支持 WebSocket 协议的升级。
nginxproxy_buffering off;proxy_cache off;
- 关闭代理缓冲和缓存,以确保实时数据流的传输。
nginxproxy_pass http://server/;
- 将请求转发到上游服务器组  `server` 。
nginx}
- 结束  `/prod-api/`  的配置块。
nginxerror_page   500 502 503 504  /50x.html;
- 定义当出现 500、502、503 或 504 错误时,显示  `/50x.html`  页面。
nginxlocation = /50x.html {root   html;}
- 处理  `/50x.html`  请求,指定其文档根目录为  `html` 。
nginx}
}
- 结束  `server`  块和  `http`  块。整体来看,这个 Nginx 配置文件设置了一个基本的 HTTP 服务器,支持反向代理、负载均衡、错误处理和静态文件服务。它还包含了一些安全和性能的优化配置。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

满填充透明背景二维码生成

前几天项目上线的时候发现一个问题:通过Hutool工具包生成的二维码在内容较少时无法填满(Margin 已设置为 0)给定大小的图片。因此导致前端在显示二维码时样式异常。 从图片中我们可以看到,相同大小的图片,留白内容是不一样的。其中上半部分…

dwceqos网络驱动性能优化

文章介绍 本文会介绍优化QNX系统下io-pkt-v6-hc驱动模块cpu loading过高问题,经过优化可以降低约一半的cpu loading. 问题背景 激光雷达通过以太网发送数据到ADAS域控中,测试发现在激光功能激活的情况下,会出现比较明显的网络丢帧现象。 …

平安养老险深圳分公司积极开展“金融教育宣传月”活动,展现金融为民新风尚

2024年9月,平安养老险深圳分公司以“金融为民谱新篇,守护权益防风险”为主题,正式启动2024年“金融教育宣传月”活动,通过多样化开展进乡村、进商圈、进企业等宣传教育活动,将金融消保知识送达广大消费者身边&#xff…

光通信——PON技术

PON网络结构 PON(Passive Optical Network,无源光网络)系统的基本组成包括OLT(Optical Line Terminal,光线路终端)、ODN(Optical Distribution Network,光分配单元)和ON…

数据结构——队列的基本操作

前言 介绍 🍃数据结构专区:数据结构 参考 该部分知识参考于《数据结构(C语言版 第2版)》24~28页 🌈每一个清晨,都是世界对你说的最温柔的早安:ૢ(≧▽≦)و✨ 目录 前言 1、队列的基本概念…

Oracle 闪回版本(闪回表到指定SCN)

1.创建目录 mkdir /u01/app/oracle/flash 2.配置FRA alter system set db_recovery_file_dest_size15G; alter system set db_recovery_file_dest/u01/app/oracle/flash; 3.设置闪回参数--确保可以闪回48h内的数据库 alter system set db_flashback_retention_target2880; 4…

中关村环球时尚产业联盟 东晟时尚产业创新中心成立

2024年9月6日,中关村环球时尚产业联盟与东晟时尚创新科技(北京)有限公司于中关村科技园东城园举行了隆重的战略合作签约仪式。 中关村科技园东城园领导发表了致辞,并表示东城区作为首都北京的核心区域,拥有深厚的历史…

SW - 装配图旋转到一个想要的正视图

文章目录 SW - 装配图旋转到一个想要的正视图概述笔记将装配图旋转到自己想要的视图的方法保存当前视图选择自己保存的视图END SW - 装配图旋转到一个想要的正视图 概述 在弄装配图。 如果按照SW默认的视图,Y方向是反的。 原因在于我画零件图时,方向就…

从“抄袭”到“原创”:5个超实用的论文降重技巧!

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 每当写完一篇论文,松了一口气准备庆祝时,突然想到还有一个名叫“查重”的终极大Boss等着你,瞬间心情从云端跌入谷底。 是不是你? 很多同学在提交之前&#…

fatfs API使用手册

配置 /*---------------------------------------------------------------------------/ / Configurations of FatFs Module /---------------------------------------------------------------------------*/#define FFCONF_DEF 80286 /* Revision ID *//*---------------…

Spring IoC笔记

目录 1.什么是 IoC? 2.IoC类注解(五大注解) 2.1那为什么要这么多类注解? 2.2五大注解是不是可以混用? 2.3程序被spring管理的条件是? 3.bean对象 3.1Bean 命名约定 3.2获取bean对象 4.⽅法注解 B…

业绩由盈转亏,全面冲刺大模型的360值得期待吗?

在中国互联网市场上,360无疑是一家大家家喻户晓的公司,从安全软件起家,360的服务已经延展到了市场的方方面面,就在最近360的财报正式公布,很多人都在问360的财报该怎么看?全面冲刺大模型的360值得我们期待吗…

uniapp中uni.request的统一封装 (ts版)

文章目录 前言一、我们为什么要去封装?二、具体实现1.创建一个请求封装文件:2.封装 uni.request:3.如何去使用? 总结 前言 在uniapp中如何去更简洁高效的发送我们的请求,下面就介绍了uni.request()二次封装。 一、我们…

目标检测应用场景—数据集【NO.37】纺织物缺陷检测数据集

写在前面:数据集对应应用场景,不同的应用场景有不同的检测难点以及对应改进方法,本系列整理汇总领域内的数据集,方便大家下载数据集,若无法下载可关注后私信领取。关注免费领取整理好的数据集资料!今天分享…

AI大模型面试大纲

大纲 1. 介绍和背景 自我介绍(5分钟) 了解候选人的教育背景、工作经历和对大模型架构的兴趣。 2. 基础理论和概念(30分钟) 机器学习基础 解释基本概念,如监督学习、无监督学习和强化学习。 讨论不同的模型类型&#xf…

【Iceberg分析】调研Iceberg中表的原地演变

调研Iceberg中表的原地演变 文章目录 调研Iceberg中表的原地演变原生非分区表文件关系图表的原地演变之表schema演变新增字段new_column文件关系变化图为新增字段写入数据文件关系变化图删除新增字段文件关系变化图新增字段new_column2文件关系变化图删除数据文件关系变化图 原…

uniapp学习(003-1 vue3学习 Part.1)

零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战,开发打包微信小程序、抖音小程序、H5、安卓APP客户端等 总时长 23:40:00 共116P 此文章包含第11p-第p14的内容 文章目录 vue3使用介绍插值表达式例子时间戳随机数输出函数的值 ref响应式数据变量v-bind 绑…

Python入门:深入了解__init__.py 文件(如何实现动态导入子模块)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 `__init__.py` 的作用示例:📝 如何编写 `__init__.py`1. 空的 `__init__.py`2. 导入子模块3. 初始化代码4. 动态导入子模块📝 编写 `__init__.py` 的技巧和注意事项⚓️ 相关链接 ⚓️📖 介绍 📖 在…

大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

永不失联!遨游双卫星三防手机成为高效应急关键所在

今年9月被戏称为“台风月”,台风“摩羯”、“贝碧嘉”以及热带气旋“普拉桑”接连来袭,极端天气不仅导致了电力中断、道路损毁,更使得传统的通信网络遭受重创,给应急通信保障工作带来了极大的压力。面对“三断”的实战难题&#x…