Nginx基本配置文件详解
文章目录
- 一、Nginx配置文件结构
- 1. 全局块
- 2. events块
- 3. http块
- 二、常用指令详解
- 1. worker_processes
- 2. worker_connections
- 3. listen
- 4. server_name
- 5. location
- 三、简单的server配置示例
- 四、总结
Nginx 是一个高性能的 HTTP 服务器和反向代理服务器,广泛用于 Web 服务、负载均衡、缓存等场景。Nginx 的配置文件是其核心部分,通过配置文件可以控制 Nginx 的行为。
一、Nginx配置文件结构
Nginx 的配置文件通常位于 /etc/nginx/nginx.conf,也可能包含其他子配置文件(如 sites-enabled/ 目录下的文件)。配置文件由多个 指令块 组成,每个指令块包含一组相关的配置指令。
Nginx配置文件的基本结构如下:
# 全局块
user www-data;
worker_processes auto;
pid /run/nginx.pid;
# events 块
events {
worker_connections 1024;
}
# http 块
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
# server 块
server {
listen 80;
server_name example.com;
location / {
root /var/www/html;
index index.html;
}
}
}
1. 全局块
- 从配置文件开始到 events 块之间的内容。
- 主要设置影响 Nginx 整体运行的指令,如运行用户、进程数、日志路径等。
- 示例:
user nginx; # 指定运行 Nginx 的用户
worker_processes auto; # 根据 CPU 核心数自动分配进程数
error_log /var/log/nginx/error.log; # 日志路径
pid /run/nginx.pid; # 进程 PID 存放路径
2. events块
- 用于配置 Nginx 的网络连接相关指令。
- 主要指令包括 worker_connections,用于设置每个 worker 进程的最大连接数。
- 示例:
events {
worker_connections 1024; # 每个进程支持的最大连接数
}
3. http块
-
是配置文件的核心部分,包含 http 全局块、server 块和 location 块。
-
http 全局块:设置影响所有服务器的指令,如日志格式、文件类型映射等。
-
server 块:定义虚拟主机的配置,包括监听端口、域名、根目录等。
-
location 块:用于匹配请求的 URL,并定义对应的处理方式。
-
示例:
http {
include mime.types; # 文件类型映射表
default_type application/octet-stream; # 默认文件类型
sendfile on; # 开启高效文件传输
keepalive_timeout 65; # 长连接超时时间
server {
listen 80; # 监听端口
server_name example.com; # 域名
location / {
root /usr/share/nginx/html; # 网站根目录
index index.html index.htm; # 默认首页文件
}
}
}
二、常用指令详解
1. worker_processes
worker_processes 用于设置 Nginx 工作进程的数量。通常设置为 auto,表示根据 CPU 核心数自动调整。
worker_processes auto;
2. worker_connections
worker_connections 用于设置每个工作进程允许的最大连接数。它与 worker_processes 一起决定了 Nginx 的最大并发连接数。
events {
worker_connections 1024;
}
3. listen
listen 用于指定服务器监听的端口和 IP 地址。例如:
server {
listen 80; # 监听 80 端口
listen 127.0.0.1:8080; # 监听 127.0.0.1 的 8080 端口
}
4. server_name
server_name 用于指定服务器的域名。可以配置多个域名,用空格分隔。
server {
server_name example.com www.example.com;
}
5. location
location 用于定义 URL 路径的匹配规则和处理方式。常见的匹配方式有:
- 精确匹配: 使用 =,例如 location = /about { … }。
- 前缀匹配: 使用 /,例如 location /images/ { … }。
- 正则匹配: 使用 ~ 或 ~*,例如 location ~ .php$ { … }。
location / {
root /var/www/html;
index index.html;
}
location /images/ {
root /var/www/images;
}
三、简单的server配置示例
以下是一个简单的 Nginx 配置示例,用于托管一个静态网站:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name example.com;
location / {
root /var/www/html;
index index.html;
}
location /images/ {
root /var/www/images;
}
}
}
配置解析:
- 全局块:
- user www-data;:以 www-data 用户身份运行 Nginx。
- worker_processes auto;:根据 CPU 核心数自动调整工作进程数量。
- pid /run/nginx.pid;:指定 PID 文件路径。
- events 块:
- worker_connections 1024;:每个工作进程最多处理 1024 个连接。
- http 块:
- include /etc/nginx/mime.types;:引入 MIME 类型配置文件。
- default_type application/octet-stream;:设置默认 MIME 类型。
- server 块:
- listen 80;:监听 80 端口。
- server_name example.com;:指定域名为 example.com。
- location / { … }:处理根路径 /,静态文件位于 /var/www/html 目录下。
- location /images/ { … }:处理 /images/ 路径,静态文件位于 /var/www/images 目录下。
四、总结
Nginx 的配置文件结构清晰,指令丰富,能够满足各种复杂的 Web 服务需求。通过本文的介绍,你应该已经掌握了 Nginx 配置文件的基本结构、常用指令以及如何配置一个简单的静态网站。