Для настройки Nginx под два домена и два сертификата вам потребуется выполнить несколько шагов. Приведу подробный пример настройки:
- Установите Nginx на ваш сервер, если он не установлен:
sudo apt install nginx
- Создайте директории для хранения конфигураций, файлов сайтов и сертификатов:
sudo mkdir /etc/nginx/sites-available sudo mkdir /etc/nginx/sites-enabled sudo mkdir /var/www/domain1 sudo mkdir /var/www/domain2
- Создайте конфигурационные файлы для каждого домена:
Создайте файл /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; } }
- Создайте символьные ссылки для активации конфигураций:
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/
- Получите и установите 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
- Обновите конфигурационные файлы для каждого домена, добавив настройки 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; } }
- Добавьте редирект с 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; }
- Перезапустите Nginx для применения изменений:
sudo systemctl restart nginx
После выполнения всех этих шагов, у вас должны корректно работать два домена с различными сертификатами на сервере Nginx.