Re: rewrite в именованный location
Alexey V. Karagodov
kav at karagodov.name
Thu Jul 30 23:32:19 MSD 2009
On 30.07.2009, at 20:38, Peter A Leonov wrote:
> Заюзать 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 {
>>
- include x.conf;
+ 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