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 相关的配置都在这个块内。
nginx
    include       mime.types;
- 包含 MIME 类型的定义文件,Nginx 将根据文件扩展名来确定内容类型。
nginx
    default_type  application/octet-stream;
- 设置默认的内容类型为  `application/octet-stream` ,用于未明确指定类型的文件。
nginx
    sendfile        on;
- 启用高效的文件传输方式,使用  `sendfile`  系统调用来提高文件传输的性能。
nginx
    keepalive_timeout  65;
- 设置客户端连接的保持活动时间为 65 秒,超过这个时间后,连接将被关闭。
nginx
    client_max_body_size 100m;
- 限制客户端请求的最大体积为 100MB,防止过大的请求影响服务器性能。
nginx
    log_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 信息。
nginx
    access_log  /var/log/nginx/access.log  main;
- 设置访问日志的路径为  `/var/log/nginx/access.log` ,并使用上面定义的  `main`  格式。
nginx
    upstream server {
- 定义一个名为  `server`  的上游服务器组,后端服务器的配置将放在这个块内。
nginx
        ip_hash;
- 使用  `ip_hash`  负载均衡策略,确保来自同一 IP 的请求总是被转发到同一台后端服务器。
nginx
        server 127.0.0.1:8080;
- 定义一个后端服务器,地址为  `127.0.0.1` ,端口为  `8080` 。
nginx
        # server 127.0.0.1:8081;
- 注释掉的行,表示这是一个备用的后端服务器地址( `127.0.0.1:8081` ),当前未启用。
nginx
    }
- 结束  `upstream`  块。
nginx
    server {
- 开始一个  `server`  块,定义一个虚拟主机。
nginx
        listen       80;
- 指定服务器监听的端口为 80,通常用于 HTTP 服务。
nginx
        server_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 相关路径
- 注释行,表示以下配置是用于限制访问。
nginx
        location ~ ^(/[^/]*)?/actuator.*(/.*)?$ {
            return 403;
        }
- 这个配置块会匹配所有以  `/actuator`  开头的请求,并返回 403 Forbidden,限制外部访问。
nginx
        location / {
            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` 。
nginx
        location /prod-api/ {
- 处理以  `/prod-api/`  开头的请求。
nginx
            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;
- 这些指令用于设置代理请求头,传递客户端的请求信息到后端服务器。
nginx
            proxy_read_timeout 86400s;
- 设置与后端服务器的读取超时时间为 86400 秒(24 小时),适合长时间的请求。
nginx
            proxy_http_version 1.1;
- 设置与后端服务器的 HTTP 协议版本为 1.1。
nginx
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
- 这两行用于支持 WebSocket 协议的升级。
nginx
            proxy_buffering off;
            proxy_cache off;
- 关闭代理缓冲和缓存,以确保实时数据流的传输。
nginx
            proxy_pass http://server/;
- 将请求转发到上游服务器组  `server` 。
nginx
        }
- 结束  `/prod-api/`  的配置块。
nginx
        error_page   500 502 503 504  /50x.html;
- 定义当出现 500、502、503 或 504 错误时,显示  `/50x.html`  页面。
nginx
        location = /50x.html {
            root   html;
        }
- 处理  `/50x.html`  请求,指定其文档根目录为  `html` 。
nginx
    }
}
- 结束  `server`  块和  `http`  块。

整体来看,这个 Nginx 配置文件设置了一个基本的 HTTP 服务器,支持反向代理、负载均衡、错误处理和静态文件服务。它还包含了一些安全和性能的优化配置。
springboot034基于Springboot+Vue在线商城系统设计与开发毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耳东哇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值