Nginx 配置多站点虚拟主机实战指南

2025.5.29 杂七杂八 1242

Nginx 配置多站点虚拟主机实战指南 杂七杂八-第1张

本文详细讲解如何通过Nginx配置多站点虚拟主机,涵盖基于域名和端口的两种实现方式,提供完整的配置示例和优化建议,帮助用户高效管理多个网站并提升服务器资源利用率。

一、Nginx多站点虚拟主机概述

Nginx作为高性能Web服务器,通过虚拟主机技术可实现在单台服务器上运行多个独立网站。这种方案能显著降低硬件成本,特别适合中小型项目或开发测试环境。

二、基于域名的虚拟主机配置

这是最常见的多站点实现方式,通过不同域名区分站点:

 /etc/nginx/conf.d/site1.conf
server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/site1;
    index index.;

    access_log /var/log/nginx/site1_access.log;
    error_log /var/log/nginx/site1_error.log;
}

 /etc/nginx/conf.d/site2.conf
server {
    listen 80;
    server_name demo.com www.demo.com;
    root /var/www/site2;
    index index.php index.;

    location ~ .php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }
}

三、基于端口的虚拟主机配置

适用于临时测试或特殊场景,通过不同端口区分站点:

server {
    listen 8080;
    server_name localhost;
    root /var/www/port-site;
    index index.;
}

四、关键配置优化建议

  • 日志分离:为每个站点配置独立日志文件
  • 性能调优:根据站点特性设置不同的worker_connections
  • 安全加固:为静态文件添加缓存头,限制敏感目录访问
  • SSL配置:使用Let’s Encrypt为每个域名配置HTTPS

五、配置检查与重载

完成配置后执行以下命令:

 测试配置语法
sudo nginx -t

 重载配置
sudo systemctl reload nginx

六、常见问题排查

  1. 403 Forbidden错误:检查目录权限和SELinux设置
  2. 502 Bad Gateway:确认后端服务(如PHP-FPM)正常运行
  3. 域名解析问题:确保DNS记录已正确配置

通过以上步骤,您可以轻松实现Nginx多站点管理。建议将不同站点的配置文件分开存放,便于后期维护。

评论