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

Встроенные переменные Nginx - как узнать доменное имя, используемое в запросе?

При использовании нескольких доменных имен для одного сервера, как получить доменное имя, которое в настоящее время используется в запросе? Я использую встроенные переменные для Nginx в его файле конфигурации.

Я установил OpenSSL, и у меня есть перенаправление, которое отлично работает для моего первого домена, поскольку, как вы можете видеть, я явно перенаправляю на него в нижней части моего файла конфигурации. Таким образом, HTTP-запрос на любом из других доменов перенаправляется на этот первый для безопасного соединения. Могу ли я использовать встроенную переменную, похожую на $request_uri, например, но просто возвращает заданное доменное имя, используемое клиентом?

Вот блок сервера, в котором я выполняю перенаправление.

server {
        listen 80;
        listen [::]:80;
        server_name example.com example1.com example2.com example3.com;
        location / {
                return 301 https://example.com$request_uri;
        }
}

И остальная часть моего конфига: https://pastebin.com/HgnZ0aBe

Доменное имя, используемое в запросе, в основном является заголовком запроса хоста. В nginx переменной для заголовка хоста является $ host. Поэтому, если вы хотите перенаправить на основе имени домена / хоста, вы должны изменить конфигурацию на:

return 301 https://$host$request_uri;

Надеюсь на эту помощь. Спасибо