ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Define ssl_certificate using $server_name



Hello!

On Tue, Oct 13, 2009 at 02:47:13AM +0400, Daniel Podolsky wrote:

> > В nginx'е есть поддержка SNI начиная с 0.5.23 (при условии сборки
> > с поддерживающей это версией openssl), работает совершенно
> > прозрачно с точки зрения конфигурации (начинает использоваться тот
> > сертификат, который указан в запрошенном клиентом блоке server).
> Не-не-не :) Я - подкованный парень. Я чисто про конфиг nginx - можно
> ли, описывая сервер, использовать переменные для задания директив?

А, не понял вопроса, sorry.  In no particular order:

1. В ssl_certificate - нельзя, т.е. вообще.  Он загружается на 
этапе парсинга конфигарации, а переменные в nginx'е - времени 
выполнения запроса.

2. Не нужно использовать переменные там, где они не могут/должны 
принимать различные значения при обработке разных запросов.  См. 
выше, переменные в nginx'е - раскрываются для каждого запроса.

Если задача - сократить объём вводимого в конфиге, то решение - 
это генератор конфигов (начиная от sed + make и заканчивая любой 
другой конструкцией на вкус использующего).

А переменные - оставьте в покое, они нужны для другого.  Там, где 
они поддерживаются, об этом явно написано.

> Ну, вот еще пример:
> 
> set $app_uri "/app/"
> 
> server {
>   listen 80;
>   location $app_uri {
>             rewrite ^ https://$host/$request_uri? redirect;
>         }
>   }
> 
> server {
>   listen 443;
>   location $app_uri {
>       proxy_pass http://127.0.0.1:8080;
>    }
> }

И так - тоже нельзя, потому что дерево location'ов строится на 
этапе парсинга конфигурации.  И не нужно, по всё тем же причинам.

> Вопрос регулярно обсуждается, но ни вспомнить ответ, ни нагуглить не
> справляюсь :(

Регулярно приводимых ответов два: 1) тот что выше, и 2) "возможно 
следует сделать макросы (== переменные времени парсинга конфига), 
для тех кто не понял ответ выше". 

Maxim Dounin



 




Copyright © Lexa Software, 1996-2009.