Hello! On Fri, Nov 01, 2019 at 10:57:32AM -0400, opan wrote:
> Добрый день. > > Есть следующая конфигурация сервера: > > server { > listen 80; ## listen for ipv4 > listen 443 default_server ssl; > > server_name localhost; > server_name_in_redirect off; > > location = /loc { > if ($scheme = http) { > return 301 https://$server_name$request_uri; > } > > ... > Мы ожидаем что все запросы, которые попадают в этот пустой server_name, > будут перенаправляться на https://$host/loc/$request_uri, так как есть > директива: server_name_in_redirect off; Однако запросы перенаправляются > на https://localhost/loc/$request_uri > > Из документации такое поведение не удалось понять. Можете пояснить, > пожалуйста, как правильно пользоваться это директивой? Директива server_name_in_redirect влияет только на то, что будет испольвоваться в host-части перенаправлений, которые возвращает сам nginx (а равно в случаях, когда nginx преобразует перенаправления к абсолютным). В приведённом же случае - в перенаправлении явно используется $server_name, и результат будет ровно такой, как написано, значение директивы server_name_in_redirect никак на это не влияет. Если вы хотите, чтобы возвращалось перенаправление на https://$host - так и напишите в конфиге. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru