Welcome! Log In Create A New Profile

Advanced

Re: Define ssl_certificate using $server_name

Maxim Dounin
October 12, 2009 07:22PM
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
Subject Author Posted

Define ssl_certificate using $server_name

Daniel Podolsky October 12, 2009 05:38PM

Re: Define ssl_certificate using $server_name

Maxim Dounin October 12, 2009 06:18PM

Re: Define ssl_certificate using $server_name

Daniel Podolsky October 12, 2009 06:54PM

Re: Define ssl_certificate using $server_name

Maxim Dounin October 12, 2009 07:22PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 141
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready