Nginx独立隔离配置多个外贸站点域名:零基础分步骤教程

在Nginx中为多个外贸站点配置独立隔离,核心思路是为每个域名创建单独的server block配置文件,并分别指定根目录、访问日志和错误日志。
这样每个站点文件、资源、请求流程完全独立,一个站点出问题不会影响其他站点。
下面按零基础能直接执行的顺序展开。

一、准备工作与前置条件

  • 一台云服务器(本教程以泽御云提供的Linux服务器为例,操作系统为CentOS 7/Ubuntu 20.04+)。
  • Nginx已安装(若未安装,可通过yum install nginxapt install nginx安装并启动)。
  • 域名已解析:将每个外贸域名的A记录指向服务器公网IP。
  • 站点文件就绪:每个域名的网页文件分别放在不同目录,例如/var/www/site1/var/www/site2
  • SSH登录权限:能使用root或具有sudo权限的用户连接服务器。

二、创建独立站点配置文件的实操步骤

  1. 进入Nginx配置目录
   cd /etc/nginx/conf.d   # 或 /etc/nginx/sites-available/

建议在conf.d下直接创建配置文件,Nginx会自动加载。

  1. 为第一个站点创建配置文件
   sudo nano site1.conf

写入以下内容(以PHP站点为例):

   server {
       listen 80;
       server_name site1.com www.site1.com;
       root /var/www/site1;
       index index.php index.html;

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

       location / {
           try_files $uri $uri/ /index.php?$query_string;
       }

       location ~ \.php$ {
           fastcgi_pass unix:/var/run/php-fpm/site1.sock;  # 或使用TCP,如127.0.0.1:9000
           fastcgi_index index.php;
           include fastcgi_params;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }

       location ~ /\.ht {
           deny all;
       }
   }

关键点server_name写你的域名,root指向对应目录,access_logerror_log分别指定日志文件(实现日志隔离)。

  1. 为第二个站点创建类似配置文件
   sudo nano site2.conf

server_name改为site2.com www.site2.comroot改为/var/www/site2,日志文件也相应命名(如site2_access.log)。
如果站点使用不同PHP版本或不同PHP-FPM进程,可在fastcgi_pass中指向不同的socket或端口。

  1. 测试配置并重载Nginx
   sudo nginx -t        # 检查语法
   sudo systemctl reload nginx   # 或 service nginx reload

如果显示test is successful,则配置生效。

三、避坑说明:易出错的几个地方

  • server_name重复:确保每个站点的server_name都是唯一的,否则只会匹配第一个。
  • 目录权限问题:Nginx用户(通常是www-datanginx)需要对站点目录有读取权限。可用chown -R www-data:www-data /var/www/site1
  • PHP-FPM隔离:如果外贸站点使用不同PHP版本或需要隔离PHP会话,可以为每个站点配置独立的PHP-FPM pool(通过修改/etc/php-fpm.d/下的配置文件),并在Nginx的fastcgi_pass中指定不同socket。
  • 端口冲突:如果站点需要HTTPS,记得为每个域名申请SSL证书并在配置中添加listen 443 ssl;部分,证书路径不要混用。
  • 未重载导致配置不生效:修改配置文件后必须执行nginx -t测试并通过reload使其生效。

四、验证效果:检查隔离是否成功

  1. 浏览器访问:在浏览器分别输入http://site1.comhttp://site2.com,应看到各自站点的内容。
  2. 检查日志:查看/var/log/nginx/下对应的日志文件,确认访问记录写入对应文件。
  3. 测试故障隔离:故意让一个站点的index.php报错(如删除文件),另一个站点应不受影响。
  4. 域名解析测试:使用curl -H "Host: site1.com" http://服务器IP验证Nginx能正确分发请求。

五、常见问题 FAQ

Q1:添加新站点时,需要重启服务器吗?
不需要。只需创建新的.conf文件,执行nginx -t测试后systemctl reload nginx即可,不会影响已运行的站点。

Q2:一个站点被攻击会影响其他站点吗?
如果文件、数据库、PHP进程独立,攻击一般只影响该站点。日志隔离也有助于快速定位问题。

Q3:如何备份所有站点配置?
直接备份/etc/nginx/conf.d/目录即可,每个.conf对应一个站点,恢复时复制回来重载Nginx。

Q4:使用同一个IP,多个域名会冲突吗?
不会。Nginx通过server_name字段区分不同域名,只要解析正确,同一IP可以服务无数个独立站点。

以上就是Nginx独立隔离配置多个外贸站点域名的完整方法。
实际部署中,建议先按本文步骤完成基础配置,再根据外贸业务需求(如缓存、HTTPS、CDN)做适当扩展。
如果遇到异常,优先检查配置文件语法和服务器防火墙规则。

分享到:
上一篇
Ollama远程访问FRP内网穿透完整配置
下一篇
大模型推理服务器散热降噪改造实操指南
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意