ПРОЕКТЫ 


  АРХИВ 


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: Оптимизация конфига


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Оптимизация конфига
  • From: Илья Шипицин <chipitsine@xxxxxxxxx>
  • Date: Mon, 25 Feb 2013 21:34:52 +0500
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=n4ABScW6mcyeU1scP+7L9wSGM4O0iTMLDv9Oe/2YuzQ=; b=DxsJn3TL0WkkCj26ExO3zg6MXi8k+qmWDPVd0Y4pAO9o8Wrh6gmrPHMHY5ULzdYUCK Uzy7h4a+WoMty1zv0uhJ3KwGHuDp3ZNWStCzaelpaBBo1PI1Bck0T4iJOcanbVAnO/I8 OiX7wBEEZY+Gb5cxsuIZsPYudf4kzgLMY2hu9orhBnI7y4Dvk/wCJi4PZ5jP0QZTffDV wRErU2jAwHCX56dP2Tt15wBkd4krlZ+lePoRog/Y+524JOccEkpTIRdhnvB7+U1Rkwk4 OGaJlWvWS3oX7xo1qIQyWspbiyh3d8TQ/C81z2pfu/Nl6QtuwenkmUkkfO3PzqazIO7e MMqQ==
  • In-reply-to: <CAJTAb-n_VsPmDY0gROX=TCTa7a5Avba-=dpDX==U9GMHwwM7Fg@mail.gmail.com>
  • References: <CAJTAb-k8TBjNpvgOcrOACQ=r-TLfvFEC1z5Wuz7OKVPYLGgw7w@mail.gmail.com> <CAFHpkQEaHG0TqZivVbAEa5S3QyQibwL_mi-DmumVy-+KZ5Yxtw@mail.gmail.com> <CAJTAb-kKkfu4quDf=d+yh2BQBSWVAeNa-ARL0=5bUtteSPR2ow@mail.gmail.com> <CAFHpkQFi7PdJXtyAZqKUKJ9n5bALWFJbUttyiRwh954tSBq-ZA@mail.gmail.com> <CAJTAb-n_VsPmDY0gROX=TCTa7a5Avba-=dpDX==U9GMHwwM7Fg@mail.gmail.com>

например, на время деплоя подменять конфигурацию на вот такую

    server {
        listen       80;
        server_name  localhost;

    error_page 404 =503  /404.html;
    root /etc/nginx/docs;


        location / {
          index nonexistent.html;
        }
    }


файл /etc/nginx/docs/404.html будет отдаваться на любой запрос, ответ будет с кодом 503



25 февраля 2013 г., 21:47 пользователь Дмитрий Лялюев <dmitriy@xxxxxxxxxxxxx> написал:
Ну эта страничка выдается только в момент деплоя новой версии, т.е. не более нескольких минут. Думаю, что это не сильно критично. 

Но вот как сделать правильно?
Т.е. как сделать так, чтоб при наличии этого файла отдавалась эта страница, но с кодом 503?
Подскажете в какую стороны посмотреть?


25 февраля 2013 г., 17:02 пользователь Илья Шипицин <chipitsine@xxxxxxxxx> написал:

абсолютных критериев "правильности" нет.
если отдавать 200, то вас прямо так проиндексируют поисковики (если у вас публичный сайт и вас это беспокоит)
если отдавать 503, то вашу заглушку не проиндексируют, но MSIE и Chrome по умолчанию любят показывать "friendly" страницы ошибок и они подменят вашу заглушку.

в зависимости от этого выбираете компромисс.


25 февраля 2013 г., 20:52 пользователь Дмитрий Лялюев <dmitriy@xxxxxxxxxxxxx> написал:

1. О try_files можно подробнее как сделать правильно?
2. С переменной понятно все, но тут лучше вряд ли выйдет, т.к. "движок" один для любого домена и поддомена, которые добавляются простой регистрацией на сайте. Не генерить же новый конфиг на каждую регистрацию?

Про рерайты и условия - понимаю, но таковы реалии задачи. Хотя вроде бы ничего особо сложного там нет.

Спасибо большое за ваши комментарии.


25 февраля 2013 г., 16:37 пользователь Илья Шипицин <chipitsine@xxxxxxxxx> написал:

вероятно, в этом месте

try_files /maintenance.html $uri @apache;

подразумевалась логика "если мы хотим повешать заглушку на сайт, то мы положим файлик /maintenance.html",
это не очень хорошая идея, с точки зрения поисковых систем ответ будет с кодом 200, прямо так вас и проиндексируют.

с точки зрения нагрузки (если у вас высокая) переменную $HBW лучше оформить в виде map-а, тогда она будет вычисляться только при обращении к ней (сейчас каждый раз).


ну и вообще столько реврайтов и условий с регулярными выражениями сильно снижает читаемость конфига.




25 февраля 2013 г., 19:14 пользователь Дмитрий Лялюев <dmitriy@xxxxxxxxxxxxx> написал:
Есть написанный мной конфиг. Хотелось бы выслушать предложения по его оптимизации и ругань, что я ламер и надо делать все не так. :) Поможете?

server {
    listen       80 default;
    server_name  ~^(?:www\.)*(?<HBW>.+)$;
    server_name_in_redirect  off;

    access_log off;
    error_log /var/log/nginx/proxy.log;

    root /var/www/apps/application/current/public;

    include /etc/nginx/banned_ip.conf;

    location / {
        try_files /maintenance.html $uri @apache;

        location ~ ^(/Help|/pub) {
            proxy_pass        http://wiki.application.com;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        location ~ /(assets|images/egg/sites) {
            expires modified +30d;
            access_log off;
            try_files /maintenance.html $uri @apache;
        }

        location ~ ^/stylesheets/(.*)/(.*) {
            rewrite /stylesheets/(.*) /assets/$1 last;
        }

        location ~ ^/(images|_javascript_s) {
            rewrite /(images|_javascript_s)/(.*) /assets/$2 last;
        }

        location ~* \.(gif|jpg|png|ico)$ {
            root /var/www/apps/application/current/eggs/$HBW;
            access_log off;
            expires modified +30d;
            error_page 404 @apache;
        }
    }

    location /crossdomain.xml$ {
        root /var/www/crossdomains/$HBW;
    }

    location @apache {
        proxy_pass         http://localhost:8080;
        include /etc/nginx/proxy.conf;
    }
}

Спасибо заранее. :)

--
С уважением,
Дмитрий Лялюев
тел. +380 (66) 532-29-62
Все контакты для связи на http://lyalyuev.info

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru



--
С уважением,
Дмитрий Лялюев
тел. +380 (66) 532-29-62
Все контакты для связи на http://lyalyuev.info

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru



--
С уважением,
Дмитрий Лялюев
тел. +380 (66) 532-29-62
Все контакты для связи на http://lyalyuev.info

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.