乐闻世界logo
搜索文章和话题

Nginx如何在同一IP上设置不同域名

3 个月前提问
3 个月前修改
浏览次数10

1个答案

1

在配置Nginx时,如果想要同一台服务器(同一个IP地址)支持多个域名,我们可以通过设置多个server块来实现。每个server块配置一个独立的域名,这样Nginx能够根据请求的 Host头部来区分并转发到正确的网站。

例子:

假设我们有两个域名:example.comtest.com,它们将在同一IP地址上由Nginx服务。以下是一个基本的配置示例:

nginx
# 对于 example.com server { listen 80; # 监听80端口 server_name example.com; # 设定服务器名称为 example.com location / { root /var/www/example; # 网站的根目录 index index.html index.htm; # 默认文件 } } # 对于 test.com server { listen 80; # 同样监听80端口 server_name test.com; # 设定服务器名称为 test.com location / { root /var/www/test; # 网站的根目录 index index.html index.htm; # 默认文件 } }

解释:

  1. 监听端口: listen 80; 表示这两个server块都在监听80端口,这是HTTP的标准端口。
  2. 服务器名称: server_name 指令用于指定各自的域名。这是Nginx区分不同请求应该交由哪个server块处理的关键。
  3. 网站根目录和默认文件: root 指令定义了各自域名的根目录路径,而 index 指令指定了如果请求是针对目录的,则默认返回哪个文件。

总结:

通过以上配置,Nginx能够侦听来自同一IP的不同域名请求,并根据 server_name将请求分发到正确的路径。这种配置方式非常灵活且易于扩展,可以很容易地添加更多的域名和对应的server块。

2024年8月16日 00:20 回复

你的答案