Re: rewrite в именованный location
Peter A Leonov
gojpeg at gmail.com
Thu Jul 30 20:38:20 MSD 2009
Заюзать use мне бы тоже очень хотелось. А то кроме инклюда и нет
больше оружия против копипаста :(
С уважением,
Петр Леонов.
+7 (905) 758-12-73
On 30.07.2009, at 19:50, Gena Makhomed <gmm at csdoc.com> wrote:
> On Thursday, July 30, 2009 at 14:37:39, Борис Долгов wrote:
>
> БД> Мне кажется, можно даже ввести что-то типа
>
> БД> http {
> БД> configuration x {
> БД> fastcgi_pass ....
> БД> прочее;
> БД> }
> БД> server {
> БД> location @php {
> БД> use x;
> БД> }
> БД> location ~\.php$ {
> БД> use x;
> БД> }
> БД> }
> БД> }
>
> БД> которые все будут храниться в памяти только 1 раз.
>
> по сути это аналог директивы include, только вместо того,
> чтобы делать много мелких файлов для include, можно будет
> сделать именованные фрагменты конфигурации в одном файле.
>
> например:
>
> http {
>
> config http_backend {
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Nginx-Scheme $scheme;
> proxy_pass http://127.0.0.1/;
> }
>
> config fastcgi_backend {
> ...
> }
>
> server {
> server_name www.example.com;
> location / {
> use http_backend;
> }
> }
>
> server {
> server_name www.example.net;
> location / {
> use fastcgi_backend;
> }
> }
> }
>
> если в различных виртуальных серверах nginx
> есть одинаковые фрагменты конфига, например,
> отдача статических файлов или контролируемые
> скачивания - это тоже кандидаты на config { }
>
> аналогично, через один блок config { }
> можно было бы описать общие фрагменты
> конфигурации для http и https-серверов,
> при внесении изменений - надо будет
> править конфиг только в одном месте.
>
> DRY principle - Don't repeat yourself.
>
> PS параметр "ssl" в директиве "listen"
> можно использовать только для полностью
> идентичных конфигураций. например, если
> для location /admin/ у https сервера
> нужен один конфиг, а у http сервера -
> редирект на https, тогда придется делать
> два полностью отдельных конфига server { },
> или использовать внутри if, что еще хуже,
> или несколько файлов и использовать include,
> что становится еще более неудобным при большом
> количестве виртуальных хостов на сервере.
> удобнее было бы 1 хост == 1 файл конфига,
> и include /etc/nginx/conf/virtual/*.conf;
>
> --
> Best regards,
> Gena
>
>
More information about the nginx-ru
mailing list