Nginx虚拟主机配置
安装 Nginx 后,配置虚拟主机是实现多站点托管的关键步骤。
Debian/Ubuntu 方式
创建站点配置文件
在 sites-available 创建配置:
Bash
sudo nano /etc/nginx/sites-available/mysite.conf
nginx
server {
listen 80;
server_name mysite.com www.mysite.com;
root /var/www/mysite;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
启用站点
Bash
# 创建符号链接到 sites-enabled
sudo ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/
# 测试配置
sudo nginx -t
# 重载生效
sudo systemctl reload nginx
CentOS/RHEL 方式
使用 conf.d 目录:
Bash
sudo nano /etc/nginx/conf.d/mysite.conf
nginx
server {
listen 80;
server_name mysite.com;
root /var/www/mysite;
location / {
try_files $uri $uri/ =404;
}
}
conf.d 目录下所有 .conf 文件自动被主配置 include。
准备网站目录
Bash
# 创建目录
sudo mkdir -p /var/www/mysite
# 设置权限
sudo chown -R www-data:www-data /var/www/mysite
sudo chmod -R 755 /var/www/mysite
# 创建测试页面
echo "<h1>Welcome to MySite</h1>" | sudo tee /var/www/mysite/index.html
多站点配置示例
nginx
# /etc/nginx/sites-available/site1.conf
server {
listen 80;
server_name site1.com;
root /var/www/site1;
}
# /etc/nginx/sites-available/site2.conf
server {
listen 80;
server_name site2.com;
root /var/www/site2;
}
分别启用:
Bash
sudo ln -s /etc/nginx/sites-available/site1.conf /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
注意事项
- Debian/Ubuntu 使用 sites-available/sites-enabled 模式,方便启停站点
- CentOS/RHEL 直接在 conf.d 放配置文件,无需符号链接
- 每个 server 块需有独立的 server_name 避免冲突
- 配置变更后务必
nginx -t验证再 reload
禁用站点
Bash
# 删除符号链接
sudo rm /etc/nginx/sites-enabled/mysite.conf
# 重载生效
sudo systemctl reload nginx
默认站点配置
禁止未匹配域名的访问:
nginx
server {
listen 80 default_server;
server_name _;
return 444;
}
要点总结
- Debian/Ubuntu 使用 sites-available + sites-enabled 符号链接管理站点
- CentOS/RHEL 使用 conf.d 目录,配置文件自动加载
- 站点目录需设置正确的用户权限(www-data 或 nginx)
- 每个 server 块需有唯一 server_name 或不同端口
- 配置变更流程:创建配置 → 启用 → nginx -t → reload
📝 发现内容有误?点击此处直接编辑