This commit is contained in:
文永达 2023-10-06 22:13:39 +08:00
parent eb6829df8a
commit c290e2627a
2 changed files with 115 additions and 7 deletions

View File

@ -1334,4 +1334,4 @@ var jobDetail = JobBuilder.Create<SayHelloJob>()
## 介绍
## 使用
## 使用

View File

@ -36,24 +36,30 @@ fastcgi_param SERVER_SOFTWARE nginx;
## 配置
```conf
# Nginx 会以默认的 nobody 用户身份运行,通常用于提高安全性。
#user nobody;
# 指定 Nginx 启动的工作进程数,这里设置为 1表示只有一个工作进程。通常情况下可以设置成 CPU 核心数的倍数,以充分利用多核处理器。
worker_processes 1;
# 错误日志文件的配置
#error_log logs/error.log;
# 配置了错误日志文件的路径为 logs/error.log并设置日志级别为 notice
#error_log logs/error.log notice;
# 配置了错误日志文件的路径为 logs/error.log并设置日志级别为 info
#error_log logs/error.log info;
#pid logs/nginx.pid;
# 事件模块的配置块,用于配置 Nginx 处理事件的参数。在此处,配置了每个工作进程能够处理的最大连接数为 1024
events {
worker_connections 1024;
}
http {
# 包含了 mime.types 文件,该文件定义了 MIME 类型与文件扩展名的映射关系,用于处理 HTTP 响应的内容类型
include mime.types;
# 设置默认的 MIME 类型为 application/octet-stream用于响应未知类型的文件。
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
@ -61,13 +67,14 @@ http {
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
# 开启了 sendfile 功能,用于高效地传输文件。
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
# 配置了客户端与服务器之间的 keep-alive 连接的超时时间为 65 秒,这意味着客户端和服务器之间的连接在空闲 65 秒后会被关闭。
keepalive_timeout 65;
# 禁用了 Nginx 在 HTTP 响应头中发送服务器版本信息,以增强安全性。
server_tokens off;
# 开启gzip
@ -131,26 +138,44 @@ http {
#}
location /prod-api {
# 设置反向代理请求头中的 Host 头字段为客户端请求的 Host 头字段。这样可以将客户端的 Host 头信息传递给后端服务器,以确保后端服务器正确处理请求。
proxy_set_header Host $http_host;
# 设置反向代理请求头中的 X-Real-IP 头字段为客户端的真实 IP 地址。这是为了让后端服务器知道请求的真实来源 IP。
proxy_set_header X-Real-IP $remote_addr;
#
#proxy_set_header REMOTE-HOST $remote_addr;
# 设置反向代理请求头中的 X-Forwarded-For 头字段,用于记录客户端的 IP 地址以及之前的代理服务器的 IP 地址。这有助于后端服务器了解请求的来源路径。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 设置反向代理请求头中的 Cookie 头字段,用于传递客户端请求的 Cookie 信息给后端服务器。
proxy_set_header Cookie $http_cookie;
# 配置反向代理的目标地址,将请求代理到 http://127.0.0.1:50这是后端服务器的地址。Nginx 会将请求转发到该地址。
proxy_pass http://127.0.0.1:50;
# 禁用了 Nginx 对代理响应中的 Location 头字段的重定向处理。通常用于防止 Nginx 修改后端服务器返回的重定向 URL。
proxy_redirect off;
proxy_set_header HTTP-X-REQUESTED-WITH $http_x_requested_with;
# 设置反向代理请求头中的 HTTP-X-REQUESTED-WITH 头字段为客户端请求的 HTTP_X_REQUESTED_WITH 头字段值。这可以用于传递一些客户端信息给后端服务器。
proxy_set_header HTTP_X_REQUESTED_WITH $http_x_requested_with;
#
proxy_set_header x-requested-with $http_x_requested_with;
# 设置客户端请求的最大请求体大小为 10MB。如果请求体大小超过此限制Nginx将拒绝接收请求。
client_max_body_size 10m;
# 设置用于保存客户端请求体的缓冲区大小为128KB。这是用于暂存请求体数据的内存大小。
client_body_buffer_size 128k;
# 设置与后端服务器建立连接的超时时间为90秒。如果在这个时间内无法建立连接Nginx将返回错误。
proxy_connect_timeout 90;
# 设置向后端服务器发送请求的超时时间为90秒。如果在这个时间内无法完成请求的发送Nginx将返回错误。
proxy_send_timeout 90;
# 设置从后端服务器接收响应的超时时间为90秒。如果在这个时间内没有接收到完整的响应Nginx将返回错误。
proxy_read_timeout 90;
# 设置用于保存代理响应的缓冲区大小为128KB。这是用于暂存代理响应数据的内存大小。
proxy_buffer_size 128k;
# 配置代理响应缓冲区的数量和每个缓冲区的大小。这里设置了32个缓冲区每个大小为32KB。
proxy_buffers 32 32k;
# 设置代理缓冲区的繁忙大小为128KB。这是代理缓冲区的一种高水位标记当达到这个水位时Nginx将开始向客户端发送响应。
proxy_busy_buffers_size 128k;
# 设置代理缓冲区的繁忙大小为128KB。这是代理缓冲区的一种高水位标记当达到这个水位时Nginx将开始向客户端发送响应。
proxy_temp_file_write_size 128k;
# 使用正则表达式将请求路径重写,将 /prod-api/ 前缀去除。这可以用于修改请求路径以匹配后端服务器的期望路径
rewrite ^/prod-api/(.*) /$1 break;
}
@ -158,20 +183,29 @@ http {
proxy_pass http://127.0.0.1:50/msgHub;
# Configuration for WebSockets
# 配置 Upgrade 头字段,用于支持 WebSocket 协议升级。当客户端请求 WebSocket 协议时Nginx 会传递 Upgrade 头字段给后端服务器以升级连接协议。
proxy_set_header Upgrade $http_upgrade;
# 配置 Connection 头字段,用于支持 WebSocket 连接的升级。当客户端请求 WebSocket 协议时Nginx 会传递 Connection 头字段给后端服务器以升级连接协议。
proxy_set_header Connection $connection_upgrade;
# 禁用了代理缓存,这意味着 Nginx 不会缓存代理响应,适用于实时通信场景,如 WebSocket。
proxy_cache off;
# 配置了 HTTP 协议版本为 1.1,这是为了支持 WebSocket因为 WebSocket 是在 HTTP/1.1 之后的协议中实现的。
# WebSockets were implemented after http/1.0
proxy_http_version 1.1;
# Configuration for ServerSentEvents
# 禁用了代理的缓冲功能,这适用于实时通信场景,如 WebSocket 或 Server-Sent EventsSSE以确保数据立即传递给客户端而不进行缓冲。
proxy_buffering off;
# Configuration for LongPolling or if your KeepAliveInterval is longer than 60 seconds
# 配置了代理的读取超时时间为 100 秒,这允许长轮询或者当 Keep-Alive 间隔大于 60 秒时的请求保持连接。
proxy_read_timeout 100s;
# 设置反向代理请求头中的 Host 头字段为客户端请求的 Host 头字段。这样可以将客户端的 Host 头信息传递给后端服务器,确保后端服务器正确处理请求。
proxy_set_header Host $host;
# 设置反向代理请求头中的 X-Forwarded-For 头字段,用于记录客户端的 IP 地址以及之前的代理服务器的 IP 地址。这有助于后端服务器了解请求的来源路径。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 设置反向代理请求头中的 X-Forwarded-Proto 头字段为客户端请求的协议HTTP 或 HTTPS信息以告知后端服务器请求的协议。
proxy_set_header X-Forwarded-Proto $scheme;
}
@ -303,3 +337,77 @@ http {
```
`nginx.conf` 文件是 Nginx 的主要配置文件,它包含了 Nginx 服务器的全局配置以及虚拟主机配置等信息。下面是你提供的 `nginx.conf` 文件的每一行的解释:
```nginx
#user nobody;
```
此行注释掉了 `user` 配置项,这意味着 Nginx 会以默认的 `nobody` 用户身份运行,通常用于提高安全性。
```nginx
worker_processes 1;
```
指定 Nginx 启动的工作进程数,这里设置为 1表示只有一个工作进程。通常情况下可以设置成 CPU 核心数的倍数,以充分利用多核处理器。
```nginx
#error_log logs/error.log;
```
此行注释掉了错误日志文件的配置,意味着不会生成错误日志文件。
```nginx
#error_log logs/error.log notice;
```
此行配置了错误日志文件的路径为 `logs/error.log`,并设置日志级别为 `notice`,这意味着只记录 `notice` 级别及以上的错误信息。
```nginx
#error_log logs/error.log info;
```
此行配置了错误日志文件的路径为 `logs/error.log`,并设置日志级别为 `info`,这意味着记录 `info` 级别及以上的错误信息。
```nginx
events {
worker_connections 1024;
}
```
定义了事件模块的配置块,用于配置 Nginx 处理事件的参数。在此处,配置了每个工作进程能够处理的最大连接数为 1024。
```nginx
http {
```
定义了 HTTP 模块的配置块,包含了所有 HTTP 相关的配置信息。
```nginx
include mime.types;
```
包含了 `mime.types` 文件,该文件定义了 MIME 类型与文件扩展名的映射关系,用于处理 HTTP 响应的内容类型。
```nginx
default_type application/octet-stream;
```
设置默认的 MIME 类型为 `application/octet-stream`,用于响应未知类型的文件。
```nginx
sendfile on;
```
开启了 sendfile 功能,用于高效地传输文件。
```nginx
keepalive_timeout 65;
```
配置了客户端与服务器之间的 keep-alive 连接的超时时间为 65 秒,这意味着客户端和服务器之间的连接在空闲 65 秒后会被关闭。
```nginx
server_tokens off;
```
禁用了 Nginx 在 HTTP 响应头中发送服务器版本信息,以增强安全性。
```nginx
gzip on;
```
启用了 Gzip 压缩,用于压缩响应内容以减小传输大小。
这个文件还包含了两个 `server` 配置块分别监听了不同的端口7779和8087配置了反向代理和静态文件服务等内容。这两个 `server` 配置块用于定义不同的虚拟主机。其中的 `location` 块用于配置不同路径的请求处理方式,包括静态文件服务和反向代理配置。
需要注意的是,该配置文件中有一些注释掉的配置项,这些配置项可以根据具体需求进行启用或自定义。另外,还有一些配置项涉及到反向代理和代理 WebSocket 等高级功能,需要根据实际需求进行进一步了解和配置。