多语言外贸站点Nginx完整多域名配置教程
动手前先把这些准备好
配置多语言外贸站点时,最常见的方式是给每个语言分配一个独立域名或子域名,例如 en.example.com、zh.example.com。
这样做既能清晰区分语言,也利于 SEO。
开始操作之前,请确认以下条件已经满足:
- 一台已安装 Nginx 的 Linux 服务器(CentOS 7+ / Ubuntu 20.04+ 均可)。
- 所有要用到的域名都已经做好 DNS 解析,指向服务器公网 IP。
- 服务器已开放 80(HTTP)和 443(HTTPS)端口,并确认没有其他服务占用。
- 准备 SSL 证书(推荐 Let's Encrypt 免费证书),如果用宝塔面板可直接申请。
多域名绑定 Nginx 的核心步骤
Nginx 通过 server block(也叫虚拟主机)管理不同域名。
每个语言域名单独配置一个 server 块,相互独立。
以英文和中文这两个子域名为例,操作过程如下:
- 创建网站目录(用于存放对应语言的静态文件或入口程序):
sudo mkdir -p /var/www/en.example.com
sudo mkdir -p /var/www/zh.example.com
- 进入 Nginx 配置目录(通常为
/etc/nginx/sites-available/或/etc/nginx/conf.d/,依发行版而定):
cd /etc/nginx/sites-available/
- 创建英文域名的配置文件(如
en.example.com.conf):
server {
listen 80;
server_name en.example.com;
root /var/www/en.example.com;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
}
- 同上创建中文域名配置文件(
zh.example.com.conf):
server {
listen 80;
server_name zh.example.com;
root /var/www/zh.example.com;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
}
- 启用配置并测试语法:
sudo ln -s /etc/nginx/sites-available/en.example.com.conf /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/zh.example.com.conf /etc/nginx/sites-enabled/
sudo nginx -t
如果输出 syntax is ok 代表语法正确。
- 重载 Nginx 使配置生效:
sudo systemctl reload nginx
避坑与高频问题
1. 默认 server 处理未匹配域名
建议在配置文件中增加一个默认 catch-all server 块,防止恶意解析指向你的 IP:
server {
listen 80 default_server;
server_name _;
return 444;
}
2. HTTPS 配置缺失
生产环境必须开启 HTTPS。
推荐使用 Certbot 免费证书(针对 Let's Encrypt),一条命令即可:
sudo certbot --nginx -d en.example.com -d zh.example.com
之后 Nginx 会自动重定向 HTTP 到 HTTPS。
3. PHP 处理与伪静态
如果外贸站点是 WordPress 或 Laravel 等 PHP 项目,需在 location / 块后添加 location ~ \.php$ 块,并指定 fastcgi_pass 地址。
例如:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
不同项目需调整 root 路径和伪静态规则。
4. 子域名 / 子目录如何选择?
- 子域名(如
en.example.com)独立性强,便于分离站点;但需要额外 DNS 记录和证书。 - 子目录(如
example.com/en/)管理简单,但大型站点可能不利于 SEO 权重分配。
如何验证配置生效
配置完成后,用以下两种简单方法检查:
- 命令行 curl 测试(在服务器上执行):
curl -I http://en.example.com
返回 200 OK 表示正常;
返回 301 Moved Permanently 可能是 HTTPS 自动跳转。
- 浏览器直接访问两个域名,分别看到各自
index.html的内容即可。如果出现 403 或 404,请检查 root 目录权限和文件是否缺失。
结尾
多语言外贸站点的多域名配置本质上并不复杂,核心就是为每个语言域名创建一个独立的 server 块,然后确保 DNS、证书、根目录一一对应。
遇到异常时优先检查 nginx -t 输出和系统日志(journalctl -u nginx)。
本文面向新手整理了完整流程和常见陷阱,建议在实际部署时严格按照步骤操作,遇到报错先回看“避坑与高频问题”部分。
如果你还需要进一步配置负载均衡、CDN 加速或多服务器架构,可以继续阅读本站相关进阶教程。