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

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

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

← 上一篇 Nginx日志配置与优化
下一篇 → 静态文件服务配置
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

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

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