使用 nginx 的混合 IP 和基于名称的虚拟主机

使用 nginx 的混合 IP 和基于名称的虚拟主机

我设置了许多域,但如果仅给出 IP 地址,我不知道如何配置。

假设 foo.com 我已经设置好了访问 web/foo.com/htdocs,我想将 88.99.66.55 ip 地址作为域名访问 web/fook.com/htdocs

server {
    listen       80;
    server_name  85.99.66.55;
    location / {
            root  /home/web/fook.com/htdocs;
    }
 location ~ \.(php|php3|php4|php5)$ {
                root          /home/web/fook.com/htdocs;
                include       fastcgi_params;
                fastcgi_pass  127.0.0.1:9000;
        }
    }

导致

  [warn]: conflicting server name "85.105.65.219" on 0.0.0.0:80, ignored

答案1

IP0.0.0.0指的是所有 IP。所以我认为你想要的是更像这样的东西:

server {
    listen       85.99.66.55:80;
    server_name *.fook.com;
    location / {
        root  /home/web/fook.com/htdocs;
    }
}


server {
    listen       85.99.66.55:80;
    server_name *.arf.com;
    location / {
        root  /home/web/arf.com/htdocs;
    }
}

您想在这里保持网络层笔直。server_name用于 HTTP(第 7 层)请求中的 HOST 标头,而 Listen 用于 IP 和端口 - 网络层和传输层,或 IP 和 TCP 数据包(第 3 层和第 4 层)。

相关内容