子网域的Nginx配置

时间:2018-10-02 06:42:53

标签: nginx

我的应用程序结构如下:

  • / var / www / app / htdocs(基本应用)
  • / var / www / app / sites / example(其中“ example”是子站点)。

我希望在请求www.mydomain.com或mydomain.com时将根设置为/var/www/app/htdocs

我想在请求example.mydomain.com时将根设置为/var/www/app/sites/example

我该如何实现?

到目前为止,我已经得到:

server {
  listen 80;

  index index.php index.html index.htm;
  server_name ~^www\.(?P<sub>.+)\.mydomain\.com$ ~^(?P<sub>.+)\.mydomain\.com$;
  root /var/www/app/sites/$sub;

  location / {
  try_files $uri $uri/ =404;
  }

  location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
  }

  location ~ /\.ht {
        deny all;
  }
}

这将正确显示example.mydomain.com,但不会显示www.mydomain.com或mydomain.com。有任何想法吗?还可以将子域列入白名单吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以在/ etc / nginx / sites-enabled中创建一个新文件 将其命名为example.mydomain.com

编辑文件,使用以下配置:

    server {
        listen 80 ;
        server_name example.mydomain.com;
        root /var/www/app/sites/example;
  return         301 https://$server_name$request_uri;
        large_client_header_buffers 8 32k;
  if ($http_user_agent ~* Googlebot) {  
    return 403; 
  }




    location / {
        try_files $uri $uri/ =404;
    }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}

使用nginx -t reload检查配置文件 在您的域名服务提供商中进行输入。