Назад | Перейти на главную страницу

nginx перенаправляет домены с ssl

У меня есть новый домен (my-future-domain.com), который я пытаюсь использовать для замены моего текущего домена (my-current-domain.com). Я использую сервер DigitalOcean Nginx на Ubuntu и считаю, что мне следует предпринять следующие шаги, чтобы заменить текущий домен моим новым, но я никогда раньше не занимался миграциями доменов, поэтому мне хотелось бы получить отзывы о шагах Планирую брать.

1) Укажите запись A на IP, связанный с текущим сервером, а CNAME на запись A

А = my-future-domain.com направляет на 100.200.1.90

CNAME = www.my-future-domain.com - это псевдоним my-future-domain.com

2) использовать certbot для генерации SSL для my-future-domain.com и www.my-future-domain.com sudo certbot --nginx -d my-future-domain.com -d www.my-future-domain.com

3) Выбрать 2: Redirect - Make all requests redirect to secure HTTPS access. в приглашении certbot

4) Добавить новое server_name блокировать новое доменное имя и имитировать текущий блок сервера

Текущий блок:

#This server block will redirect http:// to https://www.my-current-domain.com
server {
    listen 80;
    listen [::]:80;
    server_name my-current-domain.com www.my-current-domain.com;
    return 301 https://www.my-current-domain.com$request_uri;
}

#This server block will redirect https://my-current-domain.com to https://www.my-current-domain.com (expecting that you have a certificate for my-current-domain.com as well as www.my-current-domain.com
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    include snippets/ssl-www.my-current-domain.com.conf;
    include snippets/ssl-params.conf;
    server_name my-current-domain.com;
    return 301 https://www.$server_name$request_uri;
}

Новый блок веб-сайта:

#This server block will redirect http:// to https://www.my-future-domain.com
server {
    listen 80;
    listen [::]:80;
    server_name my-future-domain.com www.my-future-domain.com;
    return 301 https://www.my-future-domain.com$request_uri;
}

#This server block will redirect https://my-future-domain.com to https://www.my-future-domain.com (expecting that you have a certificate for my-future-domain.com as well as www.my-future-domain.com
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    include snippets/ssl-www.my-future-domain.com.conf;
    include snippets/ssl-params.conf;
    server_name my-future-domain.com;
    return 301 https://www.$server_name$request_uri;
}

5) Перенаправляйте трафик с my-current-domain.com и www.my-current-domain.com на www.my-future-domain.com. Могу ли я обновить «Текущий блок» с шага 4?

6) Удалить запись A и CNAME для my-current-domain.com

Что мне может не хватать?

DNS выглядит нормально. Чтобы упростить DNS-запросы, вы можете настроить my-current-domain.com в качестве CNAME для www.my-future-domain.com, а не только для www.my-current-domain.com. Вам не нужно удалять DNS, пока не истечет срок действия старого домена; оставлять его на месте безвредно. (Это также принесет пользу всему, что все еще ссылается на старый домен, если оно будет на месте. Перенаправления должны обработать все остальное.)

Я бы настроил ваши серверные блоки следующим образом.

server {
        listen 80;
        listen [::]:80;
        server_name my-future-domain.com www.my-future-domain.com my-current-domain.com www.my-current-domain.com;
        return 301 https://www.my-future-domain.com$request_uri;
}

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name www.my-future-domain.com;
        …

Вы можете очистить код, объединив два серверных блока.

Если вы будете следовать своему текущему плану, если кто-то попросил http://my-current-domain.com, они будут перенаправлены на https://www.my-current-domain.com а затем снова перенаправлен на https://www.my-future-domain.com. Вы можете сэкономить на перенаправлении, выполнив все это в начальном блоке сервера.