【nginx】nginx.conf配置详解
nginx 安装配置
nginx/conf/nginx.conf文件
Ngnix配置config,Docker安装
# = 全局块 =
# 定义 Nginx 工作进程的用户和用户组,linux写为用户名就行
user nginx;
# 定义 Nginx 工作进程的数量,通常设置为 CPU 核心数
worker_processes auto;
# 错误日志的路径和日志级别
error_log /var/log/nginx/error.log warn;
# Nginx 进程 ID 存储文件的路径
pid /var/run/nginx.pid;
# = events 块 =
events {
# 每个工作进程允许的最大连接数
worker_connections 1024;
# 选择事件驱动模型,不同操作系统有不同的最优选择,如 epoll(Linux)、kqueue(FreeBSD)等;=可不写=
use epoll;
}
# = http 块 =
http {
# 文件扩展名与文件类型的映射表
include /etc/nginx/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 可以将文件数据直接从磁盘传输到网络,减少用户空间和内核空间的拷贝
sendfile on;
# 数据包发送时间间隔,用于提高网络传输效率;=可不写=
tcp_nopush on;
# 客户端连接超时时间
keepalive_timeout 65;
# 开启 gzip 压缩;=可不写=
gzip on;
# 最小压缩文件大小;=可不写=
gzip_min_length 1k;
# 压缩级别,范围 1-9,数值越大压缩比越高,但 CPU 消耗也越大;=可不写=
gzip_comp_level 2;
# 压缩的文件类型;=可不写=
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# 包含其他配置文件,方便管理和维护
include /etc/nginx/conf.d/*.conf;
# = server 块 =
# server 块,配置虚拟主机
server {
# 监听的端口
listen 80;
# 服务器的域名或 IP 地址,可以localhost
server_name example.com;
# 根目录,请求的文件将从该目录中查找
root /var/www/html;
# 默认首页文件
index index.html index.htm;
# = location 块 =
# location 块,用于匹配不同的 URL 路径
location / {
# 处理请求的方式,这里表示直接返回文件内容
try_files $uri $uri/ /index.html;
}
# /Services/ 是具体的匹配规则,表示当客户端发起的 HTTP 请求的 URI 以 /Services/ 开头时,就会使用这个 location 块内的配置来处理该请求。例如,像 /Services/api/getData
location /Services/ {
# proxy_pass 是 Nginx 实现反向代理功能的核心指令。它的作用是将客户端的请求转发到指定的后端服务器。http://localhost:8088 明确了后端服务器的地址和端口。在这个配置中,意味着当请求匹配到 /Services/ 时,Nginx 会把请求转发到本地机器(localhost)的 8088 端口上运行的服务。比如,客户端访问 http://your-nginx-server.com/Services/api/getData,Nginx 会将该请求转发到 http://localhost:8088/Services/api/getData。
proxy_pass http://localhost:8088;
# proxy_set_header 用于在将请求转发到后端服务器时,修改或添加请求头信息。它可以帮助后端服务器获取到一些额外的有用信息。
# $proxy_add_x_forwarded_for 是 Nginx 的一个变量,它会将客户端的 IP 地址添加到 X-Forwarded-For 头中。如果请求已经经过了其他代理服务器,这个变量还会将之前代理服务器记录的 IP 地址一并追加进来,多个 IP 地址之间用逗号分隔。例如,如果客户端的 IP 是 1.2.3.4,请求先经过了代理服务器 5.6.7.8,再经过当前的 Nginx 服务器,那么 X-Forwarded-For 头的值会是 1.2.3.4, 5.6.7.8。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 可以配置多个服务xxxxx
location /xxxxxx/ {
# 处理请求的方式,这里表示直接返回文件内容
try_files $uri $uri/ /index.html;
}
# 处理静态资源的 location 块
location /static/ {
# 静态资源的根目录
alias /var/www/static/;
}
# 错误页面配置
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
}
}