# 主配置文件 nginx.conf

URL: https://caijiao.org/nginx/nginx-conf
Source: docs/nginx/nginx-conf.md
Description: 本节讲解 Nginx 主配置文件 nginx.conf 的结构与作用，涵盖全局配置、events 块、http 块及包含的子配置，帮助你理解 nginx 文档中核心配置要点。

`nginx.conf` 是 Nginx 的主配置文件，定义全局参数、事件处理方式以及 HTTP 服务相关配置，是整个 Nginx 服务的核心。

## 一、nginx.conf 基本结构

一个典型的 `nginx.conf` 包含以下三个主要块：

```nginx
# 全局块
user  nginx;
worker_processes  auto;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

# events 块
events {
    worker_connections  1024;
}

# http 块
http {
    include       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        on;
    keepalive_timeout  65;
    
    include /etc/nginx/conf.d/*.conf;
}
````

## 二、主要配置块说明

1. **全局块 (Global Block)**

   * 定义用户、工作进程数、日志文件路径、PID 文件位置等全局参数。

2. **events 块**

   * 配置 Nginx 的事件模型和连接处理方式，如 `worker_connections`。

3. **http 块**

   * 包含大部分 Web 服务相关配置，如 MIME 类型、日志格式、文件发送方式、超时设置。
   * 可通过 `include` 指令加载其他虚拟主机或模块配置文件。

## 三、常用 include 配置

* `include mime.types;`：加载 MIME 类型映射表
* `include /etc/nginx/conf.d/*.conf;`：加载 conf.d 目录下的额外配置
* `include /etc/nginx/sites-enabled/*;`（Debian/Ubuntu）：加载启用的虚拟主机配置

通过理解 `nginx.conf` 的结构，你可以更灵活地管理 Nginx 服务和各类站点配置。
