Nginx 中如何配置虚拟主机?

推荐答案

在 Nginx 中配置虚拟主机可以通过在配置文件中定义多个 server 块来实现。每个 server 块代表一个虚拟主机,并且可以通过不同的域名或 IP 地址来区分。

以下是一个简单的虚拟主机配置示例:

-- -------------------- ---- -------
------ -
    ------ ---
    ----------- ------------

    -------- - -
        ---- ---------------------
        ----- -----------
    -
-

------ -
    ------ ---
    ----------- --------------------

    -------- - -
        ---- -----------------------------
        ----- -----------
    -
-

在这个配置中,example.comanother-example.com 是两个不同的虚拟主机,分别监听在 80 端口。每个虚拟主机都有自己的根目录和默认首页文件。

本题详细解读

1. server

  • 每个 server 块代表一个虚拟主机。
  • listen 指令用于指定监听的端口,例如 listen 80; 表示监听 80 端口。
  • server_name 指令用于指定虚拟主机的域名或 IP 地址。例如 server_name example.com; 表示该虚拟主机将响应 example.com 的请求。

2. location

  • location 块用于定义如何处理特定 URL 路径的请求。
  • root 指令指定了该虚拟主机的根目录,例如 root /var/www/example.com; 表示该虚拟主机的文件存放在 /var/www/example.com 目录下。
  • index 指令指定了默认的首页文件,例如 index index.html; 表示当访问根路径时,默认返回 index.html 文件。

3. 多个虚拟主机的配置

  • 可以通过在配置文件中定义多个 server 块来配置多个虚拟主机。
  • 每个 server 块可以有不同的 server_nameroot 配置,从而实现多个域名或 IP 地址的虚拟主机。

4. 其他注意事项

  • 如果多个 server 块监听相同的端口和 IP 地址,Nginx 会根据 server_name 来匹配请求。
  • 如果没有匹配的 server_name,Nginx 会使用默认的 server 块(通常是第一个定义的 server 块)来处理请求。

通过以上配置,Nginx 可以轻松地支持多个虚拟主机,每个虚拟主机可以独立配置,互不干扰。

纠错
反馈