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 设置正确
技巧
- server_name 支持通配符:*.example.com
- listen 80 default_server 处理未匹配的请求
- 一个 server 块可以有多个 server_name