首页 帮助中心 Debian服务器上如何实现Nginx多站点配置
Debian服务器上如何实现Nginx多站点配置
时间 : 2025-07-15 14:01:07 编辑 : 华纳云 阅读量 : 16

不管是出于成本考虑,还是为了资源最大化利用,使用一台服务器承载多个网站早已成为常态,Nginx的多站点配置都是Debian服务器用户绕不过的重要技能。本文将详细介绍如何从零开始配置Nginx支持多个网站,并对相关配置文件进行具体说明。

一、前提准备

1. 安装 Debian 系统和更新

首先确保使用的是一台干净且联网的 Debian 服务器。以 Debian 11 为例,系统安装完成后,推荐先更新软件包:

sudo apt update && sudo apt upgrade -y

2. 安装 Nginx

Debian 官方源中已包含 Nginx,使用以下命令即可安装:

sudo apt install nginx -y

安装完成后可通过以下命令验证是否安装成功:

nginx -v

默认安装路径为 /etc/nginx/,网站目录一般放置在 /var/www/ 下。

二、Nginx 默认站点结构说明

Nginx 的配置文件位于 /etc/nginx/,核心配置如下:

  • /etc/nginx/nginx.conf:主配置文件;
  • /etc/nginx/sites-available/:用于存放站点配置文件;
  • /etc/nginx/sites-enabled/:用于启用站点配置的符号链接;
  • /var/www/html/:默认站点的网页根目录。

Nginx 的站点管理逻辑是先将配置文件写入 sites-available/,再通过 ln -s 创建符号链接至 sites-enabled/,最后重载配置生效。

三、新建两个站点进行演示

我们以两个虚拟站点为例:

第一个站点:example1.com

第二个站点:example2.com

确保这两个域名已正确解析至当前服务器的公网 IP,或在本地通过 hosts 文件进行伪解析用于测试。

1. 创建站点目录

为每个站点建立独立目录和权限:

sudo mkdir -p /var/www/example1.com/html
sudo mkdir -p /var/www/example2.com/html

sudo chown -R www-data:www-data /var/www/example1.com
sudo chown -R www-data:www-data /var/www/example2.com

2. 设置简单的首页测试文件

echo "<h1>Welcome to Example1.com</h1>" | sudo tee /var/www/example1.com/html/index.html
echo "<h1>Welcome to Example2.com</h1>" | sudo tee /var/www/example2.com/html/index.html

四、配置两个独立虚拟主机

现在进入关键步骤:为每个站点创建 Nginx 配置文件。

1. 配置 example1.com

sites-available 下创建新文件:

sudo nano /etc/nginx/sites-available/example1.com

写入如下内容:

server {
    listen 80;
    server_name example1.com www.example1.com;

    root /var/www/example1.com/html;
    index index.html index.htm;

    access_log /var/log/nginx/example1_access.log;
    error_log /var/log/nginx/example1_error.log;

    location / {
        try_files $uri $uri/ =404;
    }
}

保存后,创建启用链接:

sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/

2. 配置 example2.com

同样步骤:

sudo nano /etc/nginx/sites-available/example2.com

写入:

server {
    listen 80;
    server_name example2.com www.example2.com;

    root /var/www/example2.com/html;
    index index.html index.htm;

    access_log /var/log/nginx/example2_access.log;
    error_log /var/log/nginx/example2_error.log;

    location / {
        try_files $uri $uri/ =404;
    }
}

启用配置:

sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/

五、检查并重启 Nginx 服务

执行以下命令检查语法是否正确:

sudo nginx -t

输出显示 syntax is ok,则说明配置无误。然后重新加载配置:

sudo systemctl reload nginx

现在访问 http://example1.comhttp://example2.com,应分别显示对应的欢迎页面。

六、常见错误与排查

1. 端口冲突问题:若配置文件中多个 server 监听相同端口,但没有设置 server_name 或设置不明确,Nginx 无法正确区分访问站点。

2. 域名未解析:域名未正确指向服务器 IP,访问会被浏览器拦截或跳转失败。

3. 权限问题:若站点目录非 www-data 用户权限,可能出现 403 Forbidden 错误。

4. 日志未开启:建议每个站点都设置独立日志文件,便于后续排障分析。

通过合理配置Nginx虚拟主机,Debian服务器完全可以胜任多站点部署的任务。该方式不仅节约服务器成本,而且可以提高资源使用率,增强系统管理的灵活性。对于DevOps、Web开发者或中小型企业运维人员而言,都是一项极具价值的技能。

华纳云 推荐文章
怎么在Debian服务器上配置Zookeeper的网络参数 在Debian服务器中监控服务器状态的完整方法指南 Debian服务器上如何监控Node.js进程 如何在Debian服务器上设置LAMP环境? Ubuntu 15.10下LNMP环境搭建和Nginx多站点配置
活动
客服咨询
7*24小时技术支持
技术支持
渠道支持