nginx配置详解(一)

前几天新入职应届生实习,处理线上旧域名更换新域名,更新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:定义域名匹配规则。

 

posted @ 2025-08-27 15:02  Marktowin  阅读(18)  评论(0)    收藏  举报