全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-20 7 分钟 ✍️ juanwangdev

nginx server配置段

server 配置段定义一个虚拟主机,控制如何处理特定域名或端口的请求。

基础配置

nginx
server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/html;
    index index.html;
    
    location / {
        try_files $uri $uri/ =404;
    }
}

核心指令

listen

nginx
# 监听端口
listen 80;
listen 443 ssl;
listen 8080 default_server;

# 监听 IP:端口
listen 192.168.1.1:80;
listen [::]:80;
参数说明
default_server默认虚拟主机,处理未匹配的请求
ssl启用 SSL
http2启用 HTTP/2
backlog监听队列大小

server_name

nginx
# 精确匹配
server_name example.com;

# 多域名
server_name example.com www.example.com;

# 通配符
server_name *.example.com;
server_name www.example.*;

# 正则
server_name ~^www\d+\.example\.com$;

# 捕获所有
server_name _;

root 与 alias

nginx
# root:指定文档根目录
server {
    root /var/www/html;
}

# 继承到 location
location /images/ {
    # 实际路径:/var/www/html/images/
}

index

nginx
index index.html index.htm index.php;

定义默认首页文件,按顺序尝试。

请求头配置

nginx
server {
    client_max_body_size 10m;
    client_header_buffer_size 1k;
    large_client_header_buffers 4 8k;
}

超时设置

nginx
server {
    client_body_timeout 12;
    client_header_timeout 12;
    send_timeout 10;
}

日志配置

nginx
server {
    access_log /var/log/nginx/example.access.log;
    error_log /var/log/nginx/example.error.log warn;
}

错误页面

nginx
server {
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}

重定向

nginx
# HTTP 跳转 HTTPS
server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

# 域名跳转
server {
    server_name old.com;
    return 301 https://new.com$request_uri;
}

默认虚拟主机

nginx
server {
    listen 80 default_server;
    server_name _;
    return 444;
}

注意事项

  • server_name 匹配优先级:精确 > 通配符前缀 > 通配符后缀 > 正则
  • 同一端口多个 server 时,第一个或 default_server 处理未匹配域名
  • return 444 是 Nginx 特有状态码,直接关闭连接
  • server 段配置会被子 location 段继承

多 server 示例

nginx
server {
    listen 80;
    server_name site1.com;
    root /var/www/site1;
}

server {
    listen 80;
    server_name site2.com;
    root /var/www/site2;
}

server {
    listen 80;
    server_name site3.com;
    root /var/www/site3;
}

要点总结

  • server 配置段定义虚拟主机,控制特定域名或端口的请求处理
  • listen 指定监听地址和端口,server_name 指定域名
  • root 指定文档根目录,index 指定默认首页
  • server_name 支持精确匹配、通配符、正则表达式
  • 配置被子 location 继承,可在 server 段设置日志、超时等
  • return 301 实现永久重定向,return 444 关闭连接

📝 发现内容有误?点击此处直接编辑

← 上一篇 nginx location配置段
下一篇 → nginx全局配置段
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库