Чтобы добавлять сообщения и комментарии, .

@Balancer:
Balancer

nginx ppa сломали. Не апгрейдится штатно. Вот простейшее решение:

Work-around fix:

Edit /var/lib/dpkg/info/nginx-common.config

and add a return on the first line of the log_symlinks_check function.

e.g.:

 log_symlinks_check() {
     return                <---- here
     # Skip new installations
     [ -z "$1" ] && return

@Shumaher:
Shumaher

настроил в nginx кэширование браузером.
всего-то загуглить дохера блогов, чтоб узнить как делается это именно на NIC.RU, одно письмо в техподдержу, и готово — я восхитителен! :)))
не знаю правда, на долго ли. на другом хостинге тоже 2 дня переписывался с техподдержкой, чтобы наконец заработали все нужны заголовки правильно, а щас только что полез сравнивать что выдают сайты — на старом опять все вернулось на дефолт. опять долбить их через тикеты :( мрак

@thefish:
thefish

pataliebre.net

всё-таки nginx можно научить делать inflate на лету! вопрос теперь только в производительности.

@lolicon:
lolicon

coderwall.com

@AlexVK:
AlexVK

Капец. Перевернул ввер хном все настройки, включил чуть ли не отладочные логи чтобы в итоге выяснить что тормозит ... dns.
2 ip на 1 хост и при обращении к хосту тормоза через раз...

@AlexVK:
AlexVK

ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

@ZerGabriel:
ZerGabriel

В nginx появилась поддержка балансировки UDP-соединений
opennet.ru
Разработчики http-сервера nginx объявили о реализации поддержки балансировки UDP-соединений, которая дополнила собой ранее добавленный балансировщик произвольных TCP-соединений, реализованный в виде модуля stream. Проброс UDP может быть полезен для распределения нагрузки между несколькими DNS-, syslog- или radius-серверами. UDP-балансировщик уже интегрирован в репозиторий с исходными текстами nginx и войдёт в состав намеченного на 23 марта выпуска 1.9.13

@zoonman:
zoonman

Недавно обновился с 1.6 на 1.8 и все пыхорелейтед поломалось. Но легким движением руки брюки вида fastcgi_param были заменены на fastcgi.conf и оно ожило.

@Zert:
Zert

Очень ок, пропоную.

@Zert:
Zert

Убунтовцы задрали. То сделают в nginx поддержку модуля Echo, то выпилят. Почему её в последней версии нет?

@Zert:
Zert

Можно ли как-то заставить нгинкс смотреть внутрь архивов? Достаточно какого-нибудь одного формата, tar.gz например. Хочется просто складывать файл на фс, а при доступе к нему отдавать не его, а лезть внутрь и показывать содержимое, ну как с обычной директорией происходит.

@schors:
schors

"В каталоге /usr/share/nginx файл "on" весит 40 гиг, что это за файл? и можно
ли его удалять. Спасибо"

@Melhior:
Melhior

Что-то я начал задумываться чтобы снести nginx из связки nginx-apache и оставить только апач. Статика все равно раздается через CDN.

@AChernakov:
AChernakov

Обработать данные POST-запроса в модуле NGINX - тот еще гемор. И идеология под это подведена сомнительная.

@mrtron:
mrtron

tengine.taobao.org — если кто ещё не видел. китайцы с алибабы запилил свой форк нгинкса, который реализовывает многие фишки платной версии нгинкса, только не за 5 килобаксов в год, а опенсорсно. мержатся с апстримом, но с некоторой задержкой.

@veet:
veet

нгинкс внезапно перекочевал в апстарт. Получил минуту паники после обновления продакшна :)

@INFOMAN:
INFOMAN

nginx, оказывается, не умеет переменные в ssl_certificate/ssl_certificate_key, поэтому написать "ssl_certificate /etc/nginx/ssl/$ssl_cname.pem" и получать $ssl_cname из $ssl_server_name с помощью map не получится.

В то время как в pound можно просто накидать несколько директив Cert подряд и оно из них автоматом выдернет тот, который подходит для представленного SNI хоста.

С другой стороны, в nginx можно переменные в proxy_pass, что позволит с помощью того же map получать адрес бэкенда из имени хоста и не плодить по 7 строк на каждый хостнейм, как в pound. Но для SSL хостов таки придётся как минимум по 6 на каждый (server_name, сертификат, ключ и include общего куска конфига с проксипассом, плюс скобочки). Ну или чем-то генерить.

