Как правильно настроить Nginx под два домена и два сертификата?

Для настройки Nginx под два домена и два сертификата вам потребуется выполнить несколько шагов. Приведу подробный пример настройки:

1. Установите Nginx на ваш сервер, если он не установлен:

sudo apt install nginx

2. Создайте директории для хранения конфигураций, файлов сайтов и сертификатов:

sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled
sudo mkdir /var/www/domain1
sudo mkdir /var/www/domain2

3. Создайте конфигурационные файлы для каждого домена:

Создайте файл /etc/nginx/sites-available/domain1.com и добавьте в него следующее содержимое:

server {
    listen 80;
    server_name domain1.com www.domain1.com;
    root /var/www/domain1;
    index index.html;

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

Создайте файл /etc/nginx/sites-available/domain2.com и добавьте в него следующее содержимое:

server {
    listen 80;
    server_name domain2.com www.domain2.com;
    root /var/www/domain2;
    index index.html;

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

4. Создайте символьные ссылки для активации конфигураций:

sudo ln -s /etc/nginx/sites-available/domain1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/domain2.com /etc/nginx/sites-enabled/

5. Получите и установите SSL-сертификаты для каждого домена. Для этого лучше воспользоваться Certbot:

sudo apt install certbot
sudo certbot certonly --webroot -w /var/www/domain1 -d domain1.com -d www.domain1.com
sudo certbot certonly --webroot -w /var/www/domain2 -d domain2.com -d www.domain2.com

6. Обновите конфигурационные файлы для каждого домена, добавив настройки SSL:

server {
    listen 443 ssl;
    server_name domain1.com www.domain1.com;
    root /var/www/domain1;
    index index.html;

    ssl_certificate /etc/letsencrypt/live/domain1.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain1.com/privkey.pem;

    location / {
        try_files $uri $uri/ =404;
    }
}
server {
    listen 443 ssl;
    server_name domain2.com www.domain2.com;
    root /var/www/domain2;
    index index.html;

    ssl_certificate /etc/letsencrypt/live/domain2.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain2.com/privkey.pem;

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

7. Добавьте редирект с HTTP на HTTPS для каждого сервера:

server {
    listen 80;
    server_name domain1.com www.domain1.com;
    return 301 https://domain1.com$request_uri;
}

server {
    listen 80;
    server_name domain2.com www.domain2.com;
    return 301 https://domain2.com$request_uri;
}

8. Перезапустите Nginx для применения изменений:

sudo systemctl restart nginx

После выполнения всех этих шагов, у вас должны корректно работать два домена с различными сертификатами на сервере Nginx.