Илья Шипицин Wrote: ------------------------------------------------------- > 13 февраля 2017 г., 18:01 пользователь S.A.N > <nginx-forum@forum.nginx.org> > написал: > > > Здравствуйте. > > > > Есть потребность в реализации вот такого поведения: > > >by S.A.N - Nginx Mailing List - Russian
Здравствуйте. Есть потребность в реализации вот такого поведения: https://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html Some HTTP methods MUST cause a cache to invalidate an entity. This is either the entity referred to by the Request-URI, or by the Location or Content-Location headers (if present). These methods are: - PUT - Dby S.A.N - Nginx Mailing List - Russian
> К сожалению, это все равно не панацея > Firefox почему-то смотрит на этот параметр только для https > соединений, а для якобы устаревших http игнорирует его.. Хотя казалось > бы зачем это вообще разделять... У вас юзера чаby S.A.N - Nginx Mailing List - Russian
> Да, поставь ты expires и max-age хоть на сто лет вперед, любое F5 у > Firefox вызовет запрос на сервер. Да, в ответ пойдет 304, но сам > запрос то никак не отменить (кроме как этим флагом) Да, я уже понял и написал ниже: +1 за Cache-Control:by S.A.N - Nginx Mailing List - Russian
> вот тут подробности: > > http://www.opennet.ru/opennews/art.shtml?num=45934 > 27.01.2017 23:49 Firefox и Chrome провели работу по увеличению > скорости > повторной загрузки страниц Спасибо, да метод POST и поведение кнопки "перезагрузить страby S.A.N - Nginx Mailing List - Russian
Почитал спеку, но так и не понял, что нового дает immutable, если установить expires max, клиент раз в год будет делать условный запрос, если установить immutable, клиент никогда не будет делать условных запросов, т.е. это все ради тогоby S.A.N - Nginx Mailing List - Russian
Anton Bessonov Wrote: ------------------------------------------------------- > А что, если перенести это на уровень бильд-процесса? Успешно использую > с > мэйвеном (подсчёт версии, копирование файлов в /static/${number} и > замена переменных в ресурсаx),by S.A.N - Nginx Mailing List - Russian
Здравствуйте. Для статичных файлов, есть старая добрая практика, добавлять в url, некий номер версии этого файла, клиентам отдавать в заготовках максимальное время кеширования, как-то так: expires max; <script src="/app.js?versionby S.A.N - Nginx Mailing List - Russian
Одно из достоинств HTTP 2, там Nginx (пока что) не добавляет заголовок Connection: keep-alive.by S.A.N - Nginx Mailing List - Russian
> GEOIP-* - обязательно. remote_user особо не важен. Дело в том, что $remote_user не может открыть соединения по локальному unix-сокету из другого города или страны. У вас наверно есть внешний прокси для этого, если да, тогда все эти парby S.A.N - Nginx Mailing List - Russian
> Что, впрочем, не мешает автору треда взять прокси-модуль, немного > изменить код > и радоваться жизни :) Нет, все таки придется юзать proxy_cache :)by S.A.N - Nginx Mailing List - Russian
Здравствуйте. Есть ли возможность в proxy_store сохранять не только тело ответа, но и все НТТР заговоки? Для нашей задачи proxy_store подходит на 99%, не хватает только сохранения заголовков, использовать proxy_cache нельзя, потому чтby S.A.N - Nginx Mailing List - Russian
Nginx, таким образом, за Сloudflare. > И если обращаться к серверу напрямую по имени domain.ltd, то кэш > успешно создается. Если же обычным путем (через Cloudflare), то при > обращении именно на определенный домен кэш не создается. С чby S.A.N - Nginx Mailing List - Russian
> Потому что PrivateTmp=true, процес бекенда как правило работает под > другим юзером и получить доступ к временной папке процесса Nginx > сможет. Конечно, НЕ сможет, получить доступ к файлу, моя опечатка )by S.A.N - Nginx Mailing List - Russian
Мне ещё не нравится, из официального репозитория, вот эта директива: PrivateTmp=true Огромный подводный камень, например вот это из коробки работать не будет client_body_temp_path /tmp/; client_body_in_file_only on; Потому что PrivateTmp=true, процес бby S.A.N - Nginx Mailing List - Russian
Kira_Belka Wrote: ------------------------------------------------------- > чем тогда является данный текст?! > Он не является ни заголовком ни каким либо параметром передаваемым в > POST/GET > > там первая строчка с посыпавшейся кодировкой и это нby S.A.N - Nginx Mailing List - Russian
Проявилась одна фича (или баг?) В официальном Nginx репозитории для CentOS 7, в Systemd юните - nginx.services, указанна директива PrivateTmp = yes https://www.freedesktop.org/software/systemd/man/systemd.exec.html#PrivateTmp= Если в конфиге Nginx, указать client_body_temp_path /tmp; proxy_set_by S.A.N - Nginx Mailing List - Russian
Maxim Dounin Wrote: ------------------------------------------------------- > Самбу/NFS? Боюсь, что если так, то на этом > пути вас ждёт множество неприятных открытий. > Да, вы правы, на dev сервере Самба/NFS, проблема именно в этом. Спасибо!by S.A.N - Nginx Mailing List - Russian
Ещё вопросы по временным файлам 1. Если клиент закрыл соединения до отправки всего тела запроса, временный файл остается в папке, Nginx этот файл не удаляет, запрос на бекенд отправлен не будет. Я так понимаю подразумевалby S.A.N - Nginx Mailing List - Russian
client_body_in_file_only - работает отлично :) Но нам нужно провести аутентификацию юзера перед тем как Nginx прочитает все тело клиентского запроса и сохранит его в файл. Я знаю про ngx_http_auth_request_module, но это отдельный запрос на бекендby S.A.N - Nginx Mailing List - Russian
> tcp_nodelay и tcp_nopush включал - эффекта никакого. Может это быть > из-за > айпитеблсов? Из-за какогонибудь коннтрека или еще чего Если есть возможность, попробуйте перейти на локальные UNIX сокеты.by S.A.N - Nginx Mailing List - Russian
> Я не понимаю что мы выигрываем от принятия сразу нескольких > соединений за одну итерацию event loop'а. Я в таких случаях провожу нагрузочные эксперименты, чтобы понять что мы выигрываем, в данном случаи разница будетby S.A.N - Nginx Mailing List - Russian
> > 1 запрос выполняется за 100ms > > > > Если послать 30 последовательных запросов в 1 соединение мы получим > 30 > > ответов за 3000ms > > Если послать 30 запросов в 30 разных соединениях мы получим 30 > ответов заby S.A.N - Nginx Mailing List - Russian
> Хэндлер должен быть один для всех однотипных операций Да, это детали конкретной реализации, там нужно контекст передать, по этому создается новый интсанст хендлера. Если перечислять все кроме WatcherObject и HandlerMethod, тогby S.A.N - Nginx Mailing List - Russian
> Можете расшифровать выражение "сокет не простаивал в пустую"? Чем > грозит > сокет, который простаивает впустую? Что по вашему такой сокет > потребляет: > ресурсы процессора, электричество, солярку, деньгby S.A.N - Nginx Mailing List - Russian
> Везде SSL. Сейчас с SPDY (еще пока используем nginx-1.8.1). Возможно > SPDY\http2 > лишний и стоит его отключить везде, кроме связки клиент->эдж? Для видеостриминга, лучше использовать много соединений, HTPP/1.1 хорошо подходит иby S.A.N - Nginx Mailing List - Russian
> Если я правильно понял этот набор слов, предлагается вместо кэша > nginx > использовать кэш memcached'а, почему эта связка должна быть > эффективнее > чем один кэш nginx'a? Нет, будет использоваться только кеш Nginx, но беby S.A.N - Nginx Mailing List - Russian
> Возможно, эффективным решением для соединения бэкэндов было бы > фиксированное количество соединений, бесконечный keepalive и > pipelining Да, мы сделали свой pool keepalive сокетов, это действительно помогает. pipelining мы хотелby S.A.N - Nginx Mailing List - Russian
> Если сокет "простаивает без трафика", то железо отнюдь не простаивает, > а выполняет работу по тем сокетам, которые не простаивают. > > К тому же при однородной нагрузке количество требуемых содинений с >by S.A.N - Nginx Mailing List - Russian
> Интересно, сколько нужно открыть fd чтобы ощутить их дефицит в > системе? Это зависит от установленого лимита в ОС, по умолчанию 1024, я кстати всегда хотел узнать, зачем линукс по умолчанию ставит такой низкий лимит?by S.A.N - Nginx Mailing List - Russian