В общем, печаль и уныние кругом :(

@SolderStain:
SolderStain

жуйк, в OTRS заявлена поддержка FastCGI. Везде где искал, жуткие костыли со fcgiwrap. Кто-то ровное использование видел? Оно возможно?

@maxlapshin:
maxlapshin

Народ, а как в nginx сделана синхронизация между воркерами при скачивании (проксировании) одного и того же урла? Т.е. как воркер узнает, что другой воркер уже качает урл?

@Zert:
Zert

Можно ли как-то сделать так, чтобы nginx по одному и тому же запросу делал proxy_pass на один из проксей из списка? В частности, мне хочется повесить таким образом несколько питоновских сервисов, чтобы смочь в мультипоточность.
P.S. сервис уже есть готовый, предложения переписать всё на г-е, э-е или х-е не принимаются.

@INFOMAN:
INFOMAN

опа, походу nginx таки научили не класть тело запроса в буфер перед отправкой на бэкенд: nginx.org

Надо будет таки попробовать избавиться от pound на серваке с кучей хлама, раскиданного по контейнерам, и сделать всё на nginx через map, а не копипастить на каждый виртуалхост кучу директив.

@Self-Perfection:
Self-Perfection

Всезнающий жуйк, а как бы мне попроще ограничить доступ к определённым урлам на моём веб-сервере для белого списка OpenID адресов? Например, часть мунинских графиков показывать только определённым людям?

Нашёл mod_auth_openid для apache, но печалька: до сих пор обходился nginx, а городить пирог из nginx и Apache не хочется.

@Balancer:
Balancer

Уф. Решил задачу автоматического конфигурирования Docker-связки nginx/host + nginx/container + php-fpm/container. Т.е. чтобы одним скриптом запуска всё соединялось в работающую конфигурацию. Пока всё костыльно, без прав доступа и т.п. Но не придётся придумывать статические порты доступа для контейнеров или вручную прописывать проксирование на nginx-хосте.

@KPEBETKA:
KPEBETKA

Хром такой хром... В nginx.conf прописано ssl_ciphers kEECDH+AES:kEDH+3DES:kRSA+3DES:!eNULL:!aNULL:!DSS;
Идём на хост в огнелисе — заюзывается ECDHE-RSA-AES128-GCM-SHA
Идём в хроме — заюзыватся ECDHE-RSA-AES128-CBC-SHA и пишется что соединение не очень надёжное

Приходится жёстко прописывать приоритет строкой вида ssl_ciphers kEECDH+AESGCM:kEECDH+AES256:kEECDH+AES128:kEDH+3DES:kRSA+3DES:!eNULL:!aNULL:!DSS;

Почему хром не может сразу законнектится с AESGCM сразу? Почему только из под палки?

@lolicon:
lolicon

Мне как-то западло конфигурять конфиги nginx.
Я один такой? Может сделать веб-апликуху?
Но только для себя делать мне лень.

@Graf:
Graf

*linux

Как всегда, вопрос линуксоидам.
Кто-нить дружил UMI.CMS с Nginx + php-fpm?
а то на оффсайте пример конфига нихрена не работает...
Если есть такие, киньте в меня конфигом, нету — тогда рекомендет, шоле...

@rxn:
rxn

Вот есть у меня очень важный сайт который проксирует nginx.
И вот мне надо залить новію версию апликухи, так что-бы не терять клиентов.

Я подниму еще интанс новой апликухи, поправлю конфиг что-бы он проксировал новый инстанс, сделаю nginx -s reload, спокойно прибью старый инстанс.

Это хороший способ или я получу кучу ошибок на клиенте?

@NetMoose:
NetMoose

А может кто-нибудь подсказать что и где в связке nginx+php-fpm крутить, чтобы загрузка файлов пошла через формочку с "multipart/form-data" и методом post? Пока вижу только данные из $_POST но $_FILES пустой.

@schors:
schors

кстати очень недурно про настройку SSL wiki.mozilla.org вообще у мозиллы внезапно всё очень недурно в доках

@schors:
schors

ну держите ещё в пятницу и nginxctl. на самом деле ему уже 8 лет без изменений и автор не я. но чего-то запылился github.com

@thefish:
thefish

А вот вместо того, чтобы лезть в strace, надо читать доки
stackoverflow.com

@schors:
schors

а apache в структуре запроса нет времени окончания обработки запроса. mod_log_config делает очень странный изгиб через одно место, чтобы не дублировать функции взятия времени для одного запроса, а все остальные особо не парясь фигачат apr_time_now(), который внутри для UNIX gettimeofday() со всеми вытекающими. nginx легче. он кидает время аж в массив (хз зачем). и сразу форматирует всякими разными способами. что выглядит громоздко. челодлание какое-то сплошное

@Balancer:
Balancer

Продолжаю постигать дзен Docker'а. Поток мыслей по теме :)

Вот nginx. Отлично контейнеризуется. Делаем минимальный образ и запускаем только его. Официальный nginx весит 100Мб... Многовато, но если хотя бы на десяток контейнеров поделить — копейки. А вот автоматически dockerfile/nginx весит уже аж 500Мб. Посмотрел — они аж из целой Ubuntu его собирают! Вот нафига попу гармонь? Это ж снова попытка сделать из Docker оригинальную LXC! А нужно-то только один голый nginx иметь. При запуске контейнера указать персистентные конфиг и docroot. И всё, больше ничего не нужно. Даже 100Мб — это дофига.

Дальше — больше. nginx'у нужен php-fpm. Прекрасно, он пашет по сетевому интерфейсу, отлично конфигурится в той же Ubuntu (хоть индивидуально модули задавай). То есть, логика простая — запускаем контейнер с nginx, запускаем контейнер с php-fpm, каждый сам по себе, всем хорошо. С обновлениями просто, каждый обновляется отдельно (если я правильно понял, достаточно периодически docker pull делать — и всё). Фигушки. Нет вообще в docker hub'е голого php-fpm! Только в паре с nginx (в лучшем случае, а то целые комбайны). Такое впечатление, что народ сути Docker не только вообще не понимает, но и подумать на этот счёт не хочет :)

Судя по всему, придётся заводить самому в хабе минимальный образ с php-fpm, да ещё писать для народа идеологический how-to :)

@Balancer:
Balancer

В копилку, чтобы потом снова не сочинять. Как отследить в реальном времени все открытия файлов запущенным nginx'ом:

strace $(PP=$(pgrep nginx); echo $PP | sed 's/\([0-9]*\)/\-p \1/g') -e trace=open

@veet:
veet

wiki.nginx.org ух ты, в конфиге nginx можно писать скрипты на lua!

@schors:
schors

популярно почему apache vk.com

@Dimez:
Dimez

Наткнулся на забавный баг.
На офсайте nginx.org собраны nginx'ы для многих дистрибутивов, подключай репу типа да используй.
Однако там nginx собран без поддержки perl, что делает невозможным послать ему HUP (из прилагающихся стартовых скриптов в т.ч.), только restart с погашением процесса и даунтаймом сервиса.

@AlexVK:
AlexVK

Проблема хорошо описана вот здесь nginx.org
В частности
Note that there is no way to specify the catch-all name or the default server using the server_name <nginx.org> directive. This is a property of the listen <nginx.org> directive and not of the server_name <nginx.org> directive.
До обновления директива была
server_name '';
после обновления этот своеобразное catch-all name работать перестало, и сайты отпали,
На одном единственном сервере где в одном единственном конфиге стояло catch-all name ''.

@rwarrior:
rwarrior

А как в nginx писать лог-файлы по разным HTTP статусам?
Я нашёл, что с 1.7 можно сделать так:
map $status $error4xx { ~^4\d\d$ 1; default 0; }
map $status $error5xx { ~^5\d\d$ 1; default 0; }
access_log /var/log/nginx/4xx.log combined if=$error4xx;
access_log /var/log/nginx/5xx.log combined if=$error5xx;

Или можно через location:
error_page 400 /errors/4xx/400.html;
error_page 403 /errors/4xx/403.html;
error_page 408 /errors/4xx/408.html;
error_page 401 405 406 407 409 410 411 412 413 414 415 416 417 /errors/4xx/4xx.html;

error_page 500 /errors/5xx/500.html;
error_page 501 /errors/5xx/501.html;
error_page 502 /errors/5xx/502.html;
error_page 503 /errors/5xx/503.html;
error_page 504 /errors/5xx/504.html;

location ^~ /errors/4xx/ {
internal;
alias /etc/nginx/errors/;
access_log /var/log/nginx/4xx.log;
}

location ^~ /errors/5xx/ {
internal;
alias /etc/nginx/errors/;
access_log /var/log/nginx/5xx.log;
}

Но это костыль. Есть ли более красивый вариант?

@Yurtaev:
Yurtaev

Теперь nginx можно собрать с BoringSSL или LibreSSL на выбор.