Очень часто это является проблемой при построении редиректов, когда у вас больше 1 домена. Следующая конструкция выглядит работоспособной:
return 301 https://$server_name$request_uri;
Всё работает, когда у вас всего 1 домен в server_name. А когда 2 и больше, то для них redirect работает не правильно (он редиректит на самый первый домен в server_name). А всё потому, что нужно вместо $server_name использовать хост. В документации написано следующее:
- $server_name: имя сервера, принявшего запрос
- $host: в порядке приоритета: имя хоста из строки запроса, или имя хоста из поля “Host” заголовка запроса, или имя сервера, соответствующего запросу