Тег nginx

overmind88

Какие-то заморские пидры купили nginx https://www.nginx.com/press...e-netops-and-devops/

overmind88

Посмотрите, что ещё бывает https://github.com/rryqszq4/ngx_php/

ngx_php - как lua, только php

hirthwork

Запросы без заголовка Host: nginx сразу реджектит с 400 Bad Request

overmind88

Вроде бы стопицот раз настраивал в своей жизни nginx, но всё равно бывают ситуации, когда я вообще не понимаю, с какого хуя не работает, казалось бы, простая конфигурация. (а ещё nginx 1.4 не имеет опции -T ><)

unfalse

Наконец запустил nginx, после того, как выковырял из своей vds на винде IIS и Web Deploy. Оказалось, последний занимал 80-й порт. Ставил я его для node.js, но оказалось что он давно заброшен и нода там старая.

Shumaher

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

hirthwork

есть какой-нибудь плагин для nginx, чтобы работал как autoindex, но для картинок тамбнейлы рисовал? Ну и отображение не вертикальным списком, а сеткой

overmind88

А кто-нибудь заводил успешно webdav на nginx?

hirthwork

Long, long time ago at RHEL we had a nginx 1.6.0. И был у того nginx'а кэш, а за кешом стоял бигдатый сервер. А поскольку всё бигдатое требует времени, то был у nginx поставлен proxy_cache_lock_timeout 10m;
Летели дни, кружась проклятым роем, и вот на часть кластера приехал nginx 1.8.0, а в нём, подобно утке в зайце, появился Default: proxy_cache_lock_age 5s;. Все читали релиз ноутсы, да все хуй клали на новые опции. Так и обновили неглядя.
Случился факап, полезли разбираться. Увидели, что через кэш пролезают параллельно несколько запросов с MISS. Охуели. Почитали доки. Нашли proxy_cache_lock_age. Проверили на 1.6.0 — там запросы по честному 10 минут ждут, а вот на 1.8.0 через пять секунд прорыв периметра случается.
Вот такая поучительная история о том, что даже в годных проектах типа nginx иногда меняется поведение параметров при обновлении. Берегите себя и свой продакшен.

overmind88

Каждый раз ебусь со слешами в proxy_pass, proxy_redirect

hirthwork

вот у nginx plus при исчерпании max_conns до апстрима можно указать размер очереди и таймаут жизни запросов в ней. что произойдёт при исчерпании max_conns на обычном nginx? сразу обрубит входящий коннект с ошибкой?

overmind88
hirthwork

Пишу в конфиге nginx:

listen 8080;
location / {
    proxy_pass http://localhost:8081;
    proxy_read_timeout 10s;
}

Во второй консоли делаю nc -l 8081
В третьей консоли делаю curl http://localhost:8080
Через десять секунд получаю 502 Bad Gateway
Во второй консоли ещё раз nc -l 8081
В третьей консоли ещё раз curl http://localhost:8080
Через десять секунд получаю 504 Gateway Timeout

КОНСИСТЕНТНО!

hirthwork

здесь был развёрнутый вопрос про nginx с proxy_pass и rewrite, но мне удалось найти решение, так что придётся тебе, пойнтач, проявить эрудицию где-нибудь в другом месте. сорян.

schors

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

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 общего куска конфига с проксипассом, плюс скобочки). Ну или чем-то генерить.

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

INFOMAN

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

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

andreymal

Как заставить этот ваш gunicorn понимать айпишник из X-Real-IP? Документация меня уверяет, что всё по дефолту настроено на прокси на 127.0.0.1, но хрен там — в environ['REMOTE_ADDR'] стабильно 127.0.0.1, хотя HTTP_X_REAL_IP и HTTP_X_FORWARDED_FOR с настоящим айпишником честно передаются nginx'ом. Да и --forwarded-allow-ips=127.0.0.1 и прочие параметры тоже стабильно игнорируются.

Или неужто переписывать приложение на использование этого самого X-Real-IP? Но это ж крайне костыльно и небезопасно в случае неиспользования прокси...

schors

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

schors

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

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.