Несколько доменов в одном VPS с использованием VHOST

#nginx #web #server #dns #vps

#nginx #веб #сервер #dns #vps

Вопрос:

Я хочу создать несколько сайтов в одном vps, например, сайты на порту 80 используютwww.domain1.com и на порту 8080 использовать www.domain2.com . может ли nginx или что-либо еще справиться с этим?

я пытался использовать переадресацию портов, но работает плохо

мой nginx.conf

 server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  domain1.com;
        root          /var/www/html;

        # Load configuration files for the default server block.
        #include /etc/nginx/default.d/*.conf;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }

        # PHP
            location ~ .php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(. .php)(/. )$;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;

        }

    }

  

и мой virtualhost.conf

 #Virual Host
    server {
         listen 8080;

         access_log /var/log/nginx/nginx-access.log;
         error_log /var/log/nginx/nginx-error.log;

        # Root
         root /var/www/web2/public;
         index index.php index.html index.htm;

         # server name
         server_name domain2.com;

         location / {
                try_files $uri $uri/ /index.php?$query_string;
         }

         # PHP
         location ~ .php$ {
                 try_files $uri =404;
                 fastcgi_split_path_info ^(. .php)(/. )$;
                 fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
                 fastcgi_index index.php;
                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                 include fastcgi_params;

         }

  }
  

если возможно, каким образом?

Ответ №1:

Вы можете запустить оба домена на порту 80. вам не нужно менять порт на 8080. В nginx.conf измените имя_сервера с domain1.com вернуться к default_server;

В вашем каталоге /etc /nginx/conf.d/ создайте два конфигурационных файла, domain1-com.conf и domain2-com.conf

donain1-com.conf

 server {
listen  80;
server_name domain1.com www.domain1.com;
access_log            /var/log/nginx/domain1-com-access.log;
error_log             /var/log/nginx/domain1-com-error.log;

     root /var/www/web1/public;
     index index.php index.html index.htm;



   # PHP
     location ~ .php$ {
             try_files $uri =404;
             fastcgi_split_path_info ^(. .php)(/. )$;
             fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
             fastcgi_index index.php;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
             include fastcgi_params;

     }



} 
  

domain2-com.conf

 server {
listen  80;
server_name domain2.com www.domain2.com;
access_log            /var/log/nginx/domain2-com-access.log;
error_log             /var/log/nginx/domain2-com-error.log;

     root /var/www/web2/public;
     index index.php index.html index.htm;



   # PHP
     location ~ .php$ {
             try_files $uri =404;
             fastcgi_split_path_info ^(. .php)(/. )$;
             fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
             fastcgi_index index.php;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
             include fastcgi_params;

     }



}