nginx 与多个域名共享服务器(子域名重定向)

nginx 与多个域名共享服务器(子域名重定向)

我有一台服务器,想要托管两个 Web 应用程序(例如一个站点和一个 Web 应用程序)和一个使用 nginx(和 Web 托管)的新手。

我有:

  • 网络服务器(可使用 访问http://server.name
  • 主站点地址(main.site.name 或 www.main.site.name)。其内容位于/usr/share/nginx/www.main.site.name
  • 具有特定地址(subdomain.other.site)的 Web 应用。其内容位于/usr/share/nginx/test

我使用以下命令配置了我的主站点:

    server {
    server_name .main.site.name;
    root /usr/share/nginx/www.main.site.name;
    index index.html index.htm;
    location / {
        try_files $uri $uri/ /index.html;
    }
    location ~ \.php$ {    
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

我使用这个配置了我的 wab 应用程序但它不起作用:

    server {
        listen subdomain.other.site:80;
        server_name subdomain.other.site;

        root /usr/share/nginx/test;
        index index.html index.htm;
        location / {
            try_files $uri $uri/ /index.html;
        }
        location ~ \.csv$ {
            alias /usr/share/nginx/test/$uri;
        }
    }

此配置始终向我显示来自 /usr/share/nginx/www.main.site.name 的 index.html

我该如何重写配置以使其正常工作?我应该使用重写指令吗?但是该怎么做?

答案1

对于默认站点:

server {
    listen 80 default_server;
    server_name  _;

    # ....
}

然后,对于每个特定的已知站点:

server {
    listen 80;
    server_name .main.site.name;

    # ....
}

server {
    listen 80;
    server_name subdomain.other.site;

    # ....
}

相关内容