1. http
块
- 作用:定义 HTTP 服务器的全局配置。
- 示例:
http { include mime.types; # 引入 MIME 类型映射文件 default_type application/octet-stream; # 设置默认的 MIME 类型 sendfile on; # 开启高效文件传输模式 keepalive_timeout 65; # 保持连接超时时间 # 更多全局配置... }
2. server
块
- 作用:定义一个虚拟主机,每个虚拟主机包含一组处理请求的指令。
- 示例:
server { listen 80; # 监听端口号 server_name example.com; # 虚拟主机名 location / { root /usr/share/nginx/html; # 根目录 index index.html index.htm; # 默认索引文件 } # 更多虚拟主机配置... }
3. location
块
- 作用:定义处理特定 URL 路径的规则。
- 示例:
server { ... location / { root /usr/share/nginx/html; index index.html index.htm; } location /images/ { root /data; } # 更多路径处理配置... }
4. upstream
块
- 作用:定义一组服务器,用于负载均衡。
- 示例:
upstream backend { server backend1.example.com; server backend2.example.com; }
5. events
块
- 作用:定义全局连接处理配置。
- 示例:
events { worker_connections 1024; # 每个 worker 进程的最大连接数 }
6. types
块
- 作用:定义 MIME 类型映射。
- 示例:
http { types { text/html html htm shtml; text/css css; application/javascript js; # 更多 MIME 类型映射... } }
7. log_format
指令
- 作用:定义日志格式。
- 示例:
http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; }
8. include
指令
- 作用:包含其他配置文件。
- 示例:
http { include /etc/nginx/mime.types; # 引入 MIME 类型映射文件 }
9. listen
指令
- 作用:定义服务器监听的端口和地址。
- 示例:
server { listen 80; # 监听端口 80 }
10. server_name
指令
- 作用:指定虚拟主机的域名。
- 示例:
server { server_name example.com; # 虚拟主机名 }
11. root
指令
- 作用:定义根目录。
- 示例:
server { location / { root /usr/share/nginx/html; # 设置根目录 } }
12. index
指令
- 作用:指定默认索引文件。
- 示例:
server { location / { index index.html index.htm; # 设置默认索引文件 } }
13. proxy_pass
指令
- 作用:定义请求转发的目标地址。
- 示例:
server { location / { proxy_pass http://backend; # 将请求转发到 upstream 定义的 backend } }
14. error_page
指令
- 作用:定义自定义错误页面。
- 示例:
server { error_page 404 /404.html; # 自定义 404 错误页面 }
15. access_log
和 error_log
指令
- 作用:定义访问日志和错误日志的位置及格式。
- 示例:
http { access_log /var/log/nginx/access.log main; # 定义访问日志位置和格式 error_log /var/log/nginx/error.log warn; # 定义错误日志位置和级别 }