title: Wildcard subdomain and a specific subdomain configuration in same server Nginx
body: <p>I had set up a wildcard subdomain server for my PHP <code>app1</code> domain like <code>*.domain.com</code> in Nginx default configuration. My <code>app1</code> was serving if someone type <code>x.domain.com</code> or <code>y.domain.com</code> everything was fine. </p>
  
  <p>When I set up another virtual host for a specific subdomain in this domain <code>specific.domain.com</code> for <code>app2</code>. After that, when I type x.domain.com it's showing me <code>app2</code> but I wanted to show app2 only for specific.domain.com and app1 for *.domain.com</p>
  
  <pre><code>server {
      # Set the port to listen on and the server name
      listen 80 default_server;
      server_name *.domain.com;
      # Set the document root of the project
      root /var/www/html/app1;
  
      # Set the directory index files
      index index.php index.html index.htm;
  
      # Specify the default character set
      charset utf-8;
  
      # Setup the default location configuration
      location / {
        try_files $uri $uri/ /index.php$is_args$args;
      }
  
      # Specify the details of favicon.ico
      location = /favicon.ico { access_log off; log_not_found off; }
  
      # Specify the details of robots.txt
      location = /robots.txt  { access_log off; log_not_found off; }
  
      # Specify the logging configuration
      access_log /var/log/nginx/access.log;
      error_log /var/log/nginx/error.log;
  
      sendfile off;
  
      client_max_body_size 128m;
  
      # Specify what happens when PHP files are requested
      location ~ \.php$ {
          fastcgi_split_path_info ^(.+\.php)(/.+)$;
          fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
          fastcgi_index index.php;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_intercept_errors off;
          fastcgi_buffer_size 16k;
          fastcgi_buffers 4 16k;
      }
  
      # deny access to .htaccess files
      location ~ /\.ht {
         deny  all;
      }
  }
  
  server {
      listen 80;
      server_name specific.domain.com;
  
      root /var/www/html/app2;
  
      index index.html index.htm;
  
      charset utf-8;
  
      location / {
        try_files $uri $uri/ /index.html$is_args$args;
      }
  }
  </code></pre>