nginx server 块配置

配置虚拟主机(server block),一台服务器托管多个网站

语法

server { listen port; server_name domain; root path; }

参数

参数说明示例级别
listen 监听端口 listen 80; 常用
server_name 域名匹配 server_name example.com www.example.com; 常用
root 网站根目录 root /var/www/html; 常用
index 默认首页文件 index index.html index.htm; 常用
return 返回状态码或重定向 return 301 https://$host$request_uri; 常用

示例

基本静态网站

server {
    listen 80;
    server_name mysite.com;
    root /var/www/mysite;
    index index.html;
}

HTTP 重定向到 HTTPS

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}
所有 HTTP 请求 301 跳转到 HTTPS

多域名配置

server {
    listen 80;
    server_name api.example.com;
    # API 服务配置
}
server {
    listen 80;
    server_name www.example.com;
    # 网站配置
}
不同域名走不同 server 块

默认服务器

server {
    listen 80 default_server;
    server_name _;
    return 444;
}
未匹配域名的请求直接关闭连接

常见错误

多个站点都响应同一个域名 检查 server_name 是否重复,确认 default_server 设置正确

技巧

相关命令