使用Nginx在腾讯云轻量服务器上如何实现多站点部署?

在腾讯云轻量服务器上使用Nginx实现多站点部署,可以通过以下步骤完成:


1. 环境准备

  • 安装Nginx
    sudo apt update
    sudo apt install nginx -y
  • 确认Nginx运行状态
    sudo systemctl status nginx

2. 规划目录结构

推荐按以下方式组织站点文件:

/var/www/
├── site1/          # 第一个站点目录
│   └── index.html
├── site2/          # 第二个站点目录
│   └── index.html
└── ...

创建示例站点目录:

sudo mkdir -p /var/www/{site1,site2}
sudo chown -R www-data:www-data /var/www/

3. 配置站点文件

方法一:使用独立配置文件(推荐)

  1. 为每个站点创建配置文件

    sudo nano /etc/nginx/sites-available/site1.conf

    示例配置(静态站点):

    server {
       listen 80;
       server_name site1.com www.site1.com;  # 修改为你的域名
       root /var/www/site1;
       index index.html;
    
       location / {
           try_files $uri $uri/ =404;
       }
    }
  2. 启用站点配置

    sudo ln -s /etc/nginx/sites-available/site1.conf /etc/nginx/sites-enabled/
  3. 重复步骤为其他站点创建配置(如 site2.conf)。


方法二:单文件多站点配置

编辑Nginx主配置或新建一个包含多个server块的配置文件:

# 站点1
server {
    listen 80;
    server_name site1.com;
    root /var/www/site1;
    ...
}

# 站点2
server {
    listen 80;
    server_name site2.com;
    root /var/www/site2;
    ...
}

4. 域名解析配置

  • 在腾讯云DNS控制台为每个域名添加A记录,指向服务器公网IP。
  • 本地测试可修改/etc/hosts文件:
    服务器IP site1.com
    服务器IP site2.com

5. 测试与重载Nginx

# 测试配置语法
sudo nginx -t

# 重载Nginx使配置生效
sudo systemctl reload nginx

6. 高级配置示例

HTTPS支持(使用Certbot)

# 安装Certbot
sudo apt install certbot python3-certbot-nginx -y

# 为站点获取证书
sudo certbot --nginx -d site1.com -d www.site1.com

自动更新证书:

sudo certbot renew --dry-run

PHP站点支持(如WordPress)

server {
    listen 80;
    server_name php-site.com;
    root /var/www/php-site;

    index index.php index.html;

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根据PHP版本调整
    }
}

7. 常见问题排查

  1. 权限问题

    sudo chown -R www-data:www-data /var/www/site1
    sudo chmod -R 755 /var/www
  2. 检查Nginx日志

    tail -f /var/log/nginx/error.log
  3. 端口占用检查

    sudo netstat -tulpn | grep :80

8. 防火墙配置(腾讯云侧)

  • 在腾讯云控制台确保防火墙规则放行80/443端口。
  • 轻量服务器管理控制台 → 防火墙 → 添加规则:
    • 端口:80,443
    • 协议:TCP
    • 来源:0.0.0.0/0

总结步骤

  1. 安装Nginx → 2. 创建站点目录 → 3. 配置Nginx虚拟主机 → 4. 域名解析 → 5. 测试并重载 → 6. 可选HTTPS/动态内容支持

通过以上步骤,你可以基于域名在单台服务器上部署多个网站点。如果需要基于端口或路径区分站点,可调整listenlocation配置。

云服务器