如何详细解析nginx配置(一)中的关键设置?

摘要:前几天新入职应届生实习,处理线上旧域名更换新域名,更新nginx配置文件之后,新域名成功启用,但旧域名一直也可以访问,只是https访问报不安全,证书倒是换掉了,但老域名一直可以访问。问至此处,遂发现,对应的nginx.conf有80端口兜
前几天新入职应届生实习,处理线上旧域名更换新域名,更新nginx配置文件之后,新域名成功启用,但旧域名一直也可以访问,只是https访问报不安全,证书倒是换掉了,但老域名一直可以访问。问至此处,遂发现,对应的nginx.conf有80端口兜底server模块,依旧将未匹配请求转发至后端服务。 写篇nginx配置文件详解,以作记录。 Nginx 配置详解与示例 一、Nginx 配置文件结构   Nginx 的配置文件(nginx.conf)大致分为三层:     全局块:配置运行 Nginx 的用户、worker 进程数量、pid 文件位置、日志等。     events 块:定义与网络连接相关的参数,例如每个 worker 支持的最大连接数。     http 块:主要逻辑部分,包含日志、MIME 类型、压缩、反向代理、负载均衡等配置。http 内部可以包含多个 server 块。 二、常见字段与含义   基础指令     user:指定运行 Nginx worker 的系统用户。     worker_processes:工作进程数,通常设为 CPU 核心数或 auto。     error_log:错误日志文件路径。     pid:存储 Nginx 主进程 ID 的文件。   events 块     worker_connections:单个 worker 支持的最大并发连接数。   http 块     access_log:访问日志文件路径和日志格式。     log_format:自定义日志格式。     sendfile on; 启用高效的文件传输方式。     tcp_nopush on; 尽量减少网络报文数量,提高传输效率。     keepalive_timeout 65; HTTP 长连接超时时间。     include /etc/nginx/mime.types; 加载 MIME 类型映射表。     default_type application/octet-stream; 默认 MIME 类型。     proxy_pass:将请求转发到后端服务。     proxy_set_header:设置转发时带给后端的请求头。常用:     Host $host     X-Real-IP $remote_addr     X-Forwarded-For $proxy_add_x_forwarded_for     X-Forwarded-Proto $scheme   Nginx 可以将请求分发到多个后端服务,实现负载均衡。     示例:       upstream backend {         server 127.0.0.1:8080;         server 127.0.0.1:8081;       }     默认策略是轮询(round-robin),也支持 weight、ip_hash 等。     ssl_certificate:证书文件。     ssl_certificate_key:私钥文件。     ssl_protocols TLSv1.2 TLSv1.3; 启用的 TLS 版本。     ssl_ciphers:指定加密算法。 三、Server 块配置   一个 server 块对应一个虚拟主机,可以按端口、域名来区分。   listen 80; 监听 HTTP 80 端口。   listen 443 ssl http2; 监听 HTTPS 443 端口,并启用 HTTP/2。   server_name:定义域名匹配规则。