Nginx 多个域名绑定与域名访问设置详解
背景介绍
随着互联网的快速发展,一个网站可能需要同时服务于多个域名,公司官网、移动端网站、国际版网站等,Nginx 作为一款高性能的 Web 服务器,可以轻松实现多个域名的绑定和访问,本文将详细介绍如何在 Nginx 中配置多个域名绑定,并实现不同域名访问。

准备工作
在开始之前,请确保以下准备工作已完成:
- 已安装 Nginx 服务器。
- 拥有多个域名,并已解析到服务器 IP 地址。
- 确保服务器 IP 地址与域名解析记录一致。
配置文件修改
-
进入 Nginx 配置目录:通常情况下,Nginx 的配置文件位于
/etc/nginx/目录下。 -
备份原配置文件:在修改配置文件之前,建议备份原配置文件,以防万一出现错误。
-
修改配置文件:打开 Nginx 的默认配置文件
nginx.conf,找到server部分进行修改。
配置多个域名绑定
以下是一个示例配置,展示如何绑定多个域名:
server {
listen 80;
server_name www.example.com example.com;
root /usr/share/nginx/html;
location / {
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
在上面的配置中,server_name 指定了两个域名:www.example.com 和 example.com,当用户访问这两个域名时,都会被导向到同一份静态资源。
配置域名访问
- 添加虚拟主机:在
server部分添加一个新的虚拟主机配置,用于处理特定域名的请求。
server {
listen 80;
server_name blog.example.com;
root /usr/share/nginx/html/blog;
location / {
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
}
在上面的配置中,blog.example.com 的请求会被导向到 /usr/share/nginx/html/blog 目录下的静态资源。
- 配置反向代理:如果需要将多个域名指向同一后端服务器,可以使用反向代理。
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://backend_server_ip;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
在上面的配置中,api.example.com 的请求会被转发到 backend_server_ip 指定的后端服务器。

重启 Nginx 服务
完成配置文件修改后,重启 Nginx 服务以使配置生效:
sudo systemctl restart nginx
通过以上步骤,您可以在 Nginx 中配置多个域名绑定,并实现不同域名访问,这样,您的网站就可以同时服务于多个域名,满足不同用户的需求,希望本文对您有所帮助!