From nginx-forum на forum.nginx.org Fri Jun 1 06:39:11 2018 From: nginx-forum на forum.nginx.org (digger) Date: Fri, 01 Jun 2018 02:39:11 -0400 Subject: =?UTF-8?B?0JrQsNC6INGB0LTQtdC70LDRgtGMINGA0LXQtNC40YDQtdC60YIg0L/RgNC4INC/?= =?UTF-8?B?0LXRgNC10L3QvtGB0LUgaHR0cHMt0YHQsNC50YLQsCDQvdCwINC00YDRg9Cz?= =?UTF-8?B?0L7QuSDRgdC10YDQstC10YA/?= Message-ID: <0bf14d3b9ed8c99e4a35992dbe7bdb7b.NginxMailingListRussian@forum.nginx.org> Есть https-сайт, конфигурация nginx которого создана с помощью ISPmanager. Нужно настроить редирект на другой физический сервер, где находится новая версия этого сайта. Редирект нужен для "бесшовного" переезда, чтобы не дожидаться смены IP в записи A сервера DNS. Пре переезде http-сайта делал такую вставку: server { listen 111.111.111.111:80; server_name k-test.ru www.k-test.ru; location / { proxy_pass http://000.000.000.000:80; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; } } Подскажите, пожалуйста, можно ли сделать при помощи nginx аналогичный редирект для https-сайта? Спасибо! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280013,280013#msg-280013 From nginx-forum на forum.nginx.org Fri Jun 1 07:23:56 2018 From: nginx-forum на forum.nginx.org (Dmytro Lavryk) Date: Fri, 01 Jun 2018 03:23:56 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgdC00LXQu9Cw0YLRjCDRgNC10LTQuNGA0LXQutGCINC/0YA=?= =?UTF-8?B?0Lgg0L/QtdGA0LXQvdC+0YHQtSBodHRwcy3RgdCw0LnRgtCwINC90LAg0LQ=?= =?UTF-8?B?0YDRg9Cz0L7QuSDRgdC10YDQstC10YA/?= In-Reply-To: <0bf14d3b9ed8c99e4a35992dbe7bdb7b.NginxMailingListRussian@forum.nginx.org> References: <0bf14d3b9ed8c99e4a35992dbe7bdb7b.NginxMailingListRussian@forum.nginx.org> Message-ID: <5c1dc3029925eaa78b608cdcb0b4af4a.NginxMailingListRussian@forum.nginx.org> Все точно так же по сути... Порты сменить. В чем проблема у Вас? З.Ы.: ISPmanager как и остальные "панельки" - зло неописуемое. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280013,280014#msg-280014 From nginx-forum на forum.nginx.org Tue Jun 5 11:18:12 2018 From: nginx-forum на forum.nginx.org (darksmoke) Date: Tue, 05 Jun 2018 07:18:12 -0400 Subject: =?UTF-8?B?0JrQsNC6INGA0LDQsdC+0YLQsNC10YIgdHJ5IGZpbGVzPw==?= Message-ID: Добрый день Объясните, пожалуйста на пальцах, как работает try_files? Не как не могу разобраться. У мен есть location /test { alias /opt/DATA/www/mp; expires -1; set_from_accept_language $lang en ru ua; # index index_$lang.html; try_files /index_$lang.html /index_ua.html; } В таком виде почему то не находит css и картинки. В логах 10.222.222.222 443 10.44.44.44 2018-06-05T14:15:50+03:00 forward-to - GET /test/icons/diagram.svg HTTP/1.1 404 - 136 0.000 - https://domain.ru/test/ Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 MP_UK=b_pWrf5wxKQ_KmeFYaG2J7Zk-2XzXMh976i_p5GoAs4; _ga=GA1.2.606895225.1527855206 domain.ru Идея такая: Определяем пользовательскую локаль. Загружаем соответствующий файл. Если такого файла нет возращает дефолтный. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280036,280036#msg-280036 From constantine на mellodesign.ru Tue Jun 5 11:36:58 2018 From: constantine на mellodesign.ru (=?UTF-8?B?0JrQvtC90YHRgtCw0L3RgtC40L0g0KLQutCw0YfQtdC90LrQvg==?=) Date: Tue, 5 Jun 2018 14:36:58 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgNCw0LHQvtGC0LDQtdGCIHRyeSBmaWxlcz8=?= In-Reply-To: References: Message-ID: 5 июня 2018 г., 14:18 пользователь darksmoke написал: > Добрый день > Объясните, пожалуйста на пальцах, как работает try_files? Не как не могу > разобраться. > > У мен есть > > location /test { > alias /opt/DATA/www/mp; > expires -1; > > set_from_accept_language $lang en ru ua; > # index index_$lang.html; > try_files /index_$lang.html /index_ua.html; > } > > В таком виде почему то не находит css и картинки. В логах > 10.222.222.222 443 10.44.44.44 2018-06-05T14:15:50+03:00 > forward-to - GET > /test/icons/diagram.svg > HTTP/1.1 404 - 136 0.000 - > https://domain.ru/test/ Mozilla/5.0 (X11; Ubuntu; > Linux x86_64; rv:60.0) Gecko/20100101 > Firefox/60.0 MP_UK=b_pWrf5wxKQ_KmeFYaG2J7Zk-2XzXMh976i_p5GoAs4; > _ga=GA1.2.606895225.1527855206 domain.ru > > Идея такая: > Определяем пользовательскую локаль. Загружаем соответствующий файл. Если > такого файла нет возращает дефолтный. > > Posted at Nginx Forum: https://forum.nginx.org/read. > php?21,280036,280036#msg-280036 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > try_files Проверяет существование файлов в заданном порядке и использует для обработки запроса первый найденный файл В вашем случае все ссылки будут через идти через /index_$lang.html. Чтобы открывались ссылки с css и js должно быть, что-то вроде: try_files $uri /index_$lang.html /index._ua.html; Тогда, сначала проверится путь $uri - например css-файл, если его нет то будет проверятся слдующая директива Тут достаточно подробно расписано https://nginx.org/ru/docs/http/ngx_http_core_module.html#try_files -- С уважением, Константин! Web-разработчик Mello . Best regards, Constantine Mello Web developer. +7-909-385-87-17 ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Tue Jun 5 11:43:03 2018 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Tue, 5 Jun 2018 16:43:03 +0500 Subject: =?UTF-8?B?bmdpbngg0L3QtSDRgNC10LDQs9C40YDRg9C10YIg0L3QsCBIVVA=?= Message-ID: привет! включили GOST в openssl (nginx-1.13.12), неожиданно это привело к тому, что перестали перечитываться конфиги на reload. делаю "strace nginx -s reload": ... write(3, "2018/06/05 14:32:07 [notice] 225"..., 65) = 65 open("/var/run/nginx.pid", O_RDONLY) = 4 pread64(4, "4873\n", 22, 0) = 5 close(4) = 0 kill(4873, SIGHUP) = 0 exit_group(0) = ? +++ exited with 0 +++ с этой стороны пульки улетели. на принимающей стороне - тишина. есть идеи, как это можно потраблшутить ? Илья Шипицин ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Tue Jun 5 11:53:01 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 5 Jun 2018 14:53:01 +0300 Subject: =?UTF-8?B?UmU6IG5naW54INC90LUg0YDQtdCw0LPQuNGA0YPQtdGCINC90LAgSFVQ?= In-Reply-To: References: Message-ID: <20180605115301.GC32137@mdounin.ru> Hello! On Tue, Jun 05, 2018 at 04:43:03PM +0500, Илья Шипицин wrote: > привет! > > включили GOST в openssl (nginx-1.13.12), неожиданно это привело к тому, что > перестали перечитываться конфиги на reload. > > делаю "strace nginx -s reload": > > ... > write(3, "2018/06/05 14:32:07 [notice] 225"..., 65) = 65 > open("/var/run/nginx.pid", O_RDONLY) = 4 > pread64(4, "4873\n", 22, 0) = 5 > close(4) = 0 > kill(4873, SIGHUP) = 0 > exit_group(0) = ? > +++ exited with 0 +++ > > > с этой стороны пульки улетели. > на принимающей стороне - тишина. > > есть идеи, как это можно потраблшутить ? Посмотреть, что при этом происходит в мастере. Если сигнала нет - то искать ранее, кто и зачем его запретил. Скорее всего проблема где-то в OpenSSL и GOST engine. -- Maxim Dounin http://mdounin.ru/ From chipitsine на gmail.com Tue Jun 5 12:19:36 2018 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Tue, 5 Jun 2018 17:19:36 +0500 Subject: =?UTF-8?B?UmU6IG5naW54INC90LUg0YDQtdCw0LPQuNGA0YPQtdGCINC90LAgSFVQ?= In-Reply-To: <20180605115301.GC32137@mdounin.ru> References: <20180605115301.GC32137@mdounin.ru> Message-ID: вт, 5 июн. 2018 г. в 16:53, Maxim Dounin : > Hello! > > On Tue, Jun 05, 2018 at 04:43:03PM +0500, Илья Шипицин wrote: > > > привет! > > > > включили GOST в openssl (nginx-1.13.12), неожиданно это привело к тому, > что > > перестали перечитываться конфиги на reload. > > > > делаю "strace nginx -s reload": > > > > ... > > write(3, "2018/06/05 14:32:07 [notice] 225"..., 65) = 65 > > open("/var/run/nginx.pid", O_RDONLY) = 4 > > pread64(4, "4873\n", 22, 0) = 5 > > close(4) = 0 > > kill(4873, SIGHUP) = 0 > > exit_group(0) = ? > > +++ exited with 0 +++ > > > > > > с этой стороны пульки улетели. > > на принимающей стороне - тишина. > > > > есть идеи, как это можно потраблшутить ? > > Посмотреть, что при этом происходит в мастере. Если сигнала нет - > то искать ранее, кто и зачем его запретил. Скорее всего проблема > где-то в OpenSSL и GOST engine. > странным образом повлияла настройка LimitNOFILE в systemd. > > -- > Maxim Dounin > http://mdounin.ru/ > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From chipitsine на gmail.com Tue Jun 5 12:37:50 2018 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Tue, 5 Jun 2018 17:37:50 +0500 Subject: =?UTF-8?B?0L3QsCDQs9C+0YHRgi3RgdC10YDRgtC40YTQuNC60LDRgtC1IG5naW54INC+0YI=?= =?UTF-8?B?0LTQsNC10YIgMiDRjdC60LfQtdC80L/Qu9GP0YDQsCDRgdC10YDRgtC40YQ=?= =?UTF-8?B?0LjQutCw0YLQsA==?= Message-ID: привет! включили на openssl-1.1.0 поддержку gost engine. (в принципе, подобрали параметры, что все более или менее работает) забавный артефакт, сертификат отдается 2 раза есть идеи, почему так ? (в конфиге прописан 1 раз) /usr/local/bin/openssl s_client -connect medi-api.testkontur.ru -port 443 CONNECTED(00000003) depth=0 emailAddress = chipitsine на skbkontur.ru, C = RU, ST = 66 \D0\A1\D0\B2\D0\B5\D1\80\D0\B4\D0\BB\D0\BE\D0\B2\D1\81\D0\BA\D0\B0\D1\8F \D0\BE\D0\B1\D0\BB\D0\B0\D1\81\D1\82\D1\8C, L = \D0\95\D0\BA\D0\B0\D1\82\D0\B5\D1\80\D0\B8\D0\BD\D0\B1\D1\83\D1\80\D0\B3, O = \D0\90\D0\9E \C2\AB\D0\9F\D0\A4 \C2\AB\D0\A1\D0\9A\D0\91 \D0\9A\D0\BE\D0\BD\D1\82\D1\83\D1\80\C2\BB, CN = *.testkontur.ru verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 emailAddress = chipitsine на skbkontur.ru, C = RU, ST = 66 \D0\A1\D0\B2\D0\B5\D1\80\D0\B4\D0\BB\D0\BE\D0\B2\D1\81\D0\BA\D0\B0\D1\8F \D0\BE\D0\B1\D0\BB\D0\B0\D1\81\D1\82\D1\8C, L = \D0\95\D0\BA\D0\B0\D1\82\D0\B5\D1\80\D0\B8\D0\BD\D0\B1\D1\83\D1\80\D0\B3, O = \D0\90\D0\9E \C2\AB\D0\9F\D0\A4 \C2\AB\D0\A1\D0\9A\D0\91 \D0\9A\D0\BE\D0\BD\D1\82\D1\83\D1\80\C2\BB, CN = *.testkontur.ru verify error:num=21:unable to verify the first certificate verify return:1 --- ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Tue Jun 5 13:26:47 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 5 Jun 2018 16:26:47 +0300 Subject: =?UTF-8?B?UmU6INC90LAg0LPQvtGB0YIt0YHQtdGA0YLQuNGE0LjQutCw0YLQtSBuZ2lueCA=?= =?UTF-8?B?0L7RgtC00LDQtdGCIDIg0Y3QutC30LXQvNC/0LvRj9GA0LAg0YHQtdGA0YI=?= =?UTF-8?B?0LjRhNC40LrQsNGC0LA=?= In-Reply-To: References: Message-ID: <20180605132645.GF32137@mdounin.ru> Hello! On Tue, Jun 05, 2018 at 05:37:50PM +0500, Илья Шипицин wrote: > привет! > > включили на openssl-1.1.0 поддержку gost engine. > > (в принципе, подобрали параметры, что все более или менее работает) > > забавный артефакт, сертификат отдается 2 раза > > есть идеи, почему так ? (в конфиге прописан 1 раз) > > /usr/local/bin/openssl s_client -connect medi-api.testkontur.ru -port 443 > CONNECTED(00000003) > depth=0 emailAddress = chipitsine на skbkontur.ru, C = RU, ST = 66 > \D0\A1\D0\B2\D0\B5\D1\80\D0\B4\D0\BB\D0\BE\D0\B2\D1\81\D0\BA\D0\B0\D1\8F > \D0\BE\D0\B1\D0\BB\D0\B0\D1\81\D1\82\D1\8C, L = > \D0\95\D0\BA\D0\B0\D1\82\D0\B5\D1\80\D0\B8\D0\BD\D0\B1\D1\83\D1\80\D0\B3, O > = \D0\90\D0\9E \C2\AB\D0\9F\D0\A4 \C2\AB\D0\A1\D0\9A\D0\91 > \D0\9A\D0\BE\D0\BD\D1\82\D1\83\D1\80\C2\BB, CN = *.testkontur.ru > verify error:num=20:unable to get local issuer certificate > verify return:1 > depth=0 emailAddress = chipitsine на skbkontur.ru, C = RU, ST = 66 > \D0\A1\D0\B2\D0\B5\D1\80\D0\B4\D0\BB\D0\BE\D0\B2\D1\81\D0\BA\D0\B0\D1\8F > \D0\BE\D0\B1\D0\BB\D0\B0\D1\81\D1\82\D1\8C, L = > \D0\95\D0\BA\D0\B0\D1\82\D0\B5\D1\80\D0\B8\D0\BD\D0\B1\D1\83\D1\80\D0\B3, O > = \D0\90\D0\9E \C2\AB\D0\9F\D0\A4 \C2\AB\D0\A1\D0\9A\D0\91 > \D0\9A\D0\BE\D0\BD\D1\82\D1\83\D1\80\C2\BB, CN = *.testkontur.ru > verify error:num=21:unable to verify the first certificate > verify return:1 > --- А какие основания считать, что сертификат отдаётся два раза, кроме того факта, что s_client для одного и того сертификата - сообщает о двух ошибках? Он и больше умеет, и всё для одного сертификата: $ openssl s_client -connect mdounin.ru:443 CONNECTED(00000003) depth=0 CN = mdounin.ru verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 CN = mdounin.ru verify error:num=27:certificate not trusted verify return:1 depth=0 CN = mdounin.ru verify error:num=21:unable to verify the first certificate verify return:1 --- Certificate chain 0 s:/CN=mdounin.ru i:/O=Root CA/OU=http://www.cacert.org/CN=CA Cert Signing Authority/emailAddress=support на cacert.org --- ... -- Maxim Dounin http://mdounin.ru/ From mdounin на mdounin.ru Tue Jun 5 14:01:49 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 5 Jun 2018 17:01:49 +0300 Subject: nginx-1.15.0 Message-ID: <20180605140149.GI32137@mdounin.ru> Изменения в nginx 1.15.0 05.06.2018 *) Изменение: директива "ssl" теперь считается устаревшей; вместо неё следует использовать параметр ssl директивы listen. *) Изменение: теперь при использовании директивы listen с параметром ssl nginx определяет отсутствие SSL-сертификатов при тестировании конфигурации. *) Добавление: теперь модуль stream умеет обрабатывать несколько входящих UDP-пакетов от клиента в рамках одной сессии. *) Исправление: в директиве proxy_cache_valid можно было указать некорректный код ответа. *) Исправление: nginx не собирался gcc 8.1. *) Исправление: логгирование в syslog останавливалось при изменении локального IP-адреса. *) Исправление: nginx не собирался компилятором clang, если был установлен CUDA SDK; ошибка появилась в 1.13.8. *) Исправление: при использовании unix domain listen-сокетов на FreeBSD в процессе обновления исполняемого файла в логе могли появляться сообщения "getsockopt(TCP_FASTOPEN) ... failed". *) Исправление: nginx не собирался на Fedora 28 Linux. *) Исправление: при использовании директивы limit_req заданная скорость обработки запросов могла не соблюдаться. *) Исправление: в обработке адресов клиентов при использовании unix domain listen-сокетов для работы с датаграммами на Linux. *) Исправление: в обработке ошибок выделения памяти. -- Maxim Dounin http://nginx.org/ From vbart на nginx.com Thu Jun 7 16:12:59 2018 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Thu, 07 Jun 2018 19:12:59 +0300 Subject: =?UTF-8?B?0KDQtdC70LjQtyBVbml0IDEuMg==?= Message-ID: <1722768.q5XBgdJDqM@vbart-workstation> Здравствуйте. Рад сообщить о выпуске новой версии NGINX Unit. Изменения в Unit 1.2 07.06.2018 *) Добавление: настройка переменных окружения для процессов приложений. *) Добавление: установка пути к файлу "php.ini". *) Добавление: установка отдельных опций конфигурации PHP. *) Добавление: настройка аргументов запуска для Go приложений. *) Исправление: соединения в состоянии keep-alive могли подвисать после переконфигурации. Ниже пример новых параметров конфигурации приложений: { "args-example": { "type": "go", "executable": "/path/to/compiled/go/binary", "arguments": ["arg1", "arg2", "arg3"] }, "opts-example": { "type": "php", "root": "/www/site", "script": "phpinfo.php", "options": { "file": "/path/to/php.ini", "admin": { "memory_limit": "256M", "variables_order": "EGPCS", "short_open_tag": "1" }, "user": { "display_errors": "0" } } }, "env-example": { "type": "python", "path": "/www/django", "module": "wsgi", "environment": { "DB_ENGINE": "django.db.backends.postgresql_psycopg2", "DB_NAME": "mydb", "DB_HOST": "127.0.0.1" } } } Обратите внимание, что "environment" можно задавать для приложений на любом языке. Пакеты для дистрибутивов Linux, а также Docker-образы доступны по ссылкам: - Пакеты: https://unit.nginx.org/installation/#precompiled-packages - Docker: https://hub.docker.com/r/nginx/unit/tags/ -- Валентин Бартенев From nginx-forum на forum.nginx.org Sat Jun 9 08:23:53 2018 From: nginx-forum на forum.nginx.org (Romano) Date: Sat, 09 Jun 2018 04:23:53 -0400 Subject: =?UTF-8?B?0JDRgdC40L3RhdGA0L7QvdC90YvQuSDQt9Cw0L/RgNC+0YEg0Log0LHRjdC60LU=?= =?UTF-8?B?0L3QtNGD?= Message-ID: <6de645c44b00248fa8e9b744d729106d.NginxMailingListRussian@forum.nginx.org> Здравствуйте! Возможно заставить работать такую конструкцию? location @cron { ... rewrite ^ /cron.php; fastcgi_pass 127.0.0.1:33333; return 204; } Необходимо отправить запрос в бэкенд, не дожидаясь и не отдавая результата в браузер. В приведенном примере сразу возвращается код 204, без обращения к бекэнду. Если поставить флаг break для rewrite, то запрос произойдёт, но не вернётся код 204. Что посоветуете? Спасибо. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280106,280106#msg-280106 From skobolo на gmail.com Sat Jun 9 08:31:15 2018 From: skobolo на gmail.com (SK) Date: Sat, 9 Jun 2018 11:31:15 +0300 Subject: =?UTF-8?B?UmU6INCQ0YHQuNC90YXRgNC+0L3QvdGL0Lkg0LfQsNC/0YDQvtGBINC6INCx0Y0=?= =?UTF-8?B?0LrQtdC90LTRgw==?= In-Reply-To: <6de645c44b00248fa8e9b744d729106d.NginxMailingListRussian@forum.nginx.org> References: <6de645c44b00248fa8e9b744d729106d.NginxMailingListRussian@forum.nginx.org> Message-ID: http://nginx.org/ru/docs/http/ngx_http_mirror_module.html ? SK > 9 июня 2018 г., в 11:23, Romano написал(а): > > Здравствуйте! Возможно заставить работать такую конструкцию? > > location @cron { > ... > rewrite ^ /cron.php; > fastcgi_pass 127.0.0.1:33333; > > return 204; > } > > Необходимо отправить запрос в бэкенд, не дожидаясь и не отдавая результата в > браузер. В приведенном примере сразу возвращается код 204, без обращения к > бекэнду. Если поставить флаг break для rewrite, то запрос произойдёт, но не > вернётся код 204. Что посоветуете? > > Спасибо. > > Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280106,280106#msg-280106 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx на mva.name Sat Jun 9 08:35:55 2018 From: nginx на mva.name (Vadim A. Misbakh-Soloviov) Date: Sat, 09 Jun 2018 11:35:55 +0300 Subject: =?UTF-8?B?UmU6INCg0LXQu9C40LcgVW5pdCAxLjI=?= In-Reply-To: <1722768.q5XBgdJDqM@vbart-workstation> References: <1722768.q5XBgdJDqM@vbart-workstation> Message-ID: <2019203.ldsQae9MOM@tp> > *) Добавление: установка пути к файлу "php.ini". "системному" или "юзерскому" (которые можно в приложении в виде .user.ini совать)? From nginx-forum на forum.nginx.org Sat Jun 9 09:13:29 2018 From: nginx-forum на forum.nginx.org (Romano) Date: Sat, 09 Jun 2018 05:13:29 -0400 Subject: =?UTF-8?B?UmU6INCQ0YHQuNC90YXRgNC+0L3QvdGL0Lkg0LfQsNC/0YDQvtGBINC6INCx0Y0=?= =?UTF-8?B?0LrQtdC90LTRgw==?= In-Reply-To: References: Message-ID: <302e3142f059e0c838269d93c1f72b53.NginxMailingListRussian@forum.nginx.org> Моя версия nginx, в силу ограниченных ресурсов, не поддерживает данный модуль, штатными средствами никак? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280106,280109#msg-280109 From skobolo на gmail.com Sat Jun 9 09:15:07 2018 From: skobolo на gmail.com (Seva Kobylin) Date: Sat, 9 Jun 2018 12:15:07 +0300 Subject: =?UTF-8?B?UmU6INCQ0YHQuNC90YXRgNC+0L3QvdGL0Lkg0LfQsNC/0YDQvtGBINC6INCx0Y0=?= =?UTF-8?B?0LrQtdC90LTRgw==?= In-Reply-To: <302e3142f059e0c838269d93c1f72b53.NginxMailingListRussian@forum.nginx.org> References: <302e3142f059e0c838269d93c1f72b53.NginxMailingListRussian@forum.nginx.org> Message-ID: А какие есть ограничения? Теоретически можно посмотреть на нерекомендованный post_action > 9 июня 2018 г., в 12:13, Romano написал(а): > > Моя версия nginx, в силу ограниченных ресурсов, не поддерживает данный > модуль, штатными средствами никак? > > Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280106,280109#msg-280109 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From vbart на nginx.com Sat Jun 9 21:27:28 2018 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Sun, 10 Jun 2018 00:27:28 +0300 Subject: =?UTF-8?B?UmU6INCg0LXQu9C40LcgVW5pdCAxLjI=?= In-Reply-To: <2019203.ldsQae9MOM@tp> References: <1722768.q5XBgdJDqM@vbart-workstation> <2019203.ldsQae9MOM@tp> Message-ID: <1587734.29765mkXDb@vbart-laptop> On Saturday, 9 June 2018 11:35:55 MSK Vadim A. Misbakh-Soloviov wrote: > > *) Добавление: установка пути к файлу "php.ini". > > "системному" или "юзерскому" (которые можно в приложении в виде .user.ini > совать)? Системному. К "юзерскому" путь не задается, их php сам ищет начиная от .php скрипта и до директории root. -- Валентин Бартенев From nginx-forum на forum.nginx.org Sun Jun 10 21:51:43 2018 From: nginx-forum на forum.nginx.org (Romano) Date: Sun, 10 Jun 2018 17:51:43 -0400 Subject: =?UTF-8?B?UmU6INCQ0YHQuNC90YXRgNC+0L3QvdGL0Lkg0LfQsNC/0YDQvtGBINC6INCx0Y0=?= =?UTF-8?B?0LrQtdC90LTRgw==?= In-Reply-To: References: Message-ID: <3ad4d38532f101c1d22802a62a65e9f8.NginxMailingListRussian@forum.nginx.org> К сожалению с директивой return не работает. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280106,280112#msg-280112 From nginx-forum на forum.nginx.org Mon Jun 11 00:12:29 2018 From: nginx-forum на forum.nginx.org (Romano) Date: Sun, 10 Jun 2018 20:12:29 -0400 Subject: =?UTF-8?B?0KHQtdGB0YHQuNC+0L3QvdCw0Y8g0L/QtdGA0LXQvNC10L3QvdCw0Y8=?= Message-ID: <3ad512808cc7185b6eb3bd16f4f85968.NginxMailingListRussian@forum.nginx.org> Подскажите, появилась ли такая возможность, чтобы можно было держать значение определенной переменной в течении сессии или соединения в Nginx? Примером такой встроенной переменной является $connection_requests Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280113,280113#msg-280113 From nginx-forum на forum.nginx.org Thu Jun 14 13:32:04 2018 From: nginx-forum на forum.nginx.org (eustas) Date: Thu, 14 Jun 2018 09:32:04 -0400 Subject: =?UTF-8?B?0KHQvtC60LXRgiDQvdC1INC30LDQutGA0YvQstCw0LXRgtGB0Y8g0L/QvtGB0Ls=?= =?UTF-8?B?0LUg0L7RgtC/0YDQsNCy0LrQuCDRgtC10LvQsA==?= Message-ID: <062b132cb85dd60efe88eb8e6725ec4a.NginxMailingListRussian@forum.nginx.org> TL;DR: Похоже что в изменении https://forum.nginx.org/read.php?29,276778,276778 не учтено, что ngx_http_upstream_cache_send может вернуть NGX_DONE не только как результат ngx_http_upstream_process_headers, но и как результат ngx_http_cache_send. В результате соединение висит открытым. https://github.com/eustas/ngx_brotli/issues/11 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280144,280144#msg-280144 From mdounin на mdounin.ru Thu Jun 14 14:21:03 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 14 Jun 2018 17:21:03 +0300 Subject: =?UTF-8?B?UmU6INCh0L7QutC10YIg0L3QtSDQt9Cw0LrRgNGL0LLQsNC10YLRgdGPINC/0L4=?= =?UTF-8?B?0YHQu9C1INC+0YLQv9GA0LDQstC60Lgg0YLQtdC70LA=?= In-Reply-To: <062b132cb85dd60efe88eb8e6725ec4a.NginxMailingListRussian@forum.nginx.org> References: <062b132cb85dd60efe88eb8e6725ec4a.NginxMailingListRussian@forum.nginx.org> Message-ID: <20180614142103.GE32137@mdounin.ru> Hello! On Thu, Jun 14, 2018 at 09:32:04AM -0400, eustas wrote: > TL;DR: Похоже что в изменении > https://forum.nginx.org/read.php?29,276778,276778 не учтено, что > ngx_http_upstream_cache_send может вернуть NGX_DONE не только как результат > ngx_http_upstream_process_headers, но и как результат ngx_http_cache_send. В > результате соединение висит открытым. > > https://github.com/eustas/ngx_brotli/issues/11 А зачем вы пытаетесь возвращать NGX_DONE из фильтра тела ответа? Что вы пытаетесь этим сказать, и из каких соображений решили, что так можно? -- Maxim Dounin http://mdounin.ru/ From nginx-forum на forum.nginx.org Thu Jun 14 14:48:34 2018 From: nginx-forum на forum.nginx.org (eustas) Date: Thu, 14 Jun 2018 10:48:34 -0400 Subject: =?UTF-8?B?UmU6INCh0L7QutC10YIg0L3QtSDQt9Cw0LrRgNGL0LLQsNC10YLRgdGPINC/0L4=?= =?UTF-8?B?0YHQu9C1INC+0YLQv9GA0LDQstC60Lgg0YLQtdC70LA=?= In-Reply-To: <20180614142103.GE32137@mdounin.ru> References: <20180614142103.GE32137@mdounin.ru> Message-ID: <8cd74ddf25640f9e3b1316cf4dcbe817.NginxMailingListRussian@forum.nginx.org> 1) common sense - иначе вышестоящий фильтр не узнает закончилась ли отправка 2) common practice - https://github.com/nginx/nginx/blob/master/src/http/modules/ngx_http_gzip_filter_module.c#L621 и ещё 10 модулей возвращают NGX_DONE 3) документация - "NGX_DONE — Operation complete or continued elsewhere. Also used as an alternative success code" и более никаких объяснений, в каких случаях фильтр может его возвращать. В http://nginx.org/en/docs/dev/development_guide.html#http_building_filter_modules описано только 2 случая - возврат NGX_ERROR и возврат значения полученного от следующего фильтра. Если следовать этому, то из каких соображений можно было бы вернуть NGX_OK? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280144,280146#msg-280146 From mdounin на mdounin.ru Fri Jun 15 10:05:01 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 15 Jun 2018 13:05:01 +0300 Subject: =?UTF-8?B?UmU6INCh0L7QutC10YIg0L3QtSDQt9Cw0LrRgNGL0LLQsNC10YLRgdGPINC/0L4=?= =?UTF-8?B?0YHQu9C1INC+0YLQv9GA0LDQstC60Lgg0YLQtdC70LA=?= In-Reply-To: <8cd74ddf25640f9e3b1316cf4dcbe817.NginxMailingListRussian@forum.nginx.org> References: <20180614142103.GE32137@mdounin.ru> <8cd74ddf25640f9e3b1316cf4dcbe817.NginxMailingListRussian@forum.nginx.org> Message-ID: <20180615100501.GF32137@mdounin.ru> Hello! On Thu, Jun 14, 2018 at 10:48:34AM -0400, eustas wrote: > 1) common sense - иначе вышестоящий фильтр не узнает закончилась ли > отправка Фильтры - пропускают через себя данные, которые им передают. Отправка заканчивается тогда, когда a) источник данных всё передал, и б) не осталось буферизированных где-либо данных. Ни о каком NGX_DONE тут с точки зрения common sense речи не идёт как минимум по двум причинам: - нет семантических отличий от стандартной пары NGX_OK / NGX_AGAIN; - информации недостаточно для выражения состояния "не осталось буферизированных где-либо данных". Но вообще, common sense - плохой источник знаний об API. > 2) common practice - > https://github.com/nginx/nginx/blob/master/src/http/modules/ngx_http_gzip_filter_module.c#L621 > и ещё 10 модулей возвращают NGX_DONE По сслыке - использование кода NGX_DONE во внутренней функции ngx_http_gzip_filter_buffer(), не более того. Про "ещё 10 модулей" - верю (считать лень), но, боюсь, ни одного фильтра среди них вы не найдёте. > 3) документация - "NGX_DONE — Operation complete or continued elsewhere. > Also used as an alternative success code" и более никаких объяснений, в > каких случаях фильтр может его возвращать. Потому a) речь идёт об описании семантики кода, а не о его использовании в конкретных местах, и б) фильтр никогда не может возвращать NGX_DONE. > В > http://nginx.org/en/docs/dev/development_guide.html#http_building_filter_modules > описано только 2 случая - возврат NGX_ERROR и возврат значения полученного > от следующего фильтра. Если следовать этому, то из каких соображений можно > было бы вернуть NGX_OK? Development guide - это всё-таки guide, а не reference. Он показывает, как делать стандартные вещи, но не заменяет чтение кода там, где вы пытаетесь выйти за пределы явно описанного. В общем, выпиливайте NGX_DONE. Фильтры его возвращать не должны, и если вдруг возвращают - последствия непредсказуемы. Странно, что у вас раньше от этого ничего не ломалось - должны были быть серьёзные проблемы из-за некорректной финализации, если она случалась с NGX_DONE. -- Maxim Dounin http://mdounin.ru/ From nginx-forum на forum.nginx.org Fri Jun 15 11:14:32 2018 From: nginx-forum на forum.nginx.org (eustas) Date: Fri, 15 Jun 2018 07:14:32 -0400 Subject: =?UTF-8?B?UmU6INCh0L7QutC10YIg0L3QtSDQt9Cw0LrRgNGL0LLQsNC10YLRgdGPINC/0L4=?= =?UTF-8?B?0YHQu9C1INC+0YLQv9GA0LDQstC60Lgg0YLQtdC70LA=?= In-Reply-To: <20180615100501.GF32137@mdounin.ru> References: <20180615100501.GF32137@mdounin.ru> Message-ID: Спасибо за разъяснения. Перепроверил, действительно только хэндлеры и внутренние функции в модулях возвращают NGX_DONE. С другой стороны ngx_output_chain ожидает что ctx->output_filter может вернуть NGX_DONE. И это весьма дизориентирует, т.к. это как раз тот код, который описывает предполагаемое поведение фильтров. С NGX_DONE работает, в целом, неплохо, до тех пор, пока в стеке хэндлеров не появляются определённые модули. Выпилил, NGINX_DONE, полёт нормальный. Но всё же было бы неплохо где-нибудь задокументировать ожидаемое поведение (возвращаемые значения) для фильтров. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280144,280151#msg-280151 From mdounin на mdounin.ru Fri Jun 15 13:21:02 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 15 Jun 2018 16:21:02 +0300 Subject: =?UTF-8?B?UmU6INCh0L7QutC10YIg0L3QtSDQt9Cw0LrRgNGL0LLQsNC10YLRgdGPINC/0L4=?= =?UTF-8?B?0YHQu9C1INC+0YLQv9GA0LDQstC60Lgg0YLQtdC70LA=?= In-Reply-To: References: <20180615100501.GF32137@mdounin.ru> Message-ID: <20180615132102.GI32137@mdounin.ru> Hello! On Fri, Jun 15, 2018 at 07:14:32AM -0400, eustas wrote: > С другой стороны ngx_output_chain ожидает что ctx->output_filter может > вернуть NGX_DONE. И это весьма дизориентирует, т.к. это как раз тот код, > который описывает предполагаемое поведение фильтров. Это выглядит как leftover со времён до переделки работы подзапросов в nginx 0.7.25. Соответствующая проверка появилась в 174f1e853e1e (0.3.6) для обработки случая, когда соединение закрыто подзапросом, и стоит c->destroyed. И стала ненужной после переделки работы подзапросов в 87b8c44906b5 (0.7.25), а также последующего добавления request reference counting в 67254117b774 и f54b02dbb12b (0.8.11). Ну то есть вернуть из фильтра NGX_DONE по прежнему можно и сейчас - в рамках прежнего смысла этого кода - если стоит c->destroyed, то есть если соединение уже закрыто и запрос уничтожен. Но такое теперь может произойти, только если где-то ошибка и всё совсем плохо. [...] -- Maxim Dounin http://mdounin.ru/ From kpoxa на kpoxa.net Mon Jun 18 10:21:11 2018 From: kpoxa на kpoxa.net (kpoxa) Date: Mon, 18 Jun 2018 13:21:11 +0300 Subject: =?UTF-8?B?0KDQsNC30LLQuNGC0LjQtSBuZ2lueA==?= Message-ID: Добрый день. Искал в интернете информацию о том, куда развивается сейчас nginx и нашел страничку https://trac.nginx.org/nginx/roadmap Исходя из которой не понятно, что такое TBF, просьба рассказать о чем речь, поиск по аббревиатуре не сильно помогает, самое близкое по смыслу было про планировщик очередей трафика, но это не точно. Просьба прояснить, что такое TBF, да и в целом интересно, куда развивается nginx Давно были разговоры про то, что возможно будут какие-то изменения конфига, связанные с макросами или иными конструкциями, позволяющими улучшить конфиги для больших сайтов, чтобы не было или километровых конфигов или куча инклюдов. Будет ли что-то придумано для ситуаций, когда надо сделать один сайт с десятком различных доменных имён и ssl сертификатов? Понятно, что фантазия может быть безграничной :) -- Рустам -------------- next part -------------- An HTML attachment was scrubbed... URL: From maxim на nginx.com Mon Jun 18 10:39:39 2018 From: maxim на nginx.com (Maxim Konovalov) Date: Mon, 18 Jun 2018 13:39:39 +0300 Subject: =?UTF-8?B?UmU6INCg0LDQt9Cy0LjRgtC40LUgbmdpbng=?= In-Reply-To: References: Message-ID: <2f82f202-701e-ff31-481c-4e8259b7dd3b@nginx.com> Рустам, добрый день. On 18/06/2018 13:21, kpoxa wrote: > Добрый день. > > Искал в интернете информацию о том, куда развивается сейчас nginx и > нашел страничку > > https://trac.nginx.org/nginx/roadmap > > Исходя из которой не понятно, что такое TBF, просьба рассказать о > чем речь, поиск по аббревиатуре не сильно помогает, самое близкое по > смыслу было про планировщик очередей трафика, но это не точно. > > Просьба прояснить, что такое TBF, да и в целом интересно, куда > развивается nginx > > Давно были разговоры про то, что возможно будут какие-то изменения > конфига, связанные с макросами или иными конструкциями, позволяющими > улучшить конфиги для больших сайтов, чтобы не было или километровых > конфигов или куча инклюдов. > > Будет ли что-то придумано для ситуаций, когда надо сделать один сайт > с десятком различных доменных имён и ssl сертификатов? > > Понятно, что фантазия может быть безграничной :) > На ближайшие два-три месяца у нас в планах к релизу: - "random" load balancer with "two choices" option, уже закоммичен http://hg.nginx.org/nginx/rev/f2396ecf608b и будет в релизе 1.15.1 в начале июля; - более лучшая поддержка TLS 1.3; - поддержка переменных в директивах ssl_certificate/ssl_certificate_key aka "динамические ssl сертификаты". Возможно, что это про последний пункт в вашем письме. Кроме этого, большие планы по развитию njs как со стороны языка, так и со стороны интеграции с nginx. -- Maxim Konovalov From artist на academ.org Mon Jun 18 12:13:39 2018 From: artist на academ.org (=?utf-8?B?0JHQvtGF0LDQvSDQkNGA0YLQtdC8?=) Date: Mon, 18 Jun 2018 19:13:39 +0700 Subject: =?UTF-8?B?UmU6INCf0L7QtNC00LXRgNC20LrQsCBwcm94eS1wcm90b2NvbCDQsiDRgdGC0L4=?= =?UTF-8?B?0YDQvtC90YMg0LHQtdC60LXQvdC00L7Qsg==?= In-Reply-To: <20170727102103.GM93611@mdounin.ru> References: <20170727102103.GM93611@mdounin.ru> Message-ID: <1591951529324019@web47g.yandex.ru> Здравствуйте! Было бы здорово все-таки - Добавить возможность использования proxy_protocol с proxy_pass в контексте http, либо - Научить real_ip_header смотреть и в X-Real-IP, и в proxy_protocol. Сейчас настраиваю nginx в качестве роутера для http/https (c ssl_preread без использования сертификатов) на фронтенде и понимаю, что при использовании на бэкенде http/https listener'а в одном блоке server { listen 127.0.0.1:80; listen 127.0.0.1:443 ssl proxy_protocol; [...] } настроить http_realip_module проблематично. Надо либо создавать для каждого listener'а свой server, либо отключать http_realip_module и пользоваться дополнительными переменными. 27.07.2017, 17:21, "Maxim Dounin" : > Hello! > > On Thu, Jul 27, 2017 at 10:11:08AM +0300, Максим Куприянов wrote: > >>  Подскажите, пожалуйста, есть ли сейчас в nginx поддержка PROXY-протокола >>  для апстрим серверов (через proxy_pass, или в рамках upstream-секции). В >>  документации нашел только про поддержку приема PROXY-соединений, но вот про >>  бекенды ни слова. > > Есть, но только в модуле stream. > http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_protocol > > В рамках http-модуля он смысла не имеет, так как одно и то же > соединение к бекенду может использоваться для запросов от разных > клиентов. Так что в случае http следует использовать > соответствующие заголовки, такие как X-Real-IP или X-Forwarded-For: > >     proxy_set_header X-Real-IP $remote_addr; >     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > > С этими заголовками умеет работать модуль realip в nginx > (http://nginx.org/en/docs/http/ngx_http_realip_module.html) и > различные модули в других http-серверах. > > -- > Maxim Dounin > http://nginx.org/ > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на forum.nginx.org Tue Jun 19 12:38:49 2018 From: nginx-forum на forum.nginx.org (58v54pms) Date: Tue, 19 Jun 2018 08:38:49 -0400 Subject: =?UTF-8?B?cHJveHkgY2FjaGUga2V5ICRjb29raWUgLi4g0L3QtSDRgNCw0LHQvtGC0LDQtdGC?= =?UTF-8?B?INC10YHQu9C4INC10YHRgtGMIFNldC1Db29raWU6?= Message-ID: <8bbf1a77194ca0ff45d6363f2098e0ac.NginxMailingListRussian@forum.nginx.org> Поставил nginx кешировать запросы с бекенда. Конфиг просейший, ответ бекенда - тоже. Кеширования не происходит. Прошу раъяснить происходящее с опцией proxy_cache_key $cookie_.. (см ниже) debian 9 ; nginx: ii nginx 1.14.0-1~stretch amd64 high performance web server установлен отюсда cat /etc/apt/sources.list.d/nginx.list deb "http://nginx.org/packages/debian/" stretch nginx START конфиг nginx: location / { proxy_cache cache_mytest; proxy_cache_valid 200 600s; proxy_cache_valid any 50s; #тут я использую $cookie_test proxy_cache_key "$scheme$host$request_uri$cookie_test"; #это бекенд proxy_pass http://127.0.0.1:8000; ... END конфиг nginx: START запрос к и ответ от бекенда: > GET / HTTP/1.1 > Host: localhost > User-Agent: curl/7.52.1 > Accept: */* > < HTTP/1.1 200 OK < Server: nginx/1.14.0 < Date: Tue, 19 Jun 2018 12:06:02 GMT < Content-Type: text/html; charset=UTF-8 < Content-Length: 4 < Connection: keep-alive < Set-Cookie: test=ok; path=/ END запрос к и ответ от бекенда. Бекенд выдает всега только test=ok в Set-Cookie: я расчитываю что я указал $cookie_test в proxy_cache_key вот так: proxy_cache_key "$scheme$host$request_uri$cookie_test"; а значит, что ответ бекенда должен !!! _как минимум попасть в кеш_ !!! при первом запросе, но этого не происходит. Если бекенд не выдает < Set-Cookie: test=ok; path=/ то всё кешируется на ура. Почему не работает? И зачем тогда вообще $cookie_* параметры в proxy_cache_key если они просто не работают? P.S. Я могу предположить, что логика nginx при повторных запросах клиента который передает Cookie: test=ok такова, что nginx должен должен увидеть настройку $cookie_test в proxy_cache_key, увидеть что клиент передал куку test и тогда полезть в тот кеш в котором у него закеширован ответ от бекенда где эта кука равнялась ok и отдать запрос клиенту из кеша. То есть при такой настройке он должен проверять значение кук и лезть в правильное место в кеше и отдовать оттуда. я так понимаю nginx делает MD5() от значений в proxy_cache_key то есть в моем примере выше это должно быть так httplocalhost/test=ok где test=ok это значение Cookie: test=ok переданное _от клиента_ в повторном запросе. P.P.S про proxy_ignore_headers "Set-Cookie" я знаю, но я не могу так включать потому что на сайте есть авторизация для пользователей. я хочу чтобы nginx корректно учитывал куки и сохранял в кеш страницы с Set-Cookie если на то есть соответствующая опция в proxy_cache_key ..$cookie_.. . B отдовал из кеша если клиент корректно предаёт свою куку при повторных запросах. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280178,280178#msg-280178 From nginx на mva.name Tue Jun 19 13:01:51 2018 From: nginx на mva.name (Vadim A. Misbakh-Soloviov) Date: Tue, 19 Jun 2018 16:01:51 +0300 Subject: nginx-1.15.0 In-Reply-To: <20180605140149.GI32137@mdounin.ru> References: <20180605140149.GI32137@mdounin.ru> Message-ID: <3206322.38Uvitci8j@tp> А про DTLS нет ничего? А то патч перестал применяться, и новых обновлений патча нету... Не связано ли это с тем, что DTLS впилили в апстрим? From maxim на nginx.com Tue Jun 19 13:19:56 2018 From: maxim на nginx.com (Maxim Konovalov) Date: Tue, 19 Jun 2018 16:19:56 +0300 Subject: nginx-1.15.0 In-Reply-To: <3206322.38Uvitci8j@tp> References: <20180605140149.GI32137@mdounin.ru> <3206322.38Uvitci8j@tp> Message-ID: <39f522b4-3d8b-ef40-2239-c2c859930b9f@nginx.com> On 19/06/2018 16:01, Vadim A. Misbakh-Soloviov wrote: > А про DTLS нет ничего? > А то патч перестал применяться, и новых обновлений патча нету... > > Не связано ли это с тем, что DTLS впилили в апстрим? > Вы про какой патч, Вадим? В 1.15.0 появилась вот такая штука: *) Feature: now the stream module can handle multiple incoming UDP datagrams from a client within a single session. Она позволяет корректно проксировать DTLS трафик. Работает только на системах с поддержкой SO_REUSEPORT и с включенным на соответствующем listen-сокете reuseport, см. nginx.org/r/listen -- Maxim Konovalov From chipitsine на gmail.com Wed Jun 20 05:47:33 2018 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Wed, 20 Jun 2018 10:47:33 +0500 Subject: =?UTF-8?B?0LLQvtC30LzQvtC20L3QvtGB0YLRjCDRhNC40LvRjNGC0YDQsNGG0LjQuCDQtNC7?= =?UTF-8?B?0Y8gZXJyb3JfbG9n?= Message-ID: Добрый день! можно заложить такую возможность, чтобы можно было отключать запись в лог по аналогии с access_log ? пример, при включенных сокетах лог начинает шуметь, это штатно, мы ничего не собираемся с этим делать, хотелось бы перестать видеть это в логе: 2018/06/20 08:44:26 [error] 8712#8712: *652205390 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: X.X.X.X, server: X.X.X.X, request: "GET ....../messages/v1/stream?........................ ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx на mva.name Wed Jun 20 10:14:57 2018 From: nginx на mva.name (Vadim A. Misbakh-Soloviov) Date: Wed, 20 Jun 2018 13:14:57 +0300 Subject: nginx-1.15.0 In-Reply-To: <39f522b4-3d8b-ef40-2239-c2c859930b9f@nginx.com> References: <20180605140149.GI32137@mdounin.ru> <3206322.38Uvitci8j@tp> <39f522b4-3d8b-ef40-2239-c2c859930b9f@nginx.com> Message-ID: <8544640.7WV1bSqvhJ@tp> В письме от вторник, 19 июня 2018 г. 16:19:56 MSK пользователь Maxim Konovalov написал: > On 19/06/2018 16:01, Vadim A. Misbakh-Soloviov wrote: > > А про DTLS нет ничего? > > А то патч перестал применяться, и новых обновлений патча нету... > > > > Не связано ли это с тем, что DTLS впилили в апстрим? > > Вы про какой патч, Вадим? Я про http://nginx.org/patches/dtls/ (последний патч - только под 13.9, а под 15.0 уже нету) Цитата из README: ====== > With the patch, the "listen" directive in the "stream" block now accepts > both "udp" and "ssl" parameters. > The "ssl_protocols" and "proxy_ssl_protocols" directives now accept "DTLSv1" > and "DTLSv1.2" parameters that enable support of corresponding protocols. ====== > В 1.15.0 появилась вот такая штука: > > *) Feature: now the stream module can handle multiple incoming UDP > datagrams from a client within a single session. > > Она позволяет корректно проксировать DTLS трафик. Работает только на > системах с поддержкой SO_REUSEPORT и с включенным на соответствующем > listen-сокете reuseport, см. nginx.org/r/listen Не уверен, что это то же самое :) From maxim на nginx.com Wed Jun 20 10:42:19 2018 From: maxim на nginx.com (Maxim Konovalov) Date: Wed, 20 Jun 2018 13:42:19 +0300 Subject: nginx-1.15.0 In-Reply-To: <8544640.7WV1bSqvhJ@tp> References: <20180605140149.GI32137@mdounin.ru> <3206322.38Uvitci8j@tp> <39f522b4-3d8b-ef40-2239-c2c859930b9f@nginx.com> <8544640.7WV1bSqvhJ@tp> Message-ID: <3bc07898-e651-e855-b397-1cf3b6abe4a4@nginx.com> On 20/06/2018 13:14, Vadim A. Misbakh-Soloviov wrote: > В письме от вторник, 19 июня 2018 г. 16:19:56 MSK пользователь Maxim Konovalov > написал: >> On 19/06/2018 16:01, Vadim A. Misbakh-Soloviov wrote: >>> А про DTLS нет ничего? >>> А то патч перестал применяться, и новых обновлений патча нету... >>> >>> Не связано ли это с тем, что DTLS впилили в апстрим? >> >> Вы про какой патч, Вадим? > > Я про http://nginx.org/patches/dtls/ (последний патч - только под 13.9, а под > 15.0 уже нету) > > Цитата из README: > > ====== >> With the patch, the "listen" directive in the "stream" block now accepts >> both "udp" and "ssl" parameters. > >> The "ssl_protocols" and "proxy_ssl_protocols" directives now accept "DTLSv1" >> and "DTLSv1.2" parameters that enable support of corresponding protocols. > ====== > >> В 1.15.0 появилась вот такая штука: >> >> *) Feature: now the stream module can handle multiple incoming UDP >> datagrams from a client within a single session. >> >> Она позволяет корректно проксировать DTLS трафик. Работает только на >> системах с поддержкой SO_REUSEPORT и с включенным на соответствующем >> listen-сокете reuseport, см. nginx.org/r/listen > > Не уверен, что это то же самое :) Это другое, да. Патч по ссылке про терминацию SSL для DTLS. С этим патчем интересная история. За год с момента его публикации мы не получили сколь-либо внятных описаний юзкейсов. В основном люди после этого патча бесследно пропадают. Два фидбэка от тех, кто выжил: - "все ок" -- что ок так и не стало ясно; - "все ок, но чтобы это имело смысл, нужен уметь coap в nginx". Вот вы его как используете, если не секрет? -- Maxim Konovalov From mdounin на mdounin.ru Wed Jun 20 12:28:48 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 20 Jun 2018 15:28:48 +0300 Subject: =?UTF-8?B?UmU6INCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0YTQuNC70YzRgtGA0LDRhtC40Lgg?= =?UTF-8?B?0LTQu9GPIGVycm9yX2xvZw==?= In-Reply-To: References: Message-ID: <20180620122848.GN32137@mdounin.ru> Hello! On Wed, Jun 20, 2018 at 10:47:33AM +0500, Илья Шипицин wrote: > можно заложить такую возможность, чтобы можно было отключать запись в лог > по аналогии с access_log ? Сейчас существует возможность для error log'ов управлять уровнем логгирования. Как либо расширять эту функциональность - планов нет. > пример, при включенных сокетах лог начинает шуметь, это штатно, мы ничего > не собираемся с этим делать, хотелось бы перестать видеть это в логе: > > 2018/06/20 08:44:26 [error] 8712#8712: *652205390 recv() failed (104: > Connection reset by peer) while proxying upgraded connection, client: > X.X.X.X, server: X.X.X.X, request: "GET > ....../messages/v1/stream?........................ Сообщения уровня error должны появляться только в случае, если ошибка возникает со стороны бэкенда. Если такие сообщения возникают при ошибках со стороны клиента - приносите подробности, будем разбираться. Если ошибками сыпет бэкенд и вы не хотите ничего с этим делать - то спрятать такие сообщения можно, подняв уровень логгирования в соответствующем location'е до crit. -- Maxim Dounin http://mdounin.ru/ From nginx-forum на forum.nginx.org Wed Jun 20 16:03:50 2018 From: nginx-forum на forum.nginx.org (Aleksandr_Petrov) Date: Wed, 20 Jun 2018 12:03:50 -0400 Subject: =?UTF-8?B?0JrQsNC6INGA0LDQsdC+0YLQsNC10YIgaW5jbHVkZQ==?= Message-ID: <23a7c484f0e3a56bd9d8d2adf082dbb7.NginxMailingListRussian@forum.nginx.org> Подскажите пожалуйста как работает include в конфиге nginx. Указываю три include в секцию server, в предположение что они добавят нужный конфиг в порядке следования, но в результате работает не так как ожидается. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280194,280194#msg-280194 From nginx-ru на sadok.spb.ru Wed Jun 20 16:10:42 2018 From: nginx-ru на sadok.spb.ru (Dmitry Ivanov) Date: Wed, 20 Jun 2018 19:10:42 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgNCw0LHQvtGC0LDQtdGCIGluY2x1ZGU=?= In-Reply-To: <23a7c484f0e3a56bd9d8d2adf082dbb7.NginxMailingListRussian@forum.nginx.org> References: <23a7c484f0e3a56bd9d8d2adf082dbb7.NginxMailingListRussian@forum.nginx.org> Message-ID: <816074202.20180620191042@sadok.spb.ru> Здравствуйте, Aleksandr_Petrov. Вы писали 20 июня 2018 г., 19:03:50: > Подскажите пожалуйста как работает include в конфиге nginx. Указываю три > include в секцию server, в предположение что они добавят нужный конфиг в > порядке следования, но в результате работает не так как ожидается. nginx -T поможет -- С уважением, Dmitry nginx-ru на sadok.spb.ru From nginx-forum на forum.nginx.org Wed Jun 20 17:18:43 2018 From: nginx-forum на forum.nginx.org (rihad) Date: Wed, 20 Jun 2018 13:18:43 -0400 Subject: =?UTF-8?B?0J7RgtC60YDRi9GC0YvQtSDRhNCw0LnQu9GLINGA0LDRgdGC0YPRgiDQv9C+0YE=?= =?UTF-8?B?0LvQtSDQvtCx0L3QvtCy0LvQtdC90LjRjyDQtNC+IDEuMTQ=?= Message-ID: После обновления nginx с 1.12 до 1.14 на FreeBSD 10 открытые удаленные файлы (lsof +L1) стремительно растут для nginx. В обеих версиях один конфиг, и одни опции постройки. OPTIONS_FILE_SET+=DSO OPTIONS_FILE_SET+=FILE_AIO OPTIONS_FILE_SET+=THREADS OPTIONS_FILE_SET+=HTTP OPTIONS_FILE_SET+=HTTP_CACHE OPTIONS_FILE_SET+=HTTP_GZIP_STATIC OPTIONS_FILE_SET+=HTTP_REALIP OPTIONS_FILE_SET+=HTTP_REWRITE OPTIONS_FILE_SET+=HTTP_SSL OPTIONS_FILE_SET+=HTTPV2 OPTIONS_FILE_SET+=STREAM_SSL_PREREAD OPTIONS_FILE_SET+=BROTLI Используется proxy_cache_path /usr/home/nginx/cache/foo/html levels=1:2 keys_zone=foo:64m inactive=1d max_size=8g; Единственный выход пока - периодически запускать service nginx reload (SIGHUP) - тогда старые воркеры отмирают и освобождают занятые дескрипторы. Есть еще сетапы с nginx 1.12 - там lsof +L1 тоже показывает такие файлы, но они измеряются в нескольких десятках и не растут. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280196#msg-280196 From nginx-forum на forum.nginx.org Wed Jun 20 17:22:10 2018 From: nginx-forum на forum.nginx.org (rihad) Date: Wed, 20 Jun 2018 13:22:10 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: References: Message-ID: Вот на данный момент через 1 час 20 минут после последнего SIGHUP: $ sudo lsof +L1 | grep -w ^nginx | wc -l 39903 $ sysctl kern.openfiles kern.openfiles: 64706 (разницу можно игнорировать, там и postgres есть, я sysctl привел просто чтобы показать что они оба растут). Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280197#msg-280197 From chipitsine на gmail.com Wed Jun 20 17:29:51 2018 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Wed, 20 Jun 2018 22:29:51 +0500 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: References: Message-ID: OPTIONS_FILE_SET+=BROTLI это недефолтная настройка ? у нас примерно такой набор модулей. есть инсталяции на freebsd. но кешем не пользуемся спецэффекта не наблюдаем попробуйте на вашей сборке прогнать тесты вот эти https://github.com/nginx/nginx-tests ? ср, 20 июн. 2018 г. в 22:22, rihad : > Вот на данный момент через 1 час 20 минут после последнего SIGHUP: > > $ sudo lsof +L1 | grep -w ^nginx | wc -l > 39903 > $ sysctl kern.openfiles > kern.openfiles: 64706 > > (разницу можно игнорировать, там и postgres есть, я sysctl привел просто > чтобы показать что они оба растут). > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,280196,280197#msg-280197 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Wed Jun 20 18:13:27 2018 From: nginx-forum на forum.nginx.org (rihad) Date: Wed, 20 Jun 2018 14:13:27 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: References: Message-ID: Илья Шипицин Wrote: ------------------------------------------------------- > OPTIONS_FILE_SET+=BROTLI > > это недефолтная настройка ? Недефолтная. > > у нас примерно такой набор модулей. есть инсталяции на freebsd. > но кешем не пользуемся > > спецэффекта не наблюдаем > Потому что кешем не пользуетесь ) > > попробуйте на вашей сборке прогнать тесты вот эти > https://github.com/nginx/nginx-tests ? > А для чего? Одни конфиг, одни опции сборки, этого глюка нет на 1.12 и есть на 1.14. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280200#msg-280200 From nginx-forum на forum.nginx.org Wed Jun 20 18:58:52 2018 From: nginx-forum на forum.nginx.org (Dmytro Lavryk) Date: Wed, 20 Jun 2018 14:58:52 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: References: Message-ID: <350e47c180330e56827a4fb3a2d1a63a.NginxMailingListRussian@forum.nginx.org> BROTLI off cache: fastcgi_cache_path /var/tmp/nginx/fastcgi_cache levels=1:2 keys_zone= ССС:100m inactive=240m; lsof +L1 | grep -w ^nginx | wc -l 20 sysctl kern.openfiles kern.openfiles: 3481 reload последний раз был не помню точно когда... как раз как версия 1.14 в портах вышла - пересобрал и ребутнул. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280201#msg-280201 From nginx-forum на forum.nginx.org Wed Jun 20 19:05:12 2018 From: nginx-forum на forum.nginx.org (rihad) Date: Wed, 20 Jun 2018 15:05:12 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: <350e47c180330e56827a4fb3a2d1a63a.NginxMailingListRussian@forum.nginx.org> References: <350e47c180330e56827a4fb3a2d1a63a.NginxMailingListRussian@forum.nginx.org> Message-ID: Dmytro Lavryk Wrote: ------------------------------------------------------- > BROTLI off > > cache: > fastcgi_cache_path /var/tmp/nginx/fastcgi_cache levels=1:2 keys_zone= > ССС:100m inactive=240m; > > lsof +L1 | grep -w ^nginx | wc -l > 20 > > sysctl kern.openfiles > kern.openfiles: 3481 > > reload последний раз был не помню точно когда... как раз как версия > 1.14 в портах вышла - пересобрал и ребутнул. Brotli убрать к сожалению не вариант, да и зачем воркараундить, HTTP/2+Brotli, Accept-Encoding: br - норма в наши дни. Причем еще раз замечу что такой сетап работает без глюков с 1.12. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280202#msg-280202 From nginx-forum на forum.nginx.org Wed Jun 20 19:10:16 2018 From: nginx-forum на forum.nginx.org (Dmytro Lavryk) Date: Wed, 20 Jun 2018 15:10:16 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: References: <350e47c180330e56827a4fb3a2d1a63a.NginxMailingListRussian@forum.nginx.org> Message-ID: <550999926f61203f0a38e801069e4bdd.NginxMailingListRussian@forum.nginx.org> Я не уверен, что проблема именно в Brotli... Просто показал что есть. Завтра, если будет время - поппробую там же пересобрать с Brotli, подправить конфиг и отправить в работу. Понаблюдаю. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280203#msg-280203 From gmm на csdoc.com Wed Jun 20 19:27:23 2018 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 20 Jun 2018 22:27:23 +0300 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: References: <350e47c180330e56827a4fb3a2d1a63a.NginxMailingListRussian@forum.nginx.org> Message-ID: <3781b3cc-a0fa-38ee-2730-fa19fb82836d@csdoc.com> On 20.06.2018 22:05, rihad wrote: > Brotli убрать к сожалению не вариант Довольно странное занятие для сервера - вытаскивать несжатые страницы из кеша и потом тратить время и процессор сервера на компрессию этих страниц новым и модным алгоритмом brotli. Гораздо лучше будет научить backend сжимать страницы по алгоритму gzip и складывать в кеш уже сжатый контент, не забыв при этом включить gunzip чтобы контент распаковывался на лету для тех, кто не поддерживает gzip. Причем, backend может сжимать страницы с помощью gzip -9 - в этом случае brotli вряд ли будет сжимать контент лучше, и уж точно он не будет работать быстрее и экономнее по CPU. > HTTP/2+Brotli, Accept-Encoding: br - норма в наши дни. Интересно, какой браузер умеет только br и не умеет gzip ? > Причем еще раз замечу что такой сетап работает без глюков с 1.12. Проблема явно не в nginx, а в этом стороннем модуле. -- Best regards, Gena From nginx-forum на forum.nginx.org Wed Jun 20 20:52:52 2018 From: nginx-forum на forum.nginx.org (ngnx8810773a83) Date: Wed, 20 Jun 2018 16:52:52 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: <550999926f61203f0a38e801069e4bdd.NginxMailingListRussian@forum.nginx.org> References: <350e47c180330e56827a4fb3a2d1a63a.NginxMailingListRussian@forum.nginx.org> <550999926f61203f0a38e801069e4bdd.NginxMailingListRussian@forum.nginx.org> Message-ID: Мы тут для теста попытались включить brotli (как раз на 1.14, на 1.12 не пробовали).. Быстро прибежали разъяренные разработчики и сказали что все плохо, относително копеешная посещаемость на тесте минут за 15 приводила к 500-кам (502). Выключение (в конфиге, сам нгинкс не пересобирали и динамические модули не используются) проблему сняло. дальше пока копять времени небыло, раззбор отложили на потом, но по симптомам похоже, что дескрипторов не хватало. Это фронт, своего контента нет вообще и все получается через проксипасы и активно кешируется в прокси кеше. FreeBSD 11.1 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280205#msg-280205 From nginx-forum на forum.nginx.org Thu Jun 21 05:15:12 2018 From: nginx-forum на forum.nginx.org (rihad) Date: Thu, 21 Jun 2018 01:15:12 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: <3781b3cc-a0fa-38ee-2730-fa19fb82836d@csdoc.com> References: <3781b3cc-a0fa-38ee-2730-fa19fb82836d@csdoc.com> Message-ID: Gena Makhomed Wrote: ------------------------------------------------------- > On 20.06.2018 22:05, rihad wrote: > > > Brotli убрать к сожалению не вариант > > Довольно странное занятие для сервера - вытаскивать несжатые страницы > из кеша и потом тратить время и процессор сервера на компрессию > этих страниц новым и модным алгоритмом brotli. Да, знаю, на практике мизер по cpu из-за многоуровневного кэша. Вопрос даже не в этом, а в том, что: > > > Причем еще раз замечу что такой сетап работает без глюков с 1.12. > > Проблема явно не в nginx, а в этом стороннем модуле. > От этого ничуть не легче ( Т.к. в 1.12 вся эта связка не глючила с FD leak. Правда и archivers/brotli тоже обновился с 0.6.0 до 1.0.4 Лечишь секьюрные дырки (в данном случае обновление дыры libressl потребовало перестройки и обновления nginx) и вот такие скрытые дыры. > -- > Best regards, > Gena > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280209#msg-280209 From nginx-forum на forum.nginx.org Thu Jun 21 06:58:44 2018 From: nginx-forum на forum.nginx.org (rihad) Date: Thu, 21 Jun 2018 02:58:44 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: References: <3781b3cc-a0fa-38ee-2730-fa19fb82836d@csdoc.com> Message-ID: Отлключение компрессии brotli на лету решило проблему утечки FD: brotli off; Теперь осталось понять почему оно глючит. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280210#msg-280210 From nginx-forum на forum.nginx.org Thu Jun 21 07:10:47 2018 From: nginx-forum на forum.nginx.org (Dmytro Lavryk) Date: Thu, 21 Jun 2018 03:10:47 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: <550999926f61203f0a38e801069e4bdd.NginxMailingListRussian@forum.nginx.org> References: <350e47c180330e56827a4fb3a2d1a63a.NginxMailingListRussian@forum.nginx.org> <550999926f61203f0a38e801069e4bdd.NginxMailingListRussian@forum.nginx.org> Message-ID: <147316265302499a2b8a94f8f11d6156.NginxMailingListRussian@forum.nginx.org> Собрал, включил, перезапустил. Работает часа 3. Описаного эффекта не наблюдается - все работает. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280211#msg-280211 From nginx-forum на forum.nginx.org Thu Jun 21 07:21:49 2018 From: nginx-forum на forum.nginx.org (rihad) Date: Thu, 21 Jun 2018 03:21:49 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: <147316265302499a2b8a94f8f11d6156.NginxMailingListRussian@forum.nginx.org> References: <350e47c180330e56827a4fb3a2d1a63a.NginxMailingListRussian@forum.nginx.org> <550999926f61203f0a38e801069e4bdd.NginxMailingListRussian@forum.nginx.org> <147316265302499a2b8a94f8f11d6156.NginxMailingListRussian@forum.nginx.org> Message-ID: <1be1629f3e0d139bc3f77843a7ccb048.NginxMailingListRussian@forum.nginx.org> Dmytro Lavryk Wrote: ------------------------------------------------------- > Собрал, включил, перезапустил. > Работает часа 3. Описаного эффекта не наблюдается - все работает. Точно зажимает? Попробуйте плиз на своем ресурсе запросить что-то по https. curl -H 'Accept-Encoding: br' -I https://example.com/ Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280212#msg-280212 From nginx-forum на forum.nginx.org Thu Jun 21 07:25:14 2018 From: nginx-forum на forum.nginx.org (Dmytro Lavryk) Date: Thu, 21 Jun 2018 03:25:14 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: <1be1629f3e0d139bc3f77843a7ccb048.NginxMailingListRussian@forum.nginx.org> References: <350e47c180330e56827a4fb3a2d1a63a.NginxMailingListRussian@forum.nginx.org> <550999926f61203f0a38e801069e4bdd.NginxMailingListRussian@forum.nginx.org> <147316265302499a2b8a94f8f11d6156.NginxMailingListRussian@forum.nginx.org> <1be1629f3e0d139bc3f77843a7ccb048.NginxMailingListRussian@forum.nginx.org> Message-ID: <913dd0aaf0b9c504701a0f8011d32539.NginxMailingListRussian@forum.nginx.org> Точно. Там люди ходят. Не самые посещаемые сайты, но все же... curl -H 'Accept-Encoding: br' -I https://site.address/ HTTP/2 200 server: nginx date: Thu, 21 Jun 2018 07:23:26 GMT content-type: text/html; charset=windows-1251 vary: Accept-Encoding set-cookie: PHPSESSID=ec9c7427c1ee83392f44a606f0dc8245; path=/; HttpOnly expires: Thu, 19 Nov 1981 08:52:00 GMT cache-control: no-store, no-cache, must-revalidate pragma: no-cache strict-transport-security: max-age=31536000; always content-encoding: br Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280213#msg-280213 From nginx-forum на forum.nginx.org Thu Jun 21 07:53:38 2018 From: nginx-forum на forum.nginx.org (Aleksandr_Petrov) Date: Thu, 21 Jun 2018 03:53:38 -0400 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgNCw0LHQvtGC0LDQtdGCIGluY2x1ZGU=?= In-Reply-To: <816074202.20180620191042@sadok.spb.ru> References: <816074202.20180620191042@sadok.spb.ru> Message-ID: Dmitry Ivanov Wrote: ------------------------------------------------------- > Здравствуйте, Aleksandr_Petrov. > > Вы писали 20 июня 2018 г., 19:03:50: > > > Подскажите пожалуйста как работает include в конфиге nginx. Указываю > три > > include в секцию server, в предположение что они добавят нужный > конфиг в > > порядке следования, но в результате работает не так как ожидается. > > nginx -T > > поможет > > -- > С уважением, > Dmitry nginx-ru на sadok.spb.ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Как раз после "nginx -T" и возник вопрос. Получается что конфиг из внешнего файла вставляется не в том же месте где include и не в порядке следования если include несколько подряд. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280194,280214#msg-280214 From nginx-forum на forum.nginx.org Thu Jun 21 09:17:15 2018 From: nginx-forum на forum.nginx.org (rihad) Date: Thu, 21 Jun 2018 05:17:15 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: <913dd0aaf0b9c504701a0f8011d32539.NginxMailingListRussian@forum.nginx.org> References: <350e47c180330e56827a4fb3a2d1a63a.NginxMailingListRussian@forum.nginx.org> <550999926f61203f0a38e801069e4bdd.NginxMailingListRussian@forum.nginx.org> <147316265302499a2b8a94f8f11d6156.NginxMailingListRussian@forum.nginx.org> <1be1629f3e0d139bc3f77843a7ccb048.NginxMailingListRussian@forum.nginx.org> <913dd0aaf0b9c504701a0f8011d32539.NginxMailingListRussian@forum.nginx.org> Message-ID: <8cbd313585ab1c3810bf576511d1424c.NginxMailingListRussian@forum.nginx.org> Dmytro Lavryk Wrote: ------------------------------------------------------- > Точно. Там люди ходят. Не самые посещаемые сайты, но все же... > > curl -H 'Accept-Encoding: br' -I https://site.address/ > ... > content-encoding: br Вы используете brotli on? Контент ложится в кэш br, или в сыром виде и зажимается на лету? Можете посмотреть файл, просто грепните по ключу что используется в fastcgi_cache_key Например если у вас $http_host$uri и вы запросили https://site.address/ то ищется по nice sudo fgrep -ax 'KEY: site.address/' /path/to/nginx/cache -rl это даст название файла кэша в котором лежит https://site.address/ и который сможете открыть через less и посмотреть тело. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280218#msg-280218 From nginx-forum на forum.nginx.org Thu Jun 21 09:49:56 2018 From: nginx-forum на forum.nginx.org (Dmytro Lavryk) Date: Thu, 21 Jun 2018 05:49:56 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: <8cbd313585ab1c3810bf576511d1424c.NginxMailingListRussian@forum.nginx.org> References: <350e47c180330e56827a4fb3a2d1a63a.NginxMailingListRussian@forum.nginx.org> <550999926f61203f0a38e801069e4bdd.NginxMailingListRussian@forum.nginx.org> <147316265302499a2b8a94f8f11d6156.NginxMailingListRussian@forum.nginx.org> <1be1629f3e0d139bc3f77843a7ccb048.NginxMailingListRussian@forum.nginx.org> <913dd0aaf0b9c504701a0f8011d32539.NginxMailingListRussian@forum.nginx.org> <8cbd313585ab1c3810bf576511d1424c.NginxMailingListRussian@forum.nginx.org> Message-ID: # cat brotli.conf.inc brotli on; brotli_min_length 200; brotli_comp_level 6; brotli_types text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/richtext image/svg+xml application/atom+xml application/rss+xml text/plain text/xsd text/xsl text/xml image/bmp application/java application/msword application/vnd.ms-fontobject application/x-msdownload image/x-icon image/webp application/json application/vnd.ms-access application/vnd.ms-project application/x-font-otf application/vnd.ms-opentype application/vnd.oasis.opendocument.database application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.formula application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.text audio/ogg application/pdf application/vnd.ms-powerpoint application/x-shockwave-flash image/tiff application/x-font-ttf audio/wav application/vnd.ms-write application/font-woff application/font-woff2 application/vnd.ms-excel; ________ файл в кеше не пожатый: # cat ./1/06/0fd94fd936530048a3e935a3266c8061 ��+[��������qs+[���l] KEY: httpsGETsite.address/ �Set-Cookie: PHPSESSID=bc1f4cae0acd1de9a9782ffdfb9d9d00; path=/; HttpOnly Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Content-type: text/html; charset=windows-1251 .... Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280219#msg-280219 From gmm на csdoc.com Thu Jun 21 10:42:49 2018 From: gmm на csdoc.com (Gena Makhomed) Date: Thu, 21 Jun 2018 13:42:49 +0300 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: References: Message-ID: On 20.06.2018 20:18, rihad wrote: > После обновления nginx с 1.12 до 1.14 на FreeBSD 10 открытые удаленные файлы > (lsof +L1) стремительно растут для nginx. > В обеих версиях один конфиг, и одни опции постройки. > > OPTIONS_FILE_SET+=BROTLI Судя по файлу https://github.com/freebsd/freebsd-ports/blob/master/www/nginx/Makefile.extmod у Вас используется BROTLI_LIB_DEPENDS= libbrotlicommon.so:archivers/brotli BROTLI_GH_TUPLE= eustas:ngx_brotli:37ab9b2:brotli BROTLI_VARS= DSO_EXTMODS+=brotli eustas:ngx_brotli - это глючная версия модуля, которая приводит к утечке сокетов, недавно этот вопрос обсуждался в этой же рассылке: http://mailman.nginx.org/pipermail/nginx-ru/2018-June/061206.html После этого обсуждения eustas поправил в своем форке проблему: https://github.com/eustas/ngx_brotli/commit/e26248ee361c04e25f581b92b85d95681bdffb39 Но порт FreeBSD ссылается на глючную версию 37ab9b2 от 17 апреля 2018. Версия с исправленным глюком - это e26248e https://github.com/google/ngx_brotli/compare/master...eustas:master Соответственно, Вам надо связаться с ответственным за порт https://github.com/freebsd/freebsd-ports/tree/master/www/nginx чтобы тот поправил ссылку на модуль eustas:ngx_brotli Или сообщите разработчику eustas о проблеме, чтобы тот сам связался с тем, кто занимается портом nginx, чтобы тот поправил ссылку на модуль eustas:ngx_brotli Если проблему в портах уже исправили, но просто забыли обновить содержимое портов на github - тогда Вам достаточно будет просто пересобрать nginx заново из портов и проблема будет устранена. -- Best regards, Gena From alex.hha на gmail.com Thu Jun 21 10:52:21 2018 From: alex.hha на gmail.com (Alex Domoradov) Date: Thu, 21 Jun 2018 13:52:21 +0300 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: References: Message-ID: > Или сообщите разработчику eustas о проблеме, > чтобы тот сам связался с тем, кто занимается портом nginx, > чтобы тот поправил ссылку на модуль eustas:ngx_brotli извиняюсь за оффтопик, но это было мощно :D On Thu, Jun 21, 2018 at 1:42 PM Gena Makhomed wrote: > On 20.06.2018 20:18, rihad wrote: > > > После обновления nginx с 1.12 до 1.14 на FreeBSD 10 открытые удаленные > файлы > > (lsof +L1) стремительно растут для nginx. > > В обеих версиях один конфиг, и одни опции постройки. > > > > OPTIONS_FILE_SET+=BROTLI > > Судя по файлу > > https://github.com/freebsd/freebsd-ports/blob/master/www/nginx/Makefile.extmod > > у Вас используется > > BROTLI_LIB_DEPENDS= libbrotlicommon.so:archivers/brotli > BROTLI_GH_TUPLE= eustas:ngx_brotli:37ab9b2:brotli > BROTLI_VARS= DSO_EXTMODS+=brotli > > eustas:ngx_brotli - это глючная версия модуля, которая приводит > к утечке сокетов, недавно этот вопрос обсуждался в этой же рассылке: > http://mailman.nginx.org/pipermail/nginx-ru/2018-June/061206.html > > После этого обсуждения eustas поправил в своем форке проблему: > > https://github.com/eustas/ngx_brotli/commit/e26248ee361c04e25f581b92b85d95681bdffb39 > > Но порт FreeBSD ссылается на глючную версию 37ab9b2 от 17 апреля 2018. > > Версия с исправленным глюком - это e26248e > https://github.com/google/ngx_brotli/compare/master...eustas:master > > Соответственно, Вам надо связаться с ответственным за порт > https://github.com/freebsd/freebsd-ports/tree/master/www/nginx > чтобы тот поправил ссылку на модуль eustas:ngx_brotli > > Или сообщите разработчику eustas о проблеме, > чтобы тот сам связался с тем, кто занимается портом nginx, > чтобы тот поправил ссылку на модуль eustas:ngx_brotli > > Если проблему в портах уже исправили, но просто забыли обновить > содержимое портов на github - тогда Вам достаточно будет просто > пересобрать nginx заново из портов и проблема будет устранена. > > -- > Best regards, > Gena > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Thu Jun 21 14:41:25 2018 From: nginx-forum на forum.nginx.org (rihad) Date: Thu, 21 Jun 2018 10:41:25 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: References: Message-ID: Спасибо, отписал майнтейнеру порта www/nginx joneum@ Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280225#msg-280225 From nginx-forum на forum.nginx.org Thu Jun 21 14:43:00 2018 From: nginx-forum на forum.nginx.org (ZZZ) Date: Thu, 21 Jun 2018 10:43:00 -0400 Subject: =?UTF-8?B?0J3QtSDRgNCw0LHQvtGC0LDQtdGCIHByb3h5IGNhY2hlIGxvY2s=?= Message-ID: <10f5d443f6043478a16f53e6e730ba29.NginxMailingListRussian@forum.nginx.org> Доброго утра! Я напоролся на проблему с proxy_cache_lock. Ниже минимальный конфиг, на который я шлю порядка 150 простых запросов в секунду. Каждые пять секунд, когда инвализируется кеш, на апстрим уходит от пяти до двадцати запросов, в зависимости от времени ответа апстрима, тогда как я жду, что уйдёт только один запрос, а остальные будут ждать его обработки. Отключени proxy_cache_lock не влияет на проблему никак. user nginx; worker_processes 2; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main escape=json '$time_iso8601 $request_id ' '$remote_addr $request_length $host "$request" "$http_referer" "$http_user_agent" ' '$request_time $status $body_bytes_sent'; access_log /var/log/nginx/access.log main; proxy_cache_path /var/cache/nginx/CACHE levels=1:2 keys_zone=CACHE:16m; server { listen 80 default_server; listen [::]:80 default_server; proxy_cache CACHE; proxy_cache_lock on; proxy_cache_lock_age 10s; proxy_cache_lock_timeout 20s; proxy_cache_valid 200 5s; proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie Vary; proxy_set_header Host HOST; location / { proxy_pass https://HOST; } } } Запускаю вот таким образом: $ docker run --rm -it -v (pwd)/nginx.conf:/etc/nginx/nginx.conf:ro -p 80:80 nginx:alpine Пробовал версии, от 1.10 до 1.15. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280226,280226#msg-280226 From pluknet на nginx.com Thu Jun 21 15:40:58 2018 From: pluknet на nginx.com (Sergey Kandaurov) Date: Thu, 21 Jun 2018 18:40:58 +0300 Subject: =?UTF-8?B?UmU6INCd0LUg0YDQsNCx0L7RgtCw0LXRgiBwcm94eSBjYWNoZSBsb2Nr?= In-Reply-To: <10f5d443f6043478a16f53e6e730ba29.NginxMailingListRussian@forum.nginx.org> References: <10f5d443f6043478a16f53e6e730ba29.NginxMailingListRussian@forum.nginx.org> Message-ID: > On 21 Jun 2018, at 17:43, ZZZ wrote: > > Доброго утра! > > Я напоролся на проблему с proxy_cache_lock. Ниже минимальный конфиг, на > который я шлю порядка 150 простых запросов в секунду. Каждые пять секунд, > когда инвализируется кеш, на апстрим уходит от пяти до двадцати запросов, в http://nginx.org/r/proxy_cache_use_stale/ru “дополнительный параметр updating разрешает использовать устаревший закэшированный ответ, если на данный момент он уже обновляется” -- Sergey Kandaurov From nginx-forum на forum.nginx.org Thu Jun 21 17:06:29 2018 From: nginx-forum на forum.nginx.org (ZZZ) Date: Thu, 21 Jun 2018 13:06:29 -0400 Subject: =?UTF-8?B?UmU6INCd0LUg0YDQsNCx0L7RgtCw0LXRgiBwcm94eSBjYWNoZSBsb2Nr?= In-Reply-To: References: Message-ID: Спасибо, но мне не нужен stale. Мне нужна именно блокировка. После инвалидации кеша клиент не должен получить старых данных. Sergey Kandaurov Wrote: ------------------------------------------------------- > > On 21 Jun 2018, at 17:43, ZZZ wrote: > > > > Доброго утра! > > > > Я напоролся на проблему с proxy_cache_lock. Ниже минимальный конфиг, > на > > который я шлю порядка 150 простых запросов в секунду. Каждые пять > секунд, > > когда инвализируется кеш, на апстрим уходит от пяти до двадцати > запросов, в > > http://nginx.org/r/proxy_cache_use_stale/ru > > “дополнительный параметр updating разрешает использовать устаревший > закэшированный ответ, если на данный момент он уже обновляется” > > -- > Sergey Kandaurov > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280227,280229#msg-280229 From andrey на kopeyko.ru Thu Jun 21 17:27:34 2018 From: andrey на kopeyko.ru (Andrey Kopeyko) Date: Thu, 21 Jun 2018 20:27:34 +0300 Subject: =?UTF-8?B?UmU6INCd0LUg0YDQsNCx0L7RgtCw0LXRgiBwcm94eSBjYWNoZSBsb2Nr?= In-Reply-To: <10f5d443f6043478a16f53e6e730ba29.NginxMailingListRussian@forum.nginx.org> References: <10f5d443f6043478a16f53e6e730ba29.NginxMailingListRussian@forum.nginx.org> Message-ID: ZZZ писал 2018-06-21 17:43: > Доброго утра! Добрый день! > Я напоролся на проблему с proxy_cache_lock. Ниже минимальный конфиг, на > который я шлю порядка 150 простых запросов в секунду. Каждые пять > секунд, > когда инвализируется кеш, на апстрим уходит от пяти до двадцати > запросов, в > зависимости от времени ответа апстрима, Вероятно, у вас значения proxy_{connect,send,read}_timeout в 5-20 раз меньше времени ответа вашего бэкенда. И цикл - лочим кеш и отправляем запрос на бэкенд - запрос таймаутится успевает повториться несколько раз. Другая версия - срабатывает proxy_cache_lock_age Посмотрите по логам - эти лишние запросы отправляются на бэкенд равномерно в течение времени его неответа? или "пачкой" после первого запроса? -- Best regards, Andrey A. Kopeyko From nginx-forum на forum.nginx.org Thu Jun 21 18:03:32 2018 From: nginx-forum на forum.nginx.org (ZZZ) Date: Thu, 21 Jun 2018 14:03:32 -0400 Subject: =?UTF-8?B?UmU6INCd0LUg0YDQsNCx0L7RgtCw0LXRgiBwcm94eSBjYWNoZSBsb2Nr?= In-Reply-To: References: Message-ID: К сожалению, не всё так просто. Ответ бекенда сильно меньше секунды, а умолчания для proxy_{connect,send,read}_timeout аж минута. Чтобы уберится, что дело точно не в этом, сделал так: proxy_connect_timeout 1h; proxy_send_timeout 1h; proxy_read_timeout 1h; Я, всё же, думаю, что это баг nginx'а и блокировка там не атомарная, за счёт чего происходит гонка. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280230,280231#msg-280231 From nginx-forum на forum.nginx.org Thu Jun 21 20:01:09 2018 From: nginx-forum на forum.nginx.org (ZZZ) Date: Thu, 21 Jun 2018 16:01:09 -0400 Subject: =?UTF-8?B?UmU6INCd0LUg0YDQsNCx0L7RgtCw0LXRgiBwcm94eSBjYWNoZSBsb2Nr?= In-Reply-To: References: Message-ID: Прошу прощения, пропустил вторую часть ответа. С proxy_cache_lock_age и proxy_cache_lock_age я уже игрался. Никакого влияния на ситуацию не заметил. Равномерность трудно проверить, так как запросов довольно много и какие-то флуктуации-таки есть. Но похоже что да, равномерно. Прямо полное ощущение, что proxy_cache_lock не работает вообще. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280230,280233#msg-280233 From nginx-forum на forum.nginx.org Fri Jun 22 06:23:49 2018 From: nginx-forum на forum.nginx.org (Dothris) Date: Fri, 22 Jun 2018 02:23:49 -0400 Subject: curl: Empty reply from server nginx/1.12.0 Message-ID: Добрый день! Используется: nginx -V nginx version: nginx/1.12.0 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' Делаю запрос curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' там дальше запрос и URL В логах вижу запись с 200 кодом Дальше делаю еще раз запрос curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' там дальше запрос и URL И получаю ответ curl: (52) Empty reply from server А в логах nginx пусто! Изменил error_log путь до лога debug; Остановил nginx. Запустил nginx-debug. И все равно пусто. Что может быть? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280241,280241#msg-280241 From nginx-forum на forum.nginx.org Fri Jun 22 08:12:26 2018 From: nginx-forum на forum.nginx.org (BieZax) Date: Fri, 22 Jun 2018 04:12:26 -0400 Subject: =?UTF-8?B?0JLRgNC10LzRjyAg0LfQsNC/0LjRgdC4ICDQsiDQu9C+0LM=?= Message-ID: <91ac3d02a11f73a41e2397560c24b042.NginxMailingListRussian@forum.nginx.org> Добрый день. Есть такая схема nginx(ubuntu) -> nginx(freebsd) -> БЕ Есть проблемный запрос, который обрабатывался более 20 секунд [16/Jun/2018:15:41:15 +0300] "GET /123" request_time=20.483 upstream_response_time=20.483 upstream_addr=10.10.10.10:80" "200" "nginx/1.10.1/289427" Тот же запрос (это точно) на следующем nginx: 2018-06-16T15:40:54+03:00 "GET /123" request_time=0.031 upstream_response_time=0.031 upstream_addr=unix:/tmp/nginx_news.socket" "200" Время на всех серверах синхронизировано. Как я понял из того, что удалось нагуглить, то запись в лог происходит только после того, как клиент получил ответ на запрос. Т.е. теоретически время в логе может отличаться только на дельту между upstream_response_time и request_time. Первый nginx стоковый,из коробки в ubuntu. А вот про второй nginx известно, что он может быть собран с какими-то самописными модулями. Правильно ли я понимаю, что вышеописанная ситуация невозможна, со стандартными nginx, и проблему стоит искать на втором сервере, или я ошибаюсь? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280243,280243#msg-280243 From kpoxa на kpoxa.net Fri Jun 22 09:47:24 2018 From: kpoxa на kpoxa.net (kpoxa) Date: Fri, 22 Jun 2018 12:47:24 +0300 Subject: =?UTF-8?B?0J/QtdGA0LXQvNC10L3QvdCw0Y8g0YEg0LjQvNC10L3QtdC8INGE0LDQudC70LAg?= =?UTF-8?B?0L3QsCDQtNC40YHQutC1ICjRhNC40YfQsCDRgNC10LrQstC10YHRgik=?= Message-ID: Добрый день. В nginx сейчас нет переменной, которая бы содержала имя файла на диске для локальных файлов. $request_filename не подходит, т.к. содержит в себе и GET параметры. Переменная нужна для фильтрации доступов, например, её было бы хорошо использовать в map. Сейчас единственный способ зафильтровать по расширению имени файла это сделать location, но иногда этот способ сильно не удобен, т.к. вместо map $real_name $my_access { "~.js$" 404; default 0; } server { location /111/ { if ($my access) {} } } надо делать вложенные локейшены что сильно нагромождает конфиг -- Рустам From kovalkov на fastvps.ru Fri Jun 22 10:23:21 2018 From: kovalkov на fastvps.ru (Dmitriy Kovalkov) Date: Fri, 22 Jun 2018 13:23:21 +0300 Subject: =?UTF-8?B?0JDQvdCw0LvQvtCzINGE0YPQvdC60YbQuNC+0L3QsNC70LAgSW5jbHVkZU9wdGlv?= =?UTF-8?B?bmFsINCyIEFwYWNoZTI=?= Message-ID: Приветствуем! Уточните, пожалуйста, планируется ли к реализации или можно ли запросить аналог на https://httpd.apache.org/docs/2.4/mod/core.html#includeoptional Юзкейс простой - есть панель управления сервером, которая генерирует виртуальные хосты для пользователей вида server { server_name DOMAIN.TLD ; listen IPv4_ADDR:443 ssl http2; listen [IPv6_ADDR]:443 ssl http2; ssl_certificate '/var/www/httpd-cert/DOMAIN.TLD_2018-06-21-18-54-45.crt'; ssl_certificate_key '/var/www/httpd-cert/DOMAIN.TLD_2018-06-21-18-54-45.key'; gzip on; gzip_min_length 1024; gzip_proxied expired no-cache no-store private auth; gzip_types text/css image/x-ico application/pdf image/jpeg image/png image/gif application/javascript application/x-javascript application/x-pointplus; disable_symlinks if_not_owner from=$root_path; set $root_path /var/www/USER/data/www/DOMAIN.TLD; root $root_path; location / { proxy_pass http://127.0.0.1:81; proxy_redirect http://127.0.0.1:81/ /; include /etc/nginx/proxy_params; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf|ico)$ { try_files $uri $uri/ @fallback; expires 30d; } location @fallback { proxy_pass http://127.0.0.1:81; proxy_redirect http://127.0.0.1:81/ /; include /etc/nginx/proxy_params; } include /etc/nginx/fastpanel2-sites/USER/DOMAIN.TLD.includes; include /etc/nginx/fastpanel2-includes/*.conf; error_log /var/www/USER/data/logs/DOMAIN.TLD-frontend.error.log; access_log /var/www/USER/data/logs/DOMAIN.TLD-frontend.access.log; } server { listen IPv4_ADDR:80; listen [IPv6_ADDR]:80; server_name DOMAIN.TLD ; return 301 https://$host$request_uri; } Для некоторых хостов требуются кастомные локейшены, например include /etc/nginx/fastpanel2-sites/USER/DOMAIN.TLD.includes; Но эти кастомные локейшены требуются довольно редко, что приводит к тому, что мы создаем большое количество пустых файлов. Спасибо! --- Respectfully, Dmitrii Kovalkov FASTVPS technical department ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From pavel2000 на ngs.ru Fri Jun 22 10:37:24 2018 From: pavel2000 на ngs.ru (Pavel) Date: Fri, 22 Jun 2018 17:37:24 +0700 Subject: =?UTF-8?B?UmU6INCQ0L3QsNC70L7QsyDRhNGD0L3QutGG0LjQvtC90LDQu9CwIEluY2x1ZGVP?= =?UTF-8?B?cHRpb25hbCDQsiBBcGFjaGUy?= In-Reply-To: References: Message-ID: On Fri, 22 Jun 2018 13:23:21 +0300 Dmitriy Kovalkov wrote: > Но эти кастомные локейшены требуются довольно редко, что > приводит к тому, что мы создаем большое количество пустых файлов. Не вижу сложности не создавать большое количество пустых файлов. При заполнении custom.include проверить/актуализировать конфиг виртхоста пользователя, добавив недостающий include. Cоответственно при операции nginx reload потребуется меньше проверок и она будет происходить чуть быстрее. > Спасибо! > --- > Respectfully, Dmitrii Kovalkov >FASTVPS technical department From arut на nginx.com Fri Jun 22 11:14:20 2018 From: arut на nginx.com (Roman Arutyunyan) Date: Fri, 22 Jun 2018 14:14:20 +0300 Subject: =?UTF-8?B?UmU6INCd0LUg0YDQsNCx0L7RgtCw0LXRgiBwcm94eSBjYWNoZSBsb2Nr?= In-Reply-To: Message-ID: <14d0d9ed-c6a8-4c93-b4e8-789c94e6ff1d@email.android.com> Вложение в формате HTML было извлечено… URL: From alex на vorona.com.ua Fri Jun 22 12:38:45 2018 From: alex на vorona.com.ua (Alex Vorona) Date: Fri, 22 Jun 2018 15:38:45 +0300 Subject: =?UTF-8?B?UmU6INCf0LXRgNC10LzQtdC90L3QsNGPINGBINC40LzQtdC90LXQvCDRhNCw0Lk=?= =?UTF-8?B?0LvQsCDQvdCwINC00LjRgdC60LUgKNGE0LjRh9CwINGA0LXQutCy0LXRgdGC?= =?UTF-8?B?KQ==?= In-Reply-To: References: Message-ID: <96eaef28-cd66-30ca-b1da-0b0921817e60@vorona.com.ua> Здравствуйте, 22.06.18 12:47, kpoxa wrote: > Добрый день. [...] > $request_filename не подходит, т.к. содержит в себе и GET параметры. А что мешает отрезать параметры через regexp map ? -- Alex Vorona From andrey на kopeyko.ru Fri Jun 22 12:48:50 2018 From: andrey на kopeyko.ru (Andrey Kopeyko) Date: Fri, 22 Jun 2018 15:48:50 +0300 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8gINC30LDQv9C40YHQuCAg0LIg0LvQvtCz?= In-Reply-To: <91ac3d02a11f73a41e2397560c24b042.NginxMailingListRussian@forum.nginx.org> References: <91ac3d02a11f73a41e2397560c24b042.NginxMailingListRussian@forum.nginx.org> Message-ID: BieZax писал 2018-06-22 11:12: > Добрый день. Добрый день! > [16/Jun/2018:15:41:15 +0300] "GET /123" request_time=20.483 > upstream_response_time=20.483 upstream_addr=10.10.10.10:80" "200" > "nginx/1.10.1/289427" > > Тот же запрос (это точно) на следующем nginx: > 2018-06-16T15:40:54+03:00 "GET /123" request_time=0.031 > upstream_response_time=0.031 upstream_addr=unix:/tmp/nginx_news.socket" > "200" А покажите директиву log_format которой вы логи пишете - подозреваю, что там у вас простая опечатка, и вместо upstream_response_time вы записываете значение request_time. Если бы логи писались верно - значение upstream_response_time на первом nginx совпадало бы со значением request_time на втором nginx. Потому что временА записи ответов - примерно соответствуют происходящему: - бэкенд быстро сгенерил ответ - nginx-2 быстро передал ответ nginx-1 (request_time=0.031) - nginx-1 затратил 20 сек на отдачу ответа клиенту -- Best regards, Andrey A. Kopeyko From nginx-forum на forum.nginx.org Fri Jun 22 15:11:45 2018 From: nginx-forum на forum.nginx.org (BieZax) Date: Fri, 22 Jun 2018 11:11:45 -0400 Subject: =?UTF-8?B?UmU6INCS0YDQtdC80Y8gINC30LDQv9C40YHQuCAg0LIg0LvQvtCz?= In-Reply-To: References: Message-ID: <67190a988d23cef9a0291f7d64e91cf1.NginxMailingListRussian@forum.nginx.org> Реальный лог выглядит немного по-другому. В том, что я прислал реальные значения только времени и времени ответов, остально поправил, что-бы не светить служебную информацию. В значениях никакой ошибки нет, как и сомнений в том, что это один и тот же запрос. Вопрос в том, возможна ли такая ситуация, если оба nginx работают штатно, и если возможна, то в каком случае. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280243,280251#msg-280251 From nginx-forum на forum.nginx.org Fri Jun 22 15:25:00 2018 From: nginx-forum на forum.nginx.org (nickolay) Date: Fri, 22 Jun 2018 11:25:00 -0400 Subject: =?UTF-8?B?0JLQvtGA0LrQtdGAINC/0LDQtNCw0LXRgiDQsiDQutC+0YDQutGDINC/0L4gU0lH?= =?UTF-8?B?U0VHViAo0YEg0L/RgNC40LzQtdGA0L7QvCk=?= Message-ID: Всех приветствую! Есть простой perl-модуль, который работает под nginx без проблем на древних версиях (кажется до 1.7), а на свежих версиях nginx этот модуль приводит к тому, что воркеры начинают падать в корку по SIGSEGV. Разобрал модуль до мелочей и нашёл, что всё падает на send_http_header(). Вот пример этого модуля: package post_download; use nginx; use strict; sub handler { my $r = shift; $r->send_http_header("text/plain"); $r->print("OK\n"); return OK; } Воркеры падают не на каждый такой запрос, а после нескольких таких запросов. Подключается этот модуль обычным способом: perl_require /etc/nginx/perl/post_download.pm; 100% баг наблюдается на двух версиях: 1.12.2 и на 1.15.0. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280252,280252#msg-280252 From kpoxa на kpoxa.net Fri Jun 22 17:09:03 2018 From: kpoxa на kpoxa.net (kpoxa) Date: Fri, 22 Jun 2018 20:09:03 +0300 Subject: =?UTF-8?B?UmU6INCf0LXRgNC10LzQtdC90L3QsNGPINGBINC40LzQtdC90LXQvCDRhNCw0Lk=?= =?UTF-8?B?0LvQsCDQvdCwINC00LjRgdC60LUgKNGE0LjRh9CwINGA0LXQutCy0LXRgdGC?= =?UTF-8?B?KQ==?= In-Reply-To: <96eaef28-cd66-30ca-b1da-0b0921817e60@vorona.com.ua> References: <96eaef28-cd66-30ca-b1da-0b0921817e60@vorona.com.ua> Message-ID: Добрый день. То, что параметр используется для пробивания кешей. 22 июня 2018 г., 15:38 пользователь Alex Vorona написал: > Здравствуйте, > > 22.06.18 12:47, kpoxa wrote: >> >> Добрый день. > > [...] >> >> $request_filename не подходит, т.к. содержит в себе и GET параметры. > > > А что мешает отрезать параметры через regexp map ? > > -- > Alex Vorona > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From alex на vorona.com.ua Sat Jun 23 06:35:25 2018 From: alex на vorona.com.ua (Alex Vorona) Date: Sat, 23 Jun 2018 09:35:25 +0300 Subject: =?UTF-8?B?UmU6INCf0LXRgNC10LzQtdC90L3QsNGPINGBINC40LzQtdC90LXQvCDRhNCw0Lk=?= =?UTF-8?B?0LvQsCDQvdCwINC00LjRgdC60LUgKNGE0LjRh9CwINGA0LXQutCy0LXRgdGC?= =?UTF-8?B?KQ==?= In-Reply-To: References: <96eaef28-cd66-30ca-b1da-0b0921817e60@vorona.com.ua> Message-ID: <015bf804-4377-e240-fc99-b65540d134e3@vorona.com.ua> Привет, 22.06.18 20:09, kpoxa wrote: > Добрый день. > > То, что параметр используется для пробивания кешей. Ну так используйте $request_filename в ключе кэша, чтобы пробивания работали, а переменную на базе $request_filename, но без параметров - для фильтрации доступов. -- Alex Vorona From mdounin на mdounin.ru Sat Jun 23 14:05:55 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Sat, 23 Jun 2018 17:05:55 +0300 Subject: curl: Empty reply from server nginx/1.12.0 In-Reply-To: References: Message-ID: <20180623140554.GT32137@mdounin.ru> Hello! On Fri, Jun 22, 2018 at 02:23:49AM -0400, Dothris wrote: [...] > Делаю запрос > > curl -X POST --header 'Content-Type: application/json' --header 'Accept: > application/json' там дальше запрос и URL > > В логах вижу запись с 200 кодом > > Дальше делаю еще раз запрос > curl -X POST --header 'Content-Type: application/json' --header 'Accept: > application/json' там дальше запрос и URL > И получаю ответ curl: (52) Empty reply from server > > А в логах nginx пусто! > > Изменил error_log путь до лога debug; > Остановил nginx. Запустил nginx-debug. > > > И все равно пусто. > > Что может быть? Скорее всего проблема в том, что запрос - не доходит до nginx'а. Я бы рекомендовал начать с "curl -v" и сверки IP-адресов, если не поможет - смотреть внимательно, что происходит в сети. -- Maxim Dounin http://mdounin.ru/ From mdounin на mdounin.ru Sat Jun 23 14:14:39 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Sat, 23 Jun 2018 17:14:39 +0300 Subject: =?UTF-8?B?UmU6INCf0LXRgNC10LzQtdC90L3QsNGPINGBINC40LzQtdC90LXQvCDRhNCw0Lk=?= =?UTF-8?B?0LvQsCDQvdCwINC00LjRgdC60LUgKNGE0LjRh9CwINGA0LXQutCy0LXRgdGC?= =?UTF-8?B?KQ==?= In-Reply-To: References: Message-ID: <20180623141439.GU32137@mdounin.ru> Hello! On Fri, Jun 22, 2018 at 12:47:24PM +0300, kpoxa wrote: > Добрый день. > > В nginx сейчас нет переменной, которая бы содержала имя файла на диске > для локальных файлов. > > $request_filename не подходит, т.к. содержит в себе и GET параметры. Переменная $request_filename - не содержит в себе GET-параметры. Она содержит ровно то имя файла, которое nginx будет использовать при возврате ответа с диска. -- Maxim Dounin http://mdounin.ru/ From kpoxa на kpoxa.net Mon Jun 25 15:11:19 2018 From: kpoxa на kpoxa.net (kpoxa) Date: Mon, 25 Jun 2018 18:11:19 +0300 Subject: =?UTF-8?B?UmU6INCf0LXRgNC10LzQtdC90L3QsNGPINGBINC40LzQtdC90LXQvCDRhNCw0Lk=?= =?UTF-8?B?0LvQsCDQvdCwINC00LjRgdC60LUgKNGE0LjRh9CwINGA0LXQutCy0LXRgdGC?= =?UTF-8?B?KQ==?= In-Reply-To: <20180623141439.GU32137@mdounin.ru> References: <20180623141439.GU32137@mdounin.ru> Message-ID: Да, реально мой косяк, чуть другой кейс пробовал. -- Рустам 23 июня 2018 г., 17:14 пользователь Maxim Dounin написал: > Hello! > > On Fri, Jun 22, 2018 at 12:47:24PM +0300, kpoxa wrote: > >> Добрый день. >> >> В nginx сейчас нет переменной, которая бы содержала имя файла на диске >> для локальных файлов. >> >> $request_filename не подходит, т.к. содержит в себе и GET параметры. > > Переменная $request_filename - не содержит в себе GET-параметры. > Она содержит ровно то имя файла, которое nginx будет использовать > при возврате ответа с диска. > > -- > Maxim Dounin > http://mdounin.ru/ > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From nginx-forum на forum.nginx.org Tue Jun 26 08:42:06 2018 From: nginx-forum на forum.nginx.org (imsystem) Date: Tue, 26 Jun 2018 04:42:06 -0400 Subject: image_filter size Message-ID: Здравствуйте. Есть модуль https://nginx.ru/ru/docs/http/ngx_http_image_filter_module.html В нём есть директива image_filter size; Так вот, извините за глупый вопрос, где посмотреть ответ данной директивы? И возможно его вытащить в переменную? Задачка простая - уменьшать картинки, с этим проблем нет. С недавних пор понадобилось поворачивать картинки у которых высота меньше ширины. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280277,280277#msg-280277 From mdounin на mdounin.ru Wed Jun 27 03:11:04 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 27 Jun 2018 06:11:04 +0300 Subject: =?UTF-8?B?UmU6INCQ0L3QsNC70L7QsyDRhNGD0L3QutGG0LjQvtC90LDQu9CwIEluY2x1ZGVP?= =?UTF-8?B?cHRpb25hbCDQsiBBcGFjaGUy?= In-Reply-To: References: Message-ID: <20180627031103.GB35731@mdounin.ru> Hello! On Fri, Jun 22, 2018 at 01:23:21PM +0300, Dmitriy Kovalkov wrote: > Уточните, пожалуйста, планируется ли к реализации или можно ли запросить > аналог на https://httpd.apache.org/docs/2.4/mod/core.html#includeoptional > > Юзкейс простой - есть панель управления сервером, которая генерирует > виртуальные хосты для пользователей вида [...] > include /etc/nginx/fastpanel2-sites/USER/DOMAIN.TLD.includes; > include /etc/nginx/fastpanel2-includes/*.conf; [...] > Для некоторых хостов требуются кастомные локейшены, например include > /etc/nginx/fastpanel2-sites/USER/DOMAIN.TLD.includes; > > Но эти кастомные локейшены требуются довольно редко, что приводит к тому, > что мы создаем большое количество пустых файлов. Если очень хочется избежать создания пустых файлов - можно использовать include с маской. При использовании маски - под маску может не подпасть ни одного файла, и это нормально. То есть можно написать как-то так: include /etc/nginx/fastpanel2-sites/USER/DOMAIN.TLD.include[s]; и будет использоваться указанный файл, если он есть. -- Maxim Dounin http://mdounin.ru/ From mdounin на mdounin.ru Wed Jun 27 03:30:29 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 27 Jun 2018 06:30:29 +0300 Subject: image_filter size In-Reply-To: References: Message-ID: <20180627033029.GC35731@mdounin.ru> Hello! On Tue, Jun 26, 2018 at 04:42:06AM -0400, imsystem wrote: > Здравствуйте. > Есть модуль https://nginx.ru/ru/docs/http/ngx_http_image_filter_module.html > В нём есть директива image_filter size; > Так вот, извините за глупый вопрос, где посмотреть ответ данной директивы? И > возможно его вытащить в переменную? Посмотреть ответ - http-ответе на запрос к соответствующему location'у. Вытащить в переменную - проще всего в браузере, но можно попробовать и, скажем, njs'ом. -- Maxim Dounin http://mdounin.ru/ From mdounin на mdounin.ru Wed Jun 27 04:14:55 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 27 Jun 2018 07:14:55 +0300 Subject: =?UTF-8?B?UmU6INCa0LDQuiDRgNCw0LHQvtGC0LDQtdGCIGluY2x1ZGU=?= In-Reply-To: References: <816074202.20180620191042@sadok.spb.ru> Message-ID: <20180627041454.GE35731@mdounin.ru> Hello! On Thu, Jun 21, 2018 at 03:53:38AM -0400, Aleksandr_Petrov wrote: > Dmitry Ivanov Wrote: > ------------------------------------------------------- > > Здравствуйте, Aleksandr_Petrov. > > > > Вы писали 20 июня 2018 г., 19:03:50: > > > > > Подскажите пожалуйста как работает include в конфиге nginx. Указываю > > три > > > include в секцию server, в предположение что они добавят нужный > > конфиг в > > > порядке следования, но в результате работает не так как ожидается. > > > > nginx -T > > > > поможет > > Как раз после "nginx -T" и возник вопрос. Получается что конфиг из внешнего > файла вставляется не в том же месте где include и не в порядке следования > если include несколько подряд. Вывод "nginx -T" не пытается следовать логике парсинга конфига, а лишь показывает все участвующие в процессе файлы. Семантически директива include эквивалентна написанию на её месте содержимого включаемого файла (с точностью до того факта, что во включаемом файле могут быть только синтаксически завершённые конструкции). -- Maxim Dounin http://mdounin.ru/ From mdounin на mdounin.ru Wed Jun 27 05:02:57 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 27 Jun 2018 08:02:57 +0300 Subject: =?UTF-8?B?UmU6INCS0L7RgNC60LXRgCDQv9Cw0LTQsNC10YIg0LIg0LrQvtGA0LrRgyDQv9C+?= =?UTF-8?B?IFNJR1NFR1YgKNGBINC/0YDQuNC80LXRgNC+0Lwp?= In-Reply-To: References: Message-ID: <20180627050257.GF35731@mdounin.ru> Hello! On Fri, Jun 22, 2018 at 11:25:00AM -0400, nickolay wrote: > Всех приветствую! > > Есть простой perl-модуль, который работает под nginx без проблем на древних > версиях (кажется до 1.7), а на свежих версиях nginx этот модуль приводит к > тому, что воркеры начинают падать в корку по SIGSEGV. > Разобрал модуль до мелочей и нашёл, что всё падает на send_http_header(). > Вот пример этого модуля: > > package post_download; > > use nginx; > use strict; > > sub handler { > my $r = shift; > > $r->send_http_header("text/plain"); > $r->print("OK\n"); > > return OK; > } > > Воркеры падают не на каждый такой запрос, а после нескольких таких > запросов. > > Подключается этот модуль обычным способом: > perl_require /etc/nginx/perl/post_download.pm; > > 100% баг наблюдается на двух версиях: 1.12.2 и на 1.15.0. Добавил в конце модуля "1;" (без этого он не может быть загружен, потому что "did not return a true value" (c) perl), включил обработку через post_download::handler с помощью location / { perl post_download::handler; } Прогнал миллион запросов - ничего не падает. Скорее всего у вас имеет место быть какая-то проблема со сборкой. Смотрите внимательно, как собирался nginx, правильный ли перл и библиотеки используются при сборке, совпадает ли компилятор, которым собирался перл, с тем, которым собирается nginx. Кроме того, стоит проверить, что perl-модуль nginx собран из тех же исходников, что и собственно nginx, и при сборке не применялись какие-либо патчи. -- Maxim Dounin http://mdounin.ru/ From nginx-forum на forum.nginx.org Wed Jun 27 11:32:18 2018 From: nginx-forum на forum.nginx.org (nickolay) Date: Wed, 27 Jun 2018 07:32:18 -0400 Subject: =?UTF-8?B?UmU6INCS0L7RgNC60LXRgCDQv9Cw0LTQsNC10YIg0LIg0LrQvtGA0LrRgyDQv9C+?= =?UTF-8?B?IFNJR1NFR1YgKNGBINC/0YDQuNC80LXRgNC+0Lwp?= In-Reply-To: <20180627050257.GF35731@mdounin.ru> References: <20180627050257.GF35731@mdounin.ru> Message-ID: Стандартный дистрибутив Debian 9.4. Сам perl, компилятор и всё остальное штатное. Никаких патчей не накатывал. Повторяется стабильно на разных машинах Debian 9.3 и Debian 9.4. Но я нашёл причину падения и она связана с disable_not_modified. Вот такой патч устраняет падение в корку: --- ../nginx-1.15.0/src/http/modules/ngx_http_not_modified_filter_module.c 2018-06-05 16:47:25.000000000 +0300 +++ src/http/modules/ngx_http_not_modified_filter_module.c 2018-06-25 01:25:22.299577899 +0300 @@ -54,6 +54,7 @@ static ngx_int_t ngx_http_not_modified_header_filter(ngx_http_request_t *r) { + r->disable_not_modified = 1; if (r->headers_out.status != NGX_HTTP_OK || r != r->main || r->disable_not_modified) Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280252,280294#msg-280294 From nginx-forum на forum.nginx.org Wed Jun 27 13:06:54 2018 From: nginx-forum на forum.nginx.org (rihad) Date: Wed, 27 Jun 2018 09:06:54 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: References: Message-ID: joneum@ пока не ответил, отписал другому девелоперу osa@ и он ответил, что проблему пофиксили в www/nginx-devel (1.15.x) Hi there, fixed for www/nginx-devel with r473338. Thanks for the report! Jochen, could you please review the r473338 revision and update www/nginx. -- Sergey A. Osokin Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280297#msg-280297 From nginx-forum на forum.nginx.org Wed Jun 27 13:36:21 2018 From: nginx-forum на forum.nginx.org (imsystem) Date: Wed, 27 Jun 2018 09:36:21 -0400 Subject: image_filter size In-Reply-To: <20180627033029.GC35731@mdounin.ru> References: <20180627033029.GC35731@mdounin.ru> Message-ID: <5e11b63cb02f5971e839c1a37ea4018c.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Tue, Jun 26, 2018 at 04:42:06AM -0400, imsystem wrote: > > > Здравствуйте. > > Есть модуль > https://nginx.ru/ru/docs/http/ngx_http_image_filter_module.html > > В нём есть директива image_filter size; > > Так вот, извините за глупый вопрос, где посмотреть ответ данной > директивы? И > > возможно его вытащить в переменную? > > Посмотреть ответ - http-ответе на запрос к соответствующему > location'у. Вытащить в переменную - проще всего в браузере, но > можно попробовать и, скажем, njs'ом. > > -- > Maxim Dounin > http://mdounin.ru/ > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Спасибо за ответ, njs посмотрю. Но вот с ответом всё равно не понятно, что в браузере, что через curl (пробовал с разными заголовками), в упор не вижу ответа json. location ~ ^/(\d+|-)x(\d+|-)/(.*\.(?:jpg|gif|png))$ { alias /media/photo/photostorage/data/$3; image_filter size; image_filter resize $1 $2; image_filter_buffer 50M; expires 30d; } curl -I http:/xxx.com/-x280/2018-06-12/small/05413-d6a7a380-4fdd-4308-898d-fe40ce9c4162.jpg HTTP/1.1 200 OK Server: nginx Date: Wed, 27 Jun 2018 11:12:27 GMT Content-Type: image/jpeg Content-Length: 19401 Last-Modified: Tue, 19 Jun 2018 06:31:38 GMT Connection: keep-alive ETag: W/"5b28a34a-68fa" Expires: Fri, 27 Jul 2018 11:12:27 GMT Cache-Control: max-age=2592000 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280277,280299#msg-280299 From vbart на nginx.com Wed Jun 27 13:56:52 2018 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 27 Jun 2018 16:56:52 +0300 Subject: image_filter size In-Reply-To: <5e11b63cb02f5971e839c1a37ea4018c.NginxMailingListRussian@forum.nginx.org> References: <20180627033029.GC35731@mdounin.ru> <5e11b63cb02f5971e839c1a37ea4018c.NginxMailingListRussian@forum.nginx.org> Message-ID: <7578267.n7h3G5SPec@vbart-workstation> On Wednesday 27 June 2018 09:36:21 imsystem wrote: [..] > image_filter size; > image_filter resize $1 $2; [..] Нужно определиться, либо одно действие, либо другое. В данном случае работает последяя встреченная в location директива image_filter. -- Валентин Бартенев From nginx-forum на forum.nginx.org Wed Jun 27 14:03:51 2018 From: nginx-forum на forum.nginx.org (imsystem) Date: Wed, 27 Jun 2018 10:03:51 -0400 Subject: image_filter size In-Reply-To: <7578267.n7h3G5SPec@vbart-workstation> References: <7578267.n7h3G5SPec@vbart-workstation> Message-ID: Валентин Бартенев Wrote: ------------------------------------------------------- > On Wednesday 27 June 2018 09:36:21 imsystem wrote: > [..] > > image_filter size; > > image_filter resize $1 $2; > [..] > > Нужно определиться, либо одно действие, либо другое. > > В данном случае работает последяя встреченная в location > директива image_filter. > > -- > Валентин Бартенев > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Спасибо, работает. Получается одновременно ресайзить и получать ответ я не могу. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280277,280304#msg-280304 From gmm на csdoc.com Wed Jun 27 14:05:02 2018 From: gmm на csdoc.com (Gena Makhomed) Date: Wed, 27 Jun 2018 17:05:02 +0300 Subject: nginx mainline vs nginx stable In-Reply-To: References: Message-ID: On 27.06.2018 16:06, rihad wrote: > joneum@ пока не ответил, отписал другому девелоперу osa@ и он ответил, что > проблему пофиксили в www/nginx-devel (1.15.x) Наверное есть смысл перейти на использование ветки mainline 1.15.х Она не менее стабильная, чем stable, и на основании ветки mainline создается коммерческая версия "NGINX Plus". Валентин Бартенев пишет, что "Если вы хотите получить все новые возможности, оптимизации и исправления, то стоит отдать предпочтение основной ветке, которая (по иронии) в целом более надежна, чем стабильная ветка." - https://habr.com/post/282554/ Хотя на сайте nginx.com не понятно зачем опубликована противоположная рекомендация: "We recommend the stable version for production servers" https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/#choosing-between-a-stable-or-a-mainline-version Скорее всего, редакторы сайта nginx.com, писавшие тот раздел сами заблуждаются и поэтому вводят в заблуждение читателей сайта. Поскольку на том же сайте на другой странице написана рекомендация использовать mainline версию: "We recommend that in general you deploy the NGINX mainline branch at all times." - https://www.nginx.com/blog/nginx-1-6-1-7-released/ Вот еще что нашел в списке рассылки: Just a note for people who worry about using mainline version in production. The fact that there is version called "stable" doesn't imply that the other one is "unstable". We call one branch stable because we maintain internal API and feature set stability for 3rd-party developers, while mainline versions gets all improvements (and even more bugfixes). http://mailman.nginx.org/pipermail/nginx/2014-February/042080.html -- Best regards, Gena From maxim на nginx.com Wed Jun 27 14:12:40 2018 From: maxim на nginx.com (Maxim Konovalov) Date: Wed, 27 Jun 2018 17:12:40 +0300 Subject: nginx mainline vs nginx stable In-Reply-To: References: Message-ID: <645f5c3e-14e1-5c67-4fe8-1a10ef06c2b1@nginx.com> On 27/06/2018 17:05, Gena Makhomed wrote: > On 27.06.2018 16:06, rihad wrote: > >> joneum@ пока не ответил, отписал другому девелоперу osa@ и он >> ответил, что >> проблему пофиксили в www/nginx-devel (1.15.x) > > Наверное есть смысл перейти на использование ветки mainline 1.15.х > Она не менее стабильная, чем stable, и на основании ветки mainline > создается коммерческая версия "NGINX Plus". > > Валентин Бартенев пишет, что "Если вы хотите получить все новые > возможности, оптимизации и исправления, то стоит отдать предпочтение > основной ветке, которая (по иронии) в целом более надежна, чем > стабильная ветка." - https://habr.com/post/282554/ > > Хотя на сайте nginx.com не понятно зачем опубликована противоположная > рекомендация: "We recommend the stable version for production servers" > > https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/#choosing-between-a-stable-or-a-mainline-version > > > Скорее всего, редакторы сайта nginx.com, писавшие тот раздел > сами заблуждаются и поэтому вводят в заблуждение читателей сайта. > > Поскольку на том же сайте на другой странице > написана рекомендация использовать mainline версию: > > "We recommend that in general you deploy the NGINX mainline branch > at all times." - https://www.nginx.com/blog/nginx-1-6-1-7-released/ > > Вот еще что нашел в списке рассылки: > > Just a note for people who worry about using mainline version > in production. The fact that there is version called "stable" doesn't > imply that the other one is "unstable".  We call one branch stable > because we maintain internal API and feature set stability > for 3rd-party developers, while mainline versions gets > all improvements (and even more bugfixes). > > http://mailman.nginx.org/pipermail/nginx/2014-February/042080.html > Это все примерно так, только исходный вопрос имеет примерно никакое отношение к stable vs mainline. -- Maxim Konovalov From nginx-forum на forum.nginx.org Wed Jun 27 16:09:51 2018 From: nginx-forum на forum.nginx.org (rihad) Date: Wed, 27 Jun 2018 12:09:51 -0400 Subject: nginx mainline vs nginx stable In-Reply-To: References: Message-ID: <07796cb1febd2a9b46e2d6230281d718.NginxMailingListRussian@forum.nginx.org> > Наверное есть смысл перейти на использование ветки mainline 1.15.х > Она не менее стабильная, чем stable, и на основании ветки mainline > создается коммерческая версия "NGINX Plus". Спасибо за детальный обзор, но пора энтузиазма давно прошла )) Сейчас важно чтобы штука стабильно работала, чтобы секьюрные дырки лечились вовремя, чтобы нововведений несовместимых не было и так далее - т.е. чтобы будни админа упрощались, а не усложнялись )) В этом плане stable вполне устраивает. Но вот такой косяк вышел с относительно новой технологией Brotli, и то потому, что начальство решило на передовой волне идти когда это было совсем не обязательно )) Кстати баг затрагивал mainline (www/nginx-devel) тоже, просто там по стечению обстоятельств раньше пофиксилось - разные майнтейнеры. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280307#msg-280307 From mdounin на mdounin.ru Wed Jun 27 18:33:10 2018 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 27 Jun 2018 21:33:10 +0300 Subject: =?UTF-8?B?UmU6INCS0L7RgNC60LXRgCDQv9Cw0LTQsNC10YIg0LIg0LrQvtGA0LrRgyDQv9C+?= =?UTF-8?B?IFNJR1NFR1YgKNGBINC/0YDQuNC80LXRgNC+0Lwp?= In-Reply-To: References: <20180627050257.GF35731@mdounin.ru> Message-ID: <20180627183310.GJ35731@mdounin.ru> Hello! On Wed, Jun 27, 2018 at 07:32:18AM -0400, nickolay wrote: > Стандартный дистрибутив Debian 9.4. Сам perl, компилятор и всё остальное > штатное. Никаких патчей не накатывал. Повторяется стабильно на разных > машинах Debian 9.3 и Debian 9.4. Откуда и как собирался/ставился nginx? Было ли это единоразовое действие, или nginx пересобирался/переставлялся с другими опциями? Подобное поведение наиболее вероятно, если perl-модуль nginx (nginx.so) собран не с теми опциями, что сам nginx, и соответственно предполагает неправильное о структурах данных nginx'а, с которыми работает, в частности - о структуре запроса. Чистый Debian 9 я вот прямо сейчас поднял в виртуалке, и с nginx из стандартных пакетов (1.10.3) никаких проблем не наблюдается, равно как и со свежесобранным из исходников 1.15.0. > Но я нашёл причину падения и она связана с disable_not_modified. Вот такой > патч устраняет падение в корку: > > --- ../nginx-1.15.0/src/http/modules/ngx_http_not_modified_filter_module.c > 2018-06-05 16:47:25.000000000 +0300 > +++ src/http/modules/ngx_http_not_modified_filter_module.c 2018-06-25 > 01:25:22.299577899 +0300 > @@ -54,6 +54,7 @@ > static ngx_int_t > ngx_http_not_modified_header_filter(ngx_http_request_t *r) > { > + r->disable_not_modified = 1; > if (r->headers_out.status != NGX_HTTP_OK > || r != r->main > || r->disable_not_modified) Это - совершенно точно не причина. Вы таким образом просто отключаете not_modified фильтр, что, вероятно, позволяет не наступать на повреждённые из-за несоответствия структур данные. Где и при каких обстоятельствах оно на них таки наступит - никто не знает. -- Maxim Dounin http://mdounin.ru/ From nginx-forum на forum.nginx.org Thu Jun 28 06:40:13 2018 From: nginx-forum на forum.nginx.org (rihad) Date: Thu, 28 Jun 2018 02:40:13 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: References: Message-ID: <69b207a64ee4c18883071fd887e499b9.NginxMailingListRussian@forum.nginx.org> Jochen Neumeister наконец ответил: i work on it :-) joneum Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280313#msg-280313 From kovalkov на fastvps.ru Thu Jun 28 13:06:54 2018 From: kovalkov на fastvps.ru (Dmitriy Kovalkov) Date: Thu, 28 Jun 2018 16:06:54 +0300 Subject: =?UTF-8?B?UmU6INCQ0L3QsNC70L7QsyDRhNGD0L3QutGG0LjQvtC90LDQu9CwIEluY2x1ZGVP?= =?UTF-8?B?cHRpb25hbCDQsiBBcGFjaGUy?= In-Reply-To: <20180627031103.GB35731@mdounin.ru> References: <20180627031103.GB35731@mdounin.ru> Message-ID: Спасибо! --- Respectfully, Dmitrii Kovalkov FASTVPS technical department 27 июня 2018 г., 6:11 пользователь Maxim Dounin написал: > Hello! > > On Fri, Jun 22, 2018 at 01:23:21PM +0300, Dmitriy Kovalkov wrote: > > > Уточните, пожалуйста, планируется ли к реализации или можно ли запросить > > аналог на https://httpd.apache.org/docs/2.4/mod/core.html# > includeoptional > > > > Юзкейс простой - есть панель управления сервером, которая генерирует > > виртуальные хосты для пользователей вида > > [...] > > > include /etc/nginx/fastpanel2-sites/USER/DOMAIN.TLD.includes; > > include /etc/nginx/fastpanel2-includes/*.conf; > > [...] > > > Для некоторых хостов требуются кастомные локейшены, например include > > /etc/nginx/fastpanel2-sites/USER/DOMAIN.TLD.includes; > > > > Но эти кастомные локейшены требуются довольно редко, что приводит к тому, > > что мы создаем большое количество пустых файлов. > > Если очень хочется избежать создания пустых файлов - можно > использовать include с маской. При использовании маски - под > маску может не подпасть ни одного файла, и это нормально. То есть > можно написать как-то так: > > include /etc/nginx/fastpanel2-sites/USER/DOMAIN.TLD.include[s]; > > и будет использоваться указанный файл, если он есть. > > -- > Maxim Dounin > http://mdounin.ru/ > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Thu Jun 28 17:34:33 2018 From: nginx-forum на forum.nginx.org (ngnx8810773a83) Date: Thu, 28 Jun 2018 13:34:33 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: <69b207a64ee4c18883071fd887e499b9.NginxMailingListRussian@forum.nginx.org> References: <69b207a64ee4c18883071fd887e499b9.NginxMailingListRussian@forum.nginx.org> Message-ID: <739f23517e547fbc1e887852c9062e28.NginxMailingListRussian@forum.nginx.org> Приехало в 1.14 https://svnweb.freebsd.org/ports?view=revision&revision=473502 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280328#msg-280328 From nginx-forum на forum.nginx.org Thu Jun 28 19:19:06 2018 From: nginx-forum на forum.nginx.org (al3x) Date: Thu, 28 Jun 2018 15:19:06 -0400 Subject: =?UTF-8?B?0JfQsNC/0YPRgdC6IHBocCDRgdC60YDQuNC/0YLQvtCyINC40Lcg0YDQsNC30L0=?= =?UTF-8?B?0YvRhSDQtNC40YDQtdC60YLQvtGA0LjQuA==?= Message-ID: Здравствуйте, имеются директории: /home/admin/ - в этой папке находятся файлы (напр. index.php, conf.php, admin/index.php), которые нужно скрыть от юзера (но запускать он их может). /home/user/ - в этой папке файлы юзера. Задача: ЕСЛИ (запрошенный http адрес соответствует файлу в папке /home/user/) { ТО вернуть клиенту этот файл } ИНАЧЕ { ЕСЛИ (файл /home/user/index.php существует) { ТО вызвать скрипт /home/user/index.php для обработки запроса } ИНАЧЕ { указать root -директорию /home/admin/ и ЕСЛИ (запрошенный http адрес соответствует файлу в папке /home/admin/) { ТО вернуть клиенту этот файл } ИНАЧЕ { вызвать скрипт /home/admin/index.php для обработки запроса } } } Т.е. если юзер создает файл, например, /home/user/index.php, то при открытии сайта должен запускаться именно этот файл. Если же этого файла нет, то запускаться должен /home/admin/index.php и тд. При этом в папках кроме php-файлов могут находиться файлы css, картинки и другие. Подскажите пожалуйста рабочий конфиг для такой задачи. Пробовал через try_files пока ничего не получается... Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280329,280329#msg-280329 From coddoc на mail.ru Fri Jun 29 05:34:02 2018 From: coddoc на mail.ru (=?UTF-8?B?Q29ERG9D?=) Date: Fri, 29 Jun 2018 08:34:02 +0300 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YHQuiBwaHAg0YHQutGA0LjQv9GC0L7QsiDQuNC3INGA0LA=?= =?UTF-8?B?0LfQvdGL0YUg0LTQuNGA0LXQutGC0L7RgNC40Lg=?= In-Reply-To: References: Message-ID: <1530250442.761105952@f116.i.mail.ru> И вам не хворать. УФФ... Во-первых, конструкция if не содержит ветки else. В ПРИНЦИПЕ! Во-вторых, если не понимаете, как работает if, лучше не юзайте, словите кучу проблем. То же самое относится к try_files. В-третьих, как минимум, вам нужно разделить запросы на 2 группы: админские и юзерские. Или по какому-то признаку с обработкой в пхп контроллере, или чтобы они падали в разные локейшены. Для этого изучайте location, rewrite, map и регексы (тоже, как минимум). Юзер может запускать админские скрипты? Жэсть!!! >Четверг, 28 июня 2018, 22:19 +03:00 от al3x : > >Здравствуйте, > >имеются директории: > >/home/admin/ - в этой папке находятся файлы (напр. index.php, conf.php, >admin/index.php), которые нужно скрыть от юзера (но запускать он их может). >/home/user/ - в этой папке файлы юзера. > >Задача: > >ЕСЛИ (запрошенный http адрес соответствует файлу в папке /home/user/) >{ >ТО вернуть клиенту этот файл >} >ИНАЧЕ >{ >ЕСЛИ (файл /home/user/index.php существует) >{ >ТО вызвать скрипт /home/user/index.php для обработки запроса >} >ИНАЧЕ >{ >указать root -директорию /home/admin/ и > >ЕСЛИ (запрошенный http адрес соответствует файлу в папке /home/admin/) >{ >ТО вернуть клиенту этот файл >} >ИНАЧЕ >{ >вызвать скрипт /home/admin/index.php для обработки запроса >} >} >} > > >Т.е. если юзер создает файл, например, /home/user/index.php, то при открытии >сайта должен запускаться именно этот файл. Если же этого файла нет, то >запускаться должен /home/admin/index.php и тд. При этом в папках кроме >php-файлов могут находиться файлы css, картинки и другие. > >Подскажите пожалуйста рабочий конфиг для такой задачи. > >Пробовал через try_files пока ничего не получается... > >Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280329,280329#msg-280329 > >_______________________________________________ >nginx-ru mailing list >nginx-ru на nginx.org >http://mailman.nginx.org/mailman/listinfo/nginx-ru -- ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Fri Jun 29 07:06:22 2018 From: nginx-forum на forum.nginx.org (al3x) Date: Fri, 29 Jun 2018 03:06:22 -0400 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YHQuiBwaHAg0YHQutGA0LjQv9GC0L7QsiDQuNC3INGA0LA=?= =?UTF-8?B?0LfQvdGL0YUg0LTQuNGA0LXQutGC0L7RgNC40Lg=?= In-Reply-To: <1530250442.761105952@f116.i.mail.ru> References: <1530250442.761105952@f116.i.mail.ru> Message-ID: <622d967612c9126074b867c5dac0356f.NginxMailingListRussian@forum.nginx.org> Суть в том, что пользователю нужно предоставить для пользования ПО, которое бы он не смог скачать. При этом у него есть фтп доступ к своей директории. Даже если юзер скачает один-два файла - они будут закодированы, поэтому, не зная структуры всего ПО, он не доберется до остальных. Я знаю, что if не содержит ветки else. Выше я написал просто для наглядности, чтобы как-то правильно перевести в формат nginx. Вот что я пробовал, но пока ничего не получается: root /home/user; location / { try_files $uri @fallback_all; } location @fallback_all { root /home/admin; try_files $uri @fallback_php; } location @fallback_php { root /home/admin; if (!-f $document_root$fastcgi_script_name) {return 404;} fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9032; fastcgi_index index.php; include /etc/nginx/fastcgi_params; } Конфиг для "одиночного" режима: location / { index index.php; try_files $uri $uri/ /index.php?$query_string; } location /admin { try_files $uri /admin/index.php?$query_string; } location ~ [^/]\.php(/|$) { fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_pass 127.0.0.1:9023; fastcgi_index index.php; include /etc/nginx/fastcgi_params; } Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280329,280331#msg-280331 From coddoc на mail.ru Fri Jun 29 09:33:49 2018 From: coddoc на mail.ru (=?UTF-8?B?Q29ERG9D?=) Date: Fri, 29 Jun 2018 12:33:49 +0300 Subject: =?UTF-8?B?UmVbMl06INCX0LDQv9GD0YHQuiBwaHAg0YHQutGA0LjQv9GC0L7QsiDQuNC3INGA?= =?UTF-8?B?0LDQt9C90YvRhSDQtNC40YDQtdC60YLQvtGA0LjQuA==?= In-Reply-To: <622d967612c9126074b867c5dac0356f.NginxMailingListRussian@forum.nginx.org> References: <1530250442.761105952@f116.i.mail.ru> <622d967612c9126074b867c5dac0356f.NginxMailingListRussian@forum.nginx.org> Message-ID: <1530264829.171383999@f483.i.mail.ru> По-моему, вы слишком усложняете. При чем здесь вообще фтп? И какие файлы пользак не должен скачивать? ПХП? Так в данном случае у него как раз есть такая возможность. ХТМЛ? - А как иначе у пользака должен работать веб интерфейс? Жаба и ЦСС? - Так они обфусцируются и падают в кеш пользаку. Уточните задачу. >Пятница, 29 июня 2018, 10:06 +03:00 от al3x : > >Суть в том, что пользователю нужно предоставить для пользования ПО, которое >бы он не смог скачать. При этом у него есть фтп доступ к своей директории. >Даже если юзер скачает один-два файла - они будут закодированы, поэтому, не >зная структуры всего ПО, он не доберется до остальных. > >Я знаю, что if не содержит ветки else. Выше я написал просто для >наглядности, чтобы как-то правильно перевести в формат nginx. > >Вот что я пробовал, но пока ничего не получается: > >root /home/user; > >location / { > try_files $uri @fallback_all; >} > >location @fallback_all { > root /home/admin; > try_files $uri @fallback_php; >} > >location @fallback_php { > root /home/admin; > > if (!-f $document_root$fastcgi_script_name) {return 404;} > fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; > fastcgi_pass 127.0.0.1:9032; > fastcgi_index index.php; > include /etc/nginx/fastcgi_params; >} > > >Конфиг для "одиночного" режима: > >location / { >  index index.php; >  try_files $uri $uri/ /index.php?$query_string; >} > >location /admin { >  try_files $uri /admin/index.php?$query_string; >} > >location ~ [^/]\.php(/|$) { >  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; >  if (!-f $document_root$fastcgi_script_name) { >    return 404; >  } >  fastcgi_pass 127.0.0.1:9023; >  fastcgi_index index.php; >  include /etc/nginx/fastcgi_params; >} > >Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280329,280331#msg-280331 > >_______________________________________________ >nginx-ru mailing list >nginx-ru на nginx.org >http://mailman.nginx.org/mailman/listinfo/nginx-ru -- ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Fri Jun 29 10:20:12 2018 From: nginx-forum на forum.nginx.org (al3x) Date: Fri, 29 Jun 2018 06:20:12 -0400 Subject: =?UTF-8?B?UmU6IFJlWzJdOiDQl9Cw0L/Rg9GB0LogcGhwINGB0LrRgNC40L/RgtC+0LIg0Lg=?= =?UTF-8?B?0Lcg0YDQsNC30L3Ri9GFINC00LjRgNC10LrRgtC+0YDQuNC4?= In-Reply-To: <1530264829.171383999@f483.i.mail.ru> References: <1530264829.171383999@f483.i.mail.ru> Message-ID: <1c2f076877dd3f8af6b5002d0cd8c42a.NginxMailingListRussian@forum.nginx.org> Для юзера создается отдельная VPS с USER правами и доступом ФТП к своей директории (/home/user/) В директории /home/admin/ находится ПО (CMS), которое юзер будет арендовать. При обращении к IP сервера в браузере ему будет доступен веб интерфейс ПО. Но если юзер создает какие-либо файлы в своей директории (/home/user/), то nginx должен сначала отдать их, а потом уже файлы ПО. Защитить от скачивания нужно именно PHP файлы ПО. Но даже если юзер сможет скачать пару php-файлов - не страшно, т.к. они будут под ионкубом. Возможно еще придется отключить какие-то php функции... Если такое организовать не получится, то можно немного изменить задачу и обрабатывать PHP только в /home/admin/, а в /home/user/ отдавать статику - js, css, картинки и тд., но оставить возможность обрабатывать PHP только в одной папке, например, /home/user/scripts/ В общем нужно каким-то образом сдавать ПО в аренду, без особого ущемления действий юзера. У него должна быть возможность править шаблоны в CMS-ке, ИСПОЛЬЗУЯ СВОЙ ФТП-ДОСТУП, и загружать в эти шаблоны всякие js и тд. CoDDoC Wrote: ------------------------------------------------------- > По-моему, вы слишком усложняете. > При чем здесь вообще фтп? > И какие файлы пользак не должен скачивать? ПХП? Так в данном случае у > него как раз есть такая возможность. > ХТМЛ? - А как иначе у пользака должен работать веб интерфейс? > Жаба и ЦСС? - Так они обфусцируются и падают в кеш пользаку. > > Уточните задачу. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280329,280334#msg-280334 From coddoc на mail.ru Fri Jun 29 11:56:19 2018 From: coddoc на mail.ru (=?UTF-8?B?Q29ERG9D?=) Date: Fri, 29 Jun 2018 14:56:19 +0300 Subject: =?UTF-8?B?UmVbNF06INCX0LDQv9GD0YHQuiBwaHAg0YHQutGA0LjQv9GC0L7QsiDQuNC3INGA?= =?UTF-8?B?0LDQt9C90YvRhSDQtNC40YDQtdC60YLQvtGA0LjQuA==?= In-Reply-To: <1c2f076877dd3f8af6b5002d0cd8c42a.NginxMailingListRussian@forum.nginx.org> References: <1530264829.171383999@f483.i.mail.ru> <1c2f076877dd3f8af6b5002d0cd8c42a.NginxMailingListRussian@forum.nginx.org> Message-ID: <1530273379.20714778@f407.i.mail.ru> Как-то все больше запутывается. Если речь о ВПС - так это один сервер на одного пользака, остальные туда доступа не имеют. https://ru.wikipedia.org/wiki/VPS   Или речь о нескольких пользаках в рамках одной ЦМС на одном физическом сервере? Или о виртхостах в рамках одного сервера? Насчет ионкуба - загуглите два слова 'ioncube decoder'.... При любом раскладе (ИМХО), позволять пользаку запускать ПХП и жабу даже из его хоум папки небезопасно. Ибо шелл-скрипты никто не отменял. Тогда нужен чрут на его хоум. А еще лучше - так это заготовить пользаку жабоскрипты и разрешить ему только ХТМЛ. В противном случае вы рискуете, что пользак вполне сможет пролезть к вам в ФС со всеми вытекающими. >Пятница, 29 июня 2018, 13:20 +03:00 от al3x < nginx-forum на forum.nginx.org >: > >Для юзера создается отдельная VPS с USER правами и доступом ФТП к своей >директории (/home/user/) > >В директории /home/admin/ находится ПО (CMS), которое юзер будет >арендовать. > >При обращении к IP сервера в браузере ему будет доступен веб интерфейс ПО. > >Но если юзер создает какие-либо файлы в своей директории (/home/user/), то >nginx должен сначала отдать их, а потом уже файлы ПО. > >Защитить от скачивания нужно именно PHP файлы ПО. Но даже если юзер сможет >скачать пару php-файлов - не страшно, т.к. они будут под ионкубом. Возможно >еще придется отключить какие-то php функции... > > >Если такое организовать не получится, то можно немного изменить задачу и >обрабатывать PHP только в /home/admin/, а в /home/user/ отдавать статику - >js, css, картинки и тд., но оставить возможность обрабатывать PHP только в >одной папке, например, /home/user/scripts/ > >В общем нужно каким-то образом сдавать ПО в аренду, без особого ущемления >действий юзера. У него должна быть возможность править шаблоны в CMS-ке, >ИСПОЛЬЗУЯ СВОЙ ФТП-ДОСТУП, и загружать в эти шаблоны всякие js и тд. > > >CoDDoC Wrote: >------------------------------------------------------- >> По-моему, вы слишком усложняете. >> При чем здесь вообще фтп? >> И какие файлы пользак не должен скачивать? ПХП? Так в данном случае у >> него как раз есть такая возможность. >> ХТМЛ? - А как иначе у пользака должен работать веб интерфейс? >> Жаба и ЦСС? - Так они обфусцируются и падают в кеш пользаку. >> >> Уточните задачу. > >Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280329,280334#msg-280334 > >_______________________________________________ >nginx-ru mailing list >nginx-ru на nginx.org >http://mailman.nginx.org/mailman/listinfo/nginx-ru -- ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Fri Jun 29 12:58:36 2018 From: nginx-forum на forum.nginx.org (rihad) Date: Fri, 29 Jun 2018 08:58:36 -0400 Subject: =?UTF-8?B?UmU6INCe0YLQutGA0YvRgtGL0LUg0YTQsNC50LvRiyDRgNCw0YHRgtGD0YIg0L8=?= =?UTF-8?B?0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0LTQviAxLjE0?= In-Reply-To: <739f23517e547fbc1e887852c9062e28.NginxMailingListRussian@forum.nginx.org> References: <69b207a64ee4c18883071fd887e499b9.NginxMailingListRussian@forum.nginx.org> <739f23517e547fbc1e887852c9062e28.NginxMailingListRussian@forum.nginx.org> Message-ID: Отлично, проверил - проблема решилась. Всем спасибо. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280196,280336#msg-280336 From nginx-forum на forum.nginx.org Fri Jun 29 13:20:16 2018 From: nginx-forum на forum.nginx.org (al3x) Date: Fri, 29 Jun 2018 09:20:16 -0400 Subject: =?UTF-8?B?UmU6IFJlWzRdOiDQl9Cw0L/Rg9GB0LogcGhwINGB0LrRgNC40L/RgtC+0LIg0Lg=?= =?UTF-8?B?0Lcg0YDQsNC30L3Ri9GFINC00LjRgNC10LrRgtC+0YDQuNC4?= In-Reply-To: <1530273379.20714778@f407.i.mail.ru> References: <1530273379.20714778@f407.i.mail.ru> Message-ID: Речь о ВПС, которая только для одного пользователя, но с USER правами. Т.е. root или admin у него нет, только обычный фтп с доступом в одну его директорию /home/user/ и в php.ini open_basedir="/tmp/:/home/user/" Файлы закодированы последней версией ионкуба, а его, как известно, ломают не сразу. Вся суть состоит в том, чтобы юзер мог пользоваться ПО не имея возможности его скачать. CoDDoC Wrote: ------------------------------------------------------- > Как-то все больше запутывается. > Если речь о ВПС - так это один сервер на одного пользака, остальные > туда доступа не имеют. > https://ru.wikipedia.org/wiki/VPS   > Или речь о нескольких пользаках в рамках одной ЦМС на одном физическом > сервере? Или о виртхостах в рамках одного сервера? > > Насчет ионкуба - загуглите два слова 'ioncube decoder'.... > > При любом раскладе (ИМХО), позволять пользаку запускать ПХП и жабу > даже из его хоум папки небезопасно. Ибо шелл-скрипты никто не отменял. > Тогда нужен чрут на его хоум. А еще лучше - так это заготовить > пользаку жабоскрипты и разрешить ему только ХТМЛ. В противном случае > вы рискуете, что пользак вполне сможет пролезть к вам в ФС со всеми > вытекающими. > > > > > > > >Пятница, 29 июня 2018, 13:20 +03:00 от al3x < > nginx-forum на forum.nginx.org >: > > > >Для юзера создается отдельная VPS с USER правами и доступом ФТП к > своей > >директории (/home/user/) > > > >В директории /home/admin/ находится ПО (CMS), которое юзер будет > >арендовать. > > > >При обращении к IP сервера в браузере ему будет доступен веб > интерфейс ПО. > > > >Но если юзер создает какие-либо файлы в своей директории > (/home/user/), то > >nginx должен сначала отдать их, а потом уже файлы ПО. > > > >Защитить от скачивания нужно именно PHP файлы ПО. Но даже если юзер > сможет > >скачать пару php-файлов - не страшно, т.к. они будут под ионкубом. > Возможно > >еще придется отключить какие-то php функции... > > > > > >Если такое организовать не получится, то можно немного изменить > задачу и > >обрабатывать PHP только в /home/admin/, а в /home/user/ отдавать > статику - > >js, css, картинки и тд., но оставить возможность обрабатывать PHP > только в > >одной папке, например, /home/user/scripts/ > > > >В общем нужно каким-то образом сдавать ПО в аренду, без особого > ущемления > >действий юзера. У него должна быть возможность править шаблоны в > CMS-ке, > >ИСПОЛЬЗУЯ СВОЙ ФТП-ДОСТУП, и загружать в эти шаблоны всякие js и тд. > > > > > >CoDDoC Wrote: > >------------------------------------------------------- > >> По-моему, вы слишком усложняете. > >> При чем здесь вообще фтп? > >> И какие файлы пользак не должен скачивать? ПХП? Так в данном случае > у > >> него как раз есть такая возможность. > >> ХТМЛ? - А как иначе у пользака должен работать веб интерфейс? > >> Жаба и ЦСС? - Так они обфусцируются и падают в кеш пользаку. > >> > >> Уточните задачу. > > > >Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,280329,280334#msg-280334 > > > >_______________________________________________ > >nginx-ru mailing list > >nginx-ru на nginx.org > >http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > -- > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280329,280337#msg-280337 From dmitriy на lyalyuev.info Fri Jun 29 14:00:19 2018 From: dmitriy на lyalyuev.info (Dmitriy Lyalyuev) Date: Fri, 29 Jun 2018 17:00:19 +0300 Subject: =?UTF-8?B?UmU6IFJlWzRdOiDQl9Cw0L/Rg9GB0LogcGhwINGB0LrRgNC40L/RgtC+0LIg0Lg=?= =?UTF-8?B?0Lcg0YDQsNC30L3Ri9GFINC00LjRgNC10LrRgtC+0YDQuNC4?= In-Reply-To: References: <1530273379.20714778@f407.i.mail.ru> Message-ID: Может я чего не понимаю, но может стоит сделать локейшн типа /user_content и рут выставить ​в хомяк юзера? Туда же и ФТП пусть смотрит с ограничением юзера в этом каталоге. А все остальное юзеру не будет доступно от слова совсем. Задача простая как 3 копейки и слабо имеет отношение к Nginx. Или я чего-то не понимаю? ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Fri Jun 29 14:36:38 2018 From: nginx-forum на forum.nginx.org (al3x) Date: Fri, 29 Jun 2018 10:36:38 -0400 Subject: =?UTF-8?B?UmU6IFJlWzRdOiDQl9Cw0L/Rg9GB0LogcGhwINGB0LrRgNC40L/RgtC+0LIg0Lg=?= =?UTF-8?B?0Lcg0YDQsNC30L3Ri9GFINC00LjRgNC10LrRgtC+0YDQuNC4?= In-Reply-To: References: Message-ID: <6ae52a4a0830b3d0b071e127c2724e2b.NginxMailingListRussian@forum.nginx.org> Я уже начинаю думать, что у меня какая-то бредовая идея... еще немного и я откажусь от нее =) Не знаю как еще объяснить, но попробую... Есть файлы CMS: /home/admin/index.php /home/admin/modules/module.php /home/admin/template/news.html /home/admin/template/style.css Директория юзера: /home/user/ - у юзера есть доступ только к этой директории. При обращении по IP сервера nginx сначала смотрит в /home/user/ и если не находит там index.php, то смотрит в /home/admin/index.php и отдает его. Далее /home/admin/index.php выполняет свою работу и хочет обработать файл template/news.html. Nginx должен проверить, нет ли этого файла в директории юзера /home/user/template/news.html и если есть, то отдать его. Если этого файла нет, то отдать из папки /home/admin/template/news.html Затем юзер захотел создать свой личный модуль и положил его в папку /home/user/modules/new_module.php и когда /home/admin/index.php загружает модули из папки /modules/ то nginx должен сначала проверить все файлы в директории юзера /home/user/modules/, а затем здесь /home/admin/modules/ и таким образом подгрузить для PHP все модули из двух директорий, словно из одной. Т.е. директории должны быть как бы зеркалами друг друга. Это возможно сделать? Dmitriy Lyalyuev Wrote: ------------------------------------------------------- > Может я чего не понимаю, но может стоит сделать локейшн типа > /user_content > и рут выставить ​в хомяк юзера? > Туда же и ФТП пусть смотрит с ограничением юзера в этом каталоге. > А все остальное юзеру не будет доступно от слова совсем. > > Задача простая как 3 копейки и слабо имеет отношение к Nginx. > Или я чего-то не понимаю? > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280329,280339#msg-280339 From nginx-forum на forum.nginx.org Fri Jun 29 14:44:34 2018 From: nginx-forum на forum.nginx.org (yanda.a) Date: Fri, 29 Jun 2018 10:44:34 -0400 Subject: =?UTF-8?B?UmU6IFJlWzRdOiDQl9Cw0L/Rg9GB0LogcGhwINGB0LrRgNC40L/RgtC+0LIg0Lg=?= =?UTF-8?B?0Lcg0YDQsNC30L3Ri9GFINC00LjRgNC10LrRgtC+0YDQuNC4?= In-Reply-To: <6ae52a4a0830b3d0b071e127c2724e2b.NginxMailingListRussian@forum.nginx.org> References: <6ae52a4a0830b3d0b071e127c2724e2b.NginxMailingListRussian@forum.nginx.org> Message-ID: <7aef51268afdea43166482fa185be705.NginxMailingListRussian@forum.nginx.org> Так это же задача PHP, а не Nginx. Nginx должен проксировать запросы на бекенд, балансировать нагрузку на бекенды, возможно менять uri запроса и отдавать статику. Но иметь какое-либо отношение к PHP он не должен! Хотя, что имеется в виду под "Далее /home/admin/index.php выполняет свою работу и хочет обработать файл template/news.html."? al3x Wrote: ------------------------------------------------------- > Я уже начинаю думать, что у меня какая-то бредовая идея... еще немного > и я откажусь от нее =) > Не знаю как еще объяснить, но попробую... > > Есть файлы CMS: > /home/admin/index.php > /home/admin/modules/module.php > /home/admin/template/news.html > /home/admin/template/style.css > > Директория юзера: > /home/user/ - у юзера есть доступ только к этой директории. > > При обращении по IP сервера nginx сначала смотрит в /home/user/ и если > не находит там index.php, то смотрит в /home/admin/index.php и отдает > его. > > Далее /home/admin/index.php выполняет свою работу и хочет обработать > файл template/news.html. Nginx должен проверить, нет ли этого файла в > директории юзера /home/user/template/news.html и если есть, то отдать > его. Если этого файла нет, то отдать из папки > /home/admin/template/news.html > > Затем юзер захотел создать свой личный модуль и положил его в папку > /home/user/modules/new_module.php > и когда /home/admin/index.php загружает модули из папки /modules/ то > nginx должен сначала проверить все файлы в директории юзера > /home/user/modules/, а затем здесь /home/admin/modules/ и таким > образом подгрузить для PHP все модули из двух директорий, словно из > одной. > > Т.е. директории должны быть как бы зеркалами друг друга. > > Это возможно сделать? > > Dmitriy Lyalyuev Wrote: > ------------------------------------------------------- > > Может я чего не понимаю, но может стоит сделать локейшн типа > > /user_content > > и рут выставить ​в хомяк юзера? > > Туда же и ФТП пусть смотрит с ограничением юзера в этом каталоге. > > А все остальное юзеру не будет доступно от слова совсем. > > > > Задача простая как 3 копейки и слабо имеет отношение к Nginx. > > Или я чего-то не понимаю? > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280329,280340#msg-280340 From gmm на csdoc.com Fri Jun 29 14:59:00 2018 From: gmm на csdoc.com (Gena Makhomed) Date: Fri, 29 Jun 2018 17:59:00 +0300 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YHQuiBwaHAg0YHQutGA0LjQv9GC0L7QsiDQuNC3INGA0LA=?= =?UTF-8?B?0LfQvdGL0YUg0LTQuNGA0LXQutGC0L7RgNC40Lg=?= In-Reply-To: <6ae52a4a0830b3d0b071e127c2724e2b.NginxMailingListRussian@forum.nginx.org> References: <6ae52a4a0830b3d0b071e127c2724e2b.NginxMailingListRussian@forum.nginx.org> Message-ID: <3076ba5f-b499-a992-ad18-3f8e06cb9ff5@csdoc.com> On 29.06.2018 17:36, al3x wrote: > При обращении по IP сервера nginx сначала смотрит в /home/user/ и если не > находит там index.php, то смотрит в /home/admin/index.php и отдает его. nginx не обрабатывает файлы *.php, этим занимается интерпретатор PHP. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9032; fastcgi_index index.php; include /etc/nginx/fastcgi_params; Все что делает nginx - он передает PHP полное имя файла и некоторые дополнительные параметры и отдает клиенту результат. > Далее /home/admin/index.php выполняет свою работу и хочет обработать файл > template/news.html. Nginx должен проверить, нет ли этого файла в директории > юзера /home/user/template/news.html и если есть, то отдать его. Если этого > файла нет, то отдать из папки /home/admin/template/news.html Когда PHP интерпретирует файл /home/admin/index.php - nginx в этом процессе участия не принимает и никак не может повлиять на то, какой именно файл будет прочитан интерпретатором PHP из файловой системы. > Затем юзер захотел создать свой личный модуль и положил его в папку > /home/user/modules/new_module.php > и когда /home/admin/index.php загружает модули из папки /modules/ то nginx > должен сначала проверить все файлы в директории юзера /home/user/modules/, а > затем здесь /home/admin/modules/ и таким образом подгрузить для PHP все > модули из двух директорий, словно из одной. Если скрипт /home/admin/index.php должен смотреть в два каталога, то такую логику имеет смысл закодировать прямо внутри этого скрипта. nginx в процессе интерпретации *.php файлов участия не принимает. > Т.е. директории должны быть как бы зеркалами друг друга. > > Это возможно сделать? Теоретически - наверное возможно, если написать свой модуль ядра, который будет реализовывать эту логику на уровне файловой системы. Практически - лучше всего эту логику реализовать средствами PHP в файле /home/admin/index.php - тогда все будет работать именно так как хочется. -- Best regards, Gena From coddoc на mail.ru Fri Jun 29 15:37:10 2018 From: coddoc на mail.ru (=?UTF-8?B?Q29ERG9D?=) Date: Fri, 29 Jun 2018 18:37:10 +0300 Subject: =?UTF-8?B?UmVbNl06INCX0LDQv9GD0YHQuiBwaHAg0YHQutGA0LjQv9GC0L7QsiDQuNC3INGA?= =?UTF-8?B?0LDQt9C90YvRhSDQtNC40YDQtdC60YLQvtGA0LjQuA==?= In-Reply-To: <6ae52a4a0830b3d0b071e127c2724e2b.NginxMailingListRussian@forum.nginx.org> References: <6ae52a4a0830b3d0b071e127c2724e2b.NginxMailingListRussian@forum.nginx.org> Message-ID: <1530286630.220560373@f427.i.mail.ru> Не знаю насчет бредовости, но такое ощущение. что вы не совсем четко ее понимаете для себя. 1. Пользак - админ на своем ВПС. Вы - админ хоста. 2. Если пользак имеет доступ ФТП к директории /home/admin на ВПС, он может слить себе любой пхп файл. Другой вариант, как он может это сделать - если у него есть шелл. Но вы можете положить пхп в '/home/user', а фтп дать '/home/user/ftp'. Технически, не важно, какие запросы делает пользак. Точнее, он может делать запросы, только разрешенные админом. Важно, чтобы для всех правильных (с вашей точки зрения) запросов существовали локейшены. Тогда все запросы, для которых не нашлось подходящего локейшена считаем не правильными. Я обычно для таких заходов создаю мусорку типа: location "" { return 404 ;} Ее можно и логировать отдельно при желании. 3. Считаем, что пользак имеет ФТП только на '/home/user' , выше не поднимается. Вам нужно дать ему админку ЦМС, которая лежит в '/home/admin'. Т.е. пользак делает входящий запрос как /user и получает ответом хтмл - результат работы /home/admin/index.php .Но запрос может быть и такой: /admin/index.php, тогда беда. Для этого и нужно проксировать запрос на бэкенд. Я ж вам сразу сказал изучайте location, rewrite, map и регексы. Простой пример. Допустим, входящий запрос /user На него нужно дать ответом хтмл как результат работы /admin/index.php location /user {     rewrite "^/user$" /admin/index.php break;     try_files   $uri                 =404     ;     proxy_pass <здесь ваш бэкенд>; } "^/user$" в кавычках, потому что здесь возможны варианты (реальный формат запроса, параметры и т.п.). В довесок, для явного указания htm или php в запросе: location ~ (\.html$|\.php$) { internal; } >Пятница, 29 июня 2018, 17:36 +03:00 от al3x < nginx-forum на forum.nginx.org >: > >Я уже начинаю думать, что у меня какая-то бредовая идея... еще немного и я >откажусь от нее =) >Не знаю как еще объяснить, но попробую... > >Есть файлы CMS: >/home/admin/index.php >/home/admin/modules/module.php >/home/admin/template/news.html >/home/admin/template/style.css > >Директория юзера: >/home/user/ - у юзера есть доступ только к этой директории. > >При обращении по IP сервера nginx сначала смотрит в /home/user/ и если не >находит там index.php, то смотрит в /home/admin/index.php и отдает его. > >Далее /home/admin/index.php выполняет свою работу и хочет обработать файл >template/news.html. Nginx должен проверить, нет ли этого файла в директории >юзера /home/user/template/news.html и если есть, то отдать его. Если этого >файла нет, то отдать из папки /home/admin/template/news.html > >Затем юзер захотел создать свой личный модуль и положил его в папку >/home/user/modules/new_module.php >и когда /home/admin/index.php загружает модули из папки /modules/ то nginx >должен сначала проверить все файлы в директории юзера /home/user/modules/, а >затем здесь /home/admin/modules/ и таким образом подгрузить для PHP все >модули из двух директорий, словно из одной. > >Т.е. директории должны быть как бы зеркалами друг друга. > >Это возможно сделать? > >Dmitriy Lyalyuev Wrote: >------------------------------------------------------- >> Может я чего не понимаю, но может стоит сделать локейшн типа >> /user_content >> и рут выставить ​в хомяк юзера? >> Туда же и ФТП пусть смотрит с ограничением юзера в этом каталоге. >> А все остальное юзеру не будет доступно от слова совсем. >> >> Задача простая как 3 копейки и слабо имеет отношение к Nginx. >> Или я чего-то не понимаю? >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > >Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280329,280339#msg-280339 > >_______________________________________________ >nginx-ru mailing list >nginx-ru на nginx.org >http://mailman.nginx.org/mailman/listinfo/nginx-ru -- ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Fri Jun 29 17:21:29 2018 From: nginx-forum на forum.nginx.org (al3x) Date: Fri, 29 Jun 2018 13:21:29 -0400 Subject: =?UTF-8?B?UmU6IFJlWzRdOiDQl9Cw0L/Rg9GB0LogcGhwINGB0LrRgNC40L/RgtC+0LIg0Lg=?= =?UTF-8?B?0Lcg0YDQsNC30L3Ri9GFINC00LjRgNC10LrRgtC+0YDQuNC4?= In-Reply-To: <7aef51268afdea43166482fa185be705.NginxMailingListRussian@forum.nginx.org> References: <6ae52a4a0830b3d0b071e127c2724e2b.NginxMailingListRussian@forum.nginx.org> <7aef51268afdea43166482fa185be705.NginxMailingListRussian@forum.nginx.org> Message-ID: <6d65f3d89cb9350ee35fa1aba872d6c9.NginxMailingListRussian@forum.nginx.org> index.php: То есть что-то типа такого не получится для моей задачи:? root /home/user; location / { try_files $uri $uri/ @fallback; } location @fallback { root /home/admin; try_files $uri $uri/ /index.php?$query_string; } yanda.a Wrote: ------------------------------------------------------- > Так это же задача PHP, а не Nginx. Nginx должен проксировать запросы > на бекенд, балансировать нагрузку на бекенды, возможно менять uri > запроса и отдавать статику. Но иметь какое-либо отношение к PHP он не > должен! > > Хотя, что имеется в виду под "Далее /home/admin/index.php выполняет > свою работу и хочет обработать файл template/news.html."? > > al3x Wrote: > ------------------------------------------------------- > > Я уже начинаю думать, что у меня какая-то бредовая идея... еще > немного > > и я откажусь от нее =) > > Не знаю как еще объяснить, но попробую... > > > > Есть файлы CMS: > > /home/admin/index.php > > /home/admin/modules/module.php > > /home/admin/template/news.html > > /home/admin/template/style.css > > > > Директория юзера: > > /home/user/ - у юзера есть доступ только к этой директории. > > > > При обращении по IP сервера nginx сначала смотрит в /home/user/ и > если > > не находит там index.php, то смотрит в /home/admin/index.php и > отдает > > его. > > > > Далее /home/admin/index.php выполняет свою работу и хочет > обработать > > файл template/news.html. Nginx должен проверить, нет ли этого файла > в > > директории юзера /home/user/template/news.html и если есть, то > отдать > > его. Если этого файла нет, то отдать из папки > > /home/admin/template/news.html > > > > Затем юзер захотел создать свой личный модуль и положил его в папку > > /home/user/modules/new_module.php > > и когда /home/admin/index.php загружает модули из папки /modules/ > то > > nginx должен сначала проверить все файлы в директории юзера > > /home/user/modules/, а затем здесь /home/admin/modules/ и таким > > образом подгрузить для PHP все модули из двух директорий, словно из > > одной. > > > > Т.е. директории должны быть как бы зеркалами друг друга. > > > > Это возможно сделать? > > > > Dmitriy Lyalyuev Wrote: > > ------------------------------------------------------- > > > Может я чего не понимаю, но может стоит сделать локейшн типа > > > /user_content > > > и рут выставить ​в хомяк юзера? > > > Туда же и ФТП пусть смотрит с ограничением юзера в этом каталоге. > > > А все остальное юзеру не будет доступно от слова совсем. > > > > > > Задача простая как 3 копейки и слабо имеет отношение к Nginx. > > > Или я чего-то не понимаю? > > > _______________________________________________ > > > nginx-ru mailing list > > > nginx-ru на nginx.org > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru Posted at Nginx Forum: https://forum.nginx.org/read.php?21,280329,280341#msg-280341 From slw на zxy.spb.ru Sat Jun 30 10:46:57 2018 From: slw на zxy.spb.ru (Slawa Olhovchenkov) Date: Sat, 30 Jun 2018 13:46:57 +0300 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YHQuiBwaHAg0YHQutGA0LjQv9GC0L7QsiDQuNC3INGA0LA=?= =?UTF-8?B?0LfQvdGL0YUg0LTQuNGA0LXQutGC0L7RgNC40Lg=?= In-Reply-To: <3076ba5f-b499-a992-ad18-3f8e06cb9ff5@csdoc.com> References: <6ae52a4a0830b3d0b071e127c2724e2b.NginxMailingListRussian@forum.nginx.org> <3076ba5f-b499-a992-ad18-3f8e06cb9ff5@csdoc.com> Message-ID: <20180630104657.GE71987@zxy.spb.ru> On Fri, Jun 29, 2018 at 05:59:00PM +0300, Gena Makhomed wrote: > > Т.е. директории должны быть как бы зеркалами друг друга. > > > > Это возможно сделать? > > Теоретически - наверное возможно, если написать свой модуль ядра, > который будет реализовывать эту логику на уровне файловой системы. > кажется в лялихе тоже такое было. MOUNT_UNIONFS(8) FreeBSD System Manager's Manual MOUNT_UNIONFS(8) NAME mount_unionfs — mount union file systems SYNOPSIS mount_unionfs [-b] [-o options] directory uniondir DESCRIPTION The mount_unionfs utility attaches directory above uniondir in such a way that the contents of both directory trees remain visible. By default, directory becomes the upper layer and uniondir becomes the lower layer. The options are as follows: -b Deprecated. Use -o below instead. -o Options are specified with the -o flag followed by an option. The following options are available: below Inverts the default position, so that directory becomes the lower layer and uniondir becomes the upper layer. However, uniondir remains the mount point. copymode = traditional | transparent | masquerade Specifies the way to create a file or a directory in the upper layer automatically when needed. The traditional mode uses the same way as the old unionfs for backward compatibility, and transparent duplicates the file and directory mode bits and the ownership in the lower layer to the created file in the upper layer. For behavior of the masquerade mode, see MASQUERADE MODE below. whiteout = always | whenneeded Specifies whether whiteouts should always be made in the upper layer when removing a file or directory or only when it already exists in the lower layer. udir=mode Specifies directory mode bits in octal for masquerade mode. ufile=mode Specifies file mode bits in octal for masquerade mode. gid=gid Specifies group for masquerade mode. uid=uid Specifies user for masquerade mode. To enforce file system security, the user mounting a file system must be superuser or else have write permission on the mounted-on directory. In addition, the vfs.usermount sysctl(8) variable must be set to 1 to permit file system mounting by ordinary users. However, note that transparent and masquerade modes require vfs.usermount to be set to 0 because this functionality can only be used by superusers. Filenames are looked up in the upper layer and then in the lower layer. If a directory is found in the lower layer, and there is no entry in the upper layer, then a shadow directory will be created in the upper layer. The ownership and the mode bits are set depending on the copymode option. In traditional mode, it will be owned by the user who originally did the union mount, with mode 0777 (“rwxrwxrwx”) modified by the umask in effect at that time. If a file exists in the upper layer then there is no way to access a file with the same name in the lower layer. If necessary, a combination of loopback and union mounts can be made which will still allow the lower files to be accessed by a different pathname. Except in the case of a directory, access to an object is granted via the normal file system access checks. For directories, the current user must have access to both the upper and lower directories (should they both exist). Requests to create or modify objects in uniondir are passed to the upper layer with the exception of a few special cases. An attempt to open for writing a file which exists in the lower layer causes a copy of the entire file to be made to the upper layer, and then for the upper layer copy to be opened. Similarly, an attempt to truncate a lower layer file to zero length causes an empty file to be created in the upper layer. Any other operation which would ultimately require modification to the lower layer fails with EROFS. The union file system manipulates the namespace, rather than individual file systems. The union operation applies recursively down the directory tree now rooted at uniondir. Thus any file systems which are mounted under uniondir will take part in the union operation. This differs from the union option to mount(8) which only applies the union operation to the mount point itself, and then only for lookups. From nefer05 на gmail.com Sat Jun 30 11:55:16 2018 From: nefer05 на gmail.com (=?UTF-8?B?0KDQvtC80LDQvSDQnNC+0YHQutCy0LjRgtC40L0=?=) Date: Sat, 30 Jun 2018 14:55:16 +0300 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YHQuiBwaHAg0YHQutGA0LjQv9GC0L7QsiDQuNC3INGA0LA=?= =?UTF-8?B?0LfQvdGL0YUg0LTQuNGA0LXQutGC0L7RgNC40Lg=?= In-Reply-To: <20180630104657.GE71987@zxy.spb.ru> References: <6ae52a4a0830b3d0b071e127c2724e2b.NginxMailingListRussian@forum.nginx.org> <3076ba5f-b499-a992-ad18-3f8e06cb9ff5@csdoc.com> <20180630104657.GE71987@zxy.spb.ru> Message-ID: В линуксе mount --bind /dev /mnt/dev ЕМНИП On Sat, Jun 30, 2018 at 1:46 PM, Slawa Olhovchenkov wrote: > On Fri, Jun 29, 2018 at 05:59:00PM +0300, Gena Makhomed wrote: > > > > Т.е. директории должны быть как бы зеркалами друг друга. > > > > > > Это возможно сделать? > > > > Теоретически - наверное возможно, если написать свой модуль ядра, > > который будет реализовывать эту логику на уровне файловой системы. > > > > кажется в лялихе тоже такое было. > > MOUNT_UNIONFS(8) FreeBSD System Manager's Manual > MOUNT_UNIONFS(8) > > NAME > mount_unionfs — mount union file systems > > SYNOPSIS > mount_unionfs [-b] [-o options] directory uniondir > > DESCRIPTION > The mount_unionfs utility attaches directory above uniondir in such a > way > that the contents of both directory trees remain visible. By default, > directory becomes the upper layer and uniondir becomes the lower > layer. > > The options are as follows: > > -b Deprecated. Use -o below instead. > > -o Options are specified with the -o flag followed by an option. > The following options are available: > > below Inverts the default position, so that directory > becomes > the lower layer and uniondir becomes the upper layer. > However, uniondir remains the mount point. > > copymode = traditional | transparent | masquerade > Specifies the way to create a file or a directory in > the > upper layer automatically when needed. The > traditional > mode uses the same way as the old unionfs for backward > compatibility, and transparent duplicates the file and > directory mode bits and the ownership in the lower > layer > to the created file in the upper layer. For behavior > of > the masquerade mode, see MASQUERADE MODE below. > > whiteout = always | whenneeded > Specifies whether whiteouts should always be made in > the > upper layer when removing a file or directory or only > when it already exists in the lower layer. > > udir=mode > Specifies directory mode bits in octal for masquerade > mode. > > ufile=mode > Specifies file mode bits in octal for masquerade mode. > > gid=gid > Specifies group for masquerade mode. > > uid=uid > Specifies user for masquerade mode. > > To enforce file system security, the user mounting a file system must > be > superuser or else have write permission on the mounted-on directory. > In > addition, the vfs.usermount sysctl(8) variable must be set to 1 to > permit > file system mounting by ordinary users. However, note that > transparent > and masquerade modes require vfs.usermount to be set to 0 because this > functionality can only be used by superusers. > > Filenames are looked up in the upper layer and then in the lower > layer. > If a directory is found in the lower layer, and there is no entry in > the > upper layer, then a shadow directory will be created in the upper > layer. > The ownership and the mode bits are set depending on the copymode > option. > In traditional mode, it will be owned by the user who originally did > the > union mount, with mode 0777 (“rwxrwxrwx”) modified by the umask in > effect > at that time. > > If a file exists in the upper layer then there is no way to access a > file > with the same name in the lower layer. If necessary, a combination of > loopback and union mounts can be made which will still allow the lower > files to be accessed by a different pathname. > > Except in the case of a directory, access to an object is granted via > the > normal file system access checks. For directories, the current user > must > have access to both the upper and lower directories (should they both > exist). > > Requests to create or modify objects in uniondir are passed to the > upper > layer with the exception of a few special cases. An attempt to open > for > writing a file which exists in the lower layer causes a copy of the > entire file to be made to the upper layer, and then for the upper > layer > copy to be opened. Similarly, an attempt to truncate a lower layer > file > to zero length causes an empty file to be created in the upper layer. > Any other operation which would ultimately require modification to the > lower layer fails with EROFS. > > The union file system manipulates the namespace, rather than > individual > file systems. The union operation applies recursively down the > directory > tree now rooted at uniondir. Thus any file systems which are mounted > under uniondir will take part in the union operation. This differs > from > the union option to mount(8) which only applies the union operation to > the mount point itself, and then only for lookups. > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From slw на zxy.spb.ru Sat Jun 30 12:05:36 2018 From: slw на zxy.spb.ru (Slawa Olhovchenkov) Date: Sat, 30 Jun 2018 15:05:36 +0300 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YHQuiBwaHAg0YHQutGA0LjQv9GC0L7QsiDQuNC3INGA0LA=?= =?UTF-8?B?0LfQvdGL0YUg0LTQuNGA0LXQutGC0L7RgNC40Lg=?= In-Reply-To: References: <6ae52a4a0830b3d0b071e127c2724e2b.NginxMailingListRussian@forum.nginx.org> <3076ba5f-b499-a992-ad18-3f8e06cb9ff5@csdoc.com> <20180630104657.GE71987@zxy.spb.ru> Message-ID: <20180630120536.GF71987@zxy.spb.ru> On Sat, Jun 30, 2018 at 02:55:16PM +0300, Роман Москвитин wrote: > В линуксе mount --bind /dev /mnt/dev ЕМНИП это разве смешивает, а не перекрывает? From nefer05 на gmail.com Sat Jun 30 12:32:19 2018 From: nefer05 на gmail.com (=?UTF-8?B?0KDQvtC80LDQvSDQnNC+0YHQutCy0LjRgtC40L0=?=) Date: Sat, 30 Jun 2018 15:32:19 +0300 Subject: =?UTF-8?B?UmU6INCX0LDQv9GD0YHQuiBwaHAg0YHQutGA0LjQv9GC0L7QsiDQuNC3INGA0LA=?= =?UTF-8?B?0LfQvdGL0YUg0LTQuNGA0LXQutGC0L7RgNC40Lg=?= In-Reply-To: <20180630120536.GF71987@zxy.spb.ru> References: <6ae52a4a0830b3d0b071e127c2724e2b.NginxMailingListRussian@forum.nginx.org> <3076ba5f-b499-a992-ad18-3f8e06cb9ff5@csdoc.com> <20180630104657.GE71987@zxy.spb.ru> <20180630120536.GF71987@zxy.spb.ru> Message-ID: Ай, перегрелся, да. Оно просто маунтит не девайс, а папку, так что перекрывает. 2018-06-30 15:05 GMT+03:00 Slawa Olhovchenkov : > On Sat, Jun 30, 2018 at 02:55:16PM +0300, Роман Москвитин wrote: > > > В линуксе mount --bind /dev /mnt/dev ЕМНИП > > это разве смешивает, а не перекрывает? > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: