From nginx-forum на forum.nginx.org Thu Sep 1 03:05:20 2016 From: nginx-forum на forum.nginx.org (igroykt) Date: Wed, 31 Aug 2016 23:05:20 -0400 Subject: oauth+property list=403 forbidden Message-ID: Всем привет. Есть backend на nginx который раздает plist+ipa. Есть frontend который передает запросы на oauth2_proxy который проксирует на backend. Проблема в том, что если с frontend запросить plist, то отдается http код 403. 127.0.0.1 - - [01/Sep/2016:11:02:33 +0900] 127.0.0.1:4181 GET - "/somdir/some.plist" HTTP/1.0 "itunesstored/1.0 iOS/8.4 model/iPad3,3 build/12H143 (5; dt:78)" 403 2255 0.000 Когда как все остальные файлы отдаются нормально. Конфиг: server { listen 443 ssl http2; ssl on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA256:ECDHE-ECDSA-AES256-SHA256:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA256:DHE-RSA-AES256-SHA256:AES256-GCM-SHA384:AES256-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_certificate /etc/ssl/some.crt; ssl_certificate_key /etc/ssl/some.key; server_name host.example.com; server_tokens off; add_header Strict-Transport-Security max-age=2592000; add_header Allow "GET, POST, HEAD" always; access_log /usr/local/nginx/logs/some_access.log main; error_log /usr/local/nginx/logs/some_error.log; location / { proxy_pass http://127.0.0.1:4181; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; expires off; } } как быть? куда копать? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269332,269332#msg-269332 From gq на cs.msu.su Thu Sep 1 10:09:44 2016 From: gq на cs.msu.su (Alexander Gerasiov) Date: Thu, 1 Sep 2016 13:09:44 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEg0LTQstC+0LnQvdGL0Lwg0LrQvtC00Lg=?= =?UTF-8?B?0YDQvtCy0LDQvdC40LXQvCDQt9Cw0LPQvtC70L7QstC60LAg0L/RgNC4INC/?= =?UTF-8?B?0YDQvtC60YHQuNGA0L7QstCw0L3QuNC4?= In-Reply-To: <20160831175847.GS1855@mdounin.ru> References: <20160831185408.4afcb685@brick.gerasiov.net> <20160831175847.GS1855@mdounin.ru> Message-ID: <20160901130944.4badb321@brick.gerasiov.net> Hello Maxim, On Wed, 31 Aug 2016 20:58:47 +0300 Maxim Dounin wrote: > > Использую nginx в качестве forward proxy к apache с mod_svn. > > > > Известный трюк: для работы методов COPY MV требуется переписывать > > заголок Destination, чтобы поменять схему с https на http > > Это работает, но есть нюанс: если перемещаемый файл содержит > > кириллицу в имени, то он оказывается дважды перекодирован: > > > > В результате имя файла при копировании/перемещении бьется. > > > > Вопрос: что с этим делать? Как сказать nginx, чтобы он не кодировал > > заголовок при помощи urlencode? Или может как декодировать строку > > перед передачей ее в proxy_set_header? > > Проблема в том, что "set" при использовании переменных $1 .. $9 > делает ровно то же, что и rewrite, а именно - экранирует > специальные символы, предполагая, что исходной строкой был URI > запроса без экранировки. При этом nginx знает, были ли в URI > запроса специальные символы, и если их не было - то экранирование > не делается. > > Это, очевидно, баг, и когда нибудь его исправят, но пока этого не > случилось (в первую очередь потому, что там очень легко что-нибудь > сломать неосторожным движением). Этот баг где-то зарепортили? Или мне стоит добавить в trac? > > Простейшее решение на текущий момент - вместо $1 использовать > именованные выделения, т.е. так: > > if ($http_destination ~* ^https(?.*)$) > { > set $fixed_destination http$foo; > } > > Тогда экранирование делаться не будет в любом случае, и всё будет > работать как ожидается. > Спасибо, это действительно сработало. -- Best regards, Alexander Gerasiov Contacts: e-mail: gq на cs.msu.su Homepage: http://gerasiov.net Skype: gerasiov PGP fingerprint: 04B5 9D90 DF7C C2AB CD49 BAEA CA87 E9E8 2AAC 33F1 From nginx-forum на forum.nginx.org Thu Sep 1 11:17:14 2016 From: nginx-forum на forum.nginx.org (igroykt) Date: Thu, 01 Sep 2016 07:17:14 -0400 Subject: oauth+property list=403 forbidden In-Reply-To: References: Message-ID: <4c1225dd3868b2f58bf983cd92ffc4fb.NginxMailingListRussian@forum.nginx.org> Вот заголовки png: Request URL:https://host.example.com/somedir/some.png Request Method:GET Status Code:200 (from cache) Remote Address:x.x.x.x Response Headers accept-ranges:bytes allow:GET, POST, HEAD content-length:65811 content-type:image/png date:Thu, 01 Sep 2016 10:51:31 GMT etag:"575506e6-10113" last-modified:Mon, 06 Jun 2016 05:15:18 GMT server:nginx status:200 а вот заголовки проблемных файлов: Request URL:itms-services://?action=download-manifest&url=https://host.example.com/somedir/some.plist Request Headers Provisional headers are shown Upgrade-Insecure-Requests:1 User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Query String Parameters view source view URL encoded action:download-manifest url:https://host.example.com/somedir/some.plist Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269332,269339#msg-269339 From mdounin на mdounin.ru Thu Sep 1 13:48:38 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 1 Sep 2016 16:48:38 +0300 Subject: =?UTF-8?B?UmU6INCf0YDQvtCx0LvQtdC80LAg0YEg0LTQstC+0LnQvdGL0Lwg0LrQvtC00Lg=?= =?UTF-8?B?0YDQvtCy0LDQvdC40LXQvCDQt9Cw0LPQvtC70L7QstC60LAg0L/RgNC4INC/?= =?UTF-8?B?0YDQvtC60YHQuNGA0L7QstCw0L3QuNC4?= In-Reply-To: <20160901130944.4badb321@brick.gerasiov.net> References: <20160831185408.4afcb685@brick.gerasiov.net> <20160831175847.GS1855@mdounin.ru> <20160901130944.4badb321@brick.gerasiov.net> Message-ID: <20160901134837.GW1855@mdounin.ru> Hello! On Thu, Sep 01, 2016 at 01:09:44PM +0300, Alexander Gerasiov wrote: > On Wed, 31 Aug 2016 20:58:47 +0300 > Maxim Dounin wrote: > > > Использую nginx в качестве forward proxy к apache с mod_svn. > > > > > > Известный трюк: для работы методов COPY MV требуется переписывать > > > заголок Destination, чтобы поменять схему с https на http > > > > Это работает, но есть нюанс: если перемещаемый файл содержит > > > кириллицу в имени, то он оказывается дважды перекодирован: > > > > > > > В результате имя файла при копировании/перемещении бьется. > > > > > > Вопрос: что с этим делать? Как сказать nginx, чтобы он не кодировал > > > заголовок при помощи urlencode? Или может как декодировать строку > > > перед передачей ее в proxy_set_header? > > > > Проблема в том, что "set" при использовании переменных $1 .. $9 > > делает ровно то же, что и rewrite, а именно - экранирует > > специальные символы, предполагая, что исходной строкой был URI > > запроса без экранировки. При этом nginx знает, были ли в URI > > запроса специальные символы, и если их не было - то экранирование > > не делается. > > > > Это, очевидно, баг, и когда нибудь его исправят, но пока этого не > > случилось (в первую очередь потому, что там очень легко что-нибудь > > сломать неосторожным движением). > Этот баг где-то зарепортили? Или мне стоит добавить в trac? Всё тут: https://trac.nginx.org/nginx/ticket/348 -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Thu Sep 8 16:05:00 2016 From: nginx-forum на forum.nginx.org (Kira_Belka) Date: Thu, 08 Sep 2016 12:05:00 -0400 Subject: =?UTF-8?B?0KHRgtGA0LDQvdC90YvQtSDRgtC10LrRgdGCINC4INC60LvRjtGH0Lgg0LIgY2Fj?= =?UTF-8?B?aGUgbmdpbng=?= Message-ID: <220eb3c374d1da59e20bd20b4c73bf4d.NginxMailingListRussian@forum.nginx.org> включен кэш nginx. в закэшированом файле присутствует текст до HTTP/ проблема проявилась недавно. В следствие этого кэш не работает валютно. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269427,269427#msg-269427 From nginx на kinetiksoft.com Thu Sep 8 18:29:43 2016 From: nginx на kinetiksoft.com (=?utf-8?B?0JjQstCw0L0=?=) Date: Thu, 08 Sep 2016 21:29:43 +0300 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdGL0LUg0YLQtdC60YHRgiDQuCDQutC70Y7Rh9C4INCy?= =?UTF-8?B?IGNhY2hlIG5naW54?= In-Reply-To: <220eb3c374d1da59e20bd20b4c73bf4d.NginxMailingListRussian@forum.nginx.org> References: <220eb3c374d1da59e20bd20b4c73bf4d.NginxMailingListRussian@forum.nginx.org> Message-ID: <3081307.beFLKyoqT1@cybernote> Здравствуйте! В письме от 8 сентября 2016 12:05:00 пользователь Kira_Belka написал: > включен кэш nginx. > в закэшированом файле присутствует текст до > HTTP/ Он там присутствовал точно с тех пор, как я туда посмотрел первый раз. Где-то после 1.8.0 точно. И это вполне нормально, так работает кеширование nginx. > проблема проявилась недавно. > В следствие этого кэш не работает валютно. > Проблема в чём-то другом. С уважением, Иван. From sirotar на mail.ru Fri Sep 9 08:35:42 2016 From: sirotar на mail.ru (=?UTF-8?B?0KDQvtC80LDQvQ==?=) Date: Fri, 9 Sep 2016 11:35:42 +0300 Subject: mod_rewrite Message-ID: Добрый день, немножко оффтоп. Господа подскажите как вот такую конструкцию можно переписать на апачевский mod_rewrite. location ~* ^/themes/ext/(.*)/([^\/]+\.js)$ { set $jsScript /themes/ext_projects/$1/$2; try_files $jsScript $uri =404; } Спасибо. From nginx-forum на forum.nginx.org Fri Sep 9 13:05:53 2016 From: nginx-forum на forum.nginx.org (Kira_Belka) Date: Fri, 09 Sep 2016 09:05:53 -0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdGL0LUg0YLQtdC60YHRgiDQuCDQutC70Y7Rh9C4INCy?= =?UTF-8?B?IGNhY2hlIG5naW54?= In-Reply-To: <3081307.beFLKyoqT1@cybernote> References: <3081307.beFLKyoqT1@cybernote> Message-ID: чем тогда является данный текст?! Он не является ни заголовком ни каким либо параметром передаваемым в POST/GET там первая строчка с посыпавшейся кодировкой и это не кажется валидным. ??W????????o???? KEY: что выглядит весьма и весьма странным Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269427,269447#msg-269447 From nginx-forum на forum.nginx.org Fri Sep 9 13:43:24 2016 From: nginx-forum на forum.nginx.org (S.A.N) Date: Fri, 09 Sep 2016 09:43:24 -0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdGL0LUg0YLQtdC60YHRgiDQuCDQutC70Y7Rh9C4INCy?= =?UTF-8?B?IGNhY2hlIG5naW54?= In-Reply-To: References: <3081307.beFLKyoqT1@cybernote> Message-ID: <1c3bea8a20b8cca8b2cbd1d644aef55c.NginxMailingListRussian@forum.nginx.org> Kira_Belka Wrote: ------------------------------------------------------- > чем тогда является данный текст?! > Он не является ни заголовком ни каким либо параметром передаваемым в > POST/GET > > там первая строчка с посыпавшейся кодировкой и это не кажется > валидным. > ??W????????o???? > KEY: > > что выглядит весьма и весьма странным Все нормально, так и должно быть, это бинарные мета данные, они нужны только для Nginx, клиенту эта строка не отправляется. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269427,269448#msg-269448 From nginx-forum на forum.nginx.org Tue Sep 13 08:00:13 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Tue, 13 Sep 2016 04:00:13 -0400 Subject: =?UTF-8?B?Tmdpbngg0L3QtSDQvtGC0LLQtdGH0LDQtdGCINC90LAg0LfQsNC/0YDQvtGB0Ys=?= Message-ID: <7b483570c92ee081ce219a5a0aae5433.NginxMailingListRussian@forum.nginx.org> Nginx 1.11.3 FreeBSD 11.0-RC2 root на releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64 Стабильно пару раз в сутки Nginx перестаёт отвечать на запросы, а все поступающие запросы висят бесконечно, в итоге копятся тысячи подключений. Нагрузки на сервер при этом почти нет. Апач в это время за ним работает прекрасно, да и всё остальное связанное с сетью тоже. Добавил мониторинг 80 порта и перезапуск Nginx, только это помогает. Ни в одном логе и намёка нет на ошибки, в логи запросов просто ничего не пишется до перезапуска, общий debug лог пустой. Всё из sysctl.conf и loader.conf я убрал (кроме accf_data_load и accf_http_load), но всё равно виснет, так что проблема не в твиках там. Сейчас ещё отключил Jumbo Packets, т.к. на FreeBSD 9.2 они не были включены, а этот же конфиг работал нормально. Просто не знаю какие ещё различия остались в конфигурации. Хотя ещё вместо bind теперь local_unbound кеширующий резолвер настроен. nginx.conf: https://gist.github.com/Mikanoshi/7a4df65a3be71fb180192020f03cfa93 # nginx -V nginx version: nginx/1.11.3 built with OpenSSL 1.0.2h 3 May 2016 (running with OpenSSL 1.0.2h-freebsd 3 May 2016) TLS SNI support enabled configure arguments: --add-module=/usr/src/nginx/ngx_log_if --add-dynamic-module=/usr/src/nginx/nginx-module-vts --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --modules-path=/usr/local/libexec/nginx --with-file-aio --with-ipv6 --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-scgi-temp-path=/var/tmp/nginx/scgi_temp --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp --http-log-path=/var/log/nginx-access.log --with-http_auth_request_module --add-module=/usr/ports/www/nginx-devel/work/ngx_cache_purge-2.3 --add-dynamic-module=/usr/ports/www/nginx-devel/work/headers-more-nginx-module-f5559ec --with-http_dav_module --add-module=/usr/ports/www/nginx-devel/work/ngx-fancyindex-0.3.6 --with-http_geoip_module=dynamic --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_realip_module --with-http_stub_status_module --add-module=/usr/ports/www/nginx-devel/work/nginx-upload-progress-module-0.9.0 --add-module=/usr/ports/www/nginx-devel/work/ngx_devel_kit-0.3.0 --with-pcre --add-module=/usr/ports/www/nginx-devel/work/redis2-nginx-module-0.12 --with-http_v2_module --with-http_ssl_module --add-module=/usr/ports/www/nginx-devel/work/iconv-nginx-module-0.14 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269501#msg-269501 From mdounin на mdounin.ru Tue Sep 13 13:12:30 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 13 Sep 2016 16:12:30 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <7b483570c92ee081ce219a5a0aae5433.NginxMailingListRussian@forum.nginx.org> References: <7b483570c92ee081ce219a5a0aae5433.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160913131230.GH1527@mdounin.ru> Hello! On Tue, Sep 13, 2016 at 04:00:13AM -0400, Mikanoshi wrote: > Nginx 1.11.3 > FreeBSD 11.0-RC2 root на releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC > amd64 > > Стабильно пару раз в сутки Nginx перестаёт отвечать на запросы, а все > поступающие запросы висят бесконечно, в итоге копятся тысячи подключений. > Нагрузки на сервер при этом почти нет. > Апач в это время за ним работает прекрасно, да и всё остальное связанное с > сетью тоже. > Добавил мониторинг 80 порта и перезапуск Nginx, только это помогает. > Ни в одном логе и намёка нет на ошибки, в логи запросов просто ничего не > пишется до перезапуска, общий debug лог пустой. > Всё из sysctl.conf и loader.conf я убрал (кроме accf_data_load и > accf_http_load), но всё равно виснет, так что проблема не в твиках там. > Сейчас ещё отключил Jumbo Packets, т.к. на FreeBSD 9.2 они не были включены, > а этот же конфиг работал нормально. Я бы рекомендовал начать с простого: убрать из сборки (и из конфига) все сторонние модули и попробовать воспроизвести проблему без них. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Tue Sep 13 15:51:27 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 13 Sep 2016 18:51:27 +0300 Subject: nginx-1.11.4 Message-ID: <20160913155127.GQ1527@mdounin.ru> Изменения в nginx 1.11.4 13.09.2016 *) Добавление: переменная $upstream_bytes_received. *) Добавление: переменные $bytes_received, $session_time, $protocol, $status, $upstream_addr, $upstream_bytes_sent, $upstream_bytes_received, $upstream_connect_time, $upstream_first_byte_time и $upstream_session_time в модуле stream. *) Добавление: модуль ngx_stream_log_module. *) Добавление: параметр proxy_protocol в директиве listen, переменные $proxy_protocol_addr и $proxy_protocol_port в модуле stream. *) Добавление: модуль ngx_stream_realip_module. *) Исправление: nginx не собирался с модулем stream и модулем ngx_http_ssl_module, но без модуля ngx_stream_ssl_module; ошибка появилась в 1.11.3. *) Добавление: опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась; ошибка появилась в 1.11.2. *) Исправление: в параметре ranges директивы geo. *) Исправление: при использовании директив "aio threads" и sendfile мог возвращаться некорректный ответ; ошибка появилась в 1.9.13. -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Wed Sep 14 07:17:42 2016 From: nginx-forum на forum.nginx.org (vkmellon) Date: Wed, 14 Sep 2016 03:17:42 -0400 Subject: =?UTF-8?B?0JfQsNC80LXQvdCwIEJhc2U2NCBIZWFkZXI=?= Message-ID: <3592b37b3544abe84df6c9767a329af8.NginxMailingListRussian@forum.nginx.org> Здравствуйте! Подскажите пожалуйста или направьте на правильную мысль. Использую nginx version: nginx/1.11.3 Задача в следующем: На бек енде, который прозрачно публицируется в инет с помощью Nginx, настроена Basic авторизация, учетные данные передаются в Header К примеру: Authorization "Basic a2luZzppc25ha2Vk"; Нужно каким-то, пока не изветным мне, образом раскодировать Header, изменить некоторое постоянное значение, содержащееся в логине, закодировать обратно и передать на бек енд. Спасибо за любые идеи! Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269557,269557#msg-269557 From nginx на mva.name Wed Sep 14 07:51:09 2016 From: nginx на mva.name (Vadim A. Misbakh-Soloviov) Date: Wed, 14 Sep 2016 14:51:09 +0700 Subject: =?UTF-8?B?UmU6INCX0LDQvNC10L3QsCBCYXNlNjQgSGVhZGVy?= In-Reply-To: <3592b37b3544abe84df6c9767a329af8.NginxMailingListRussian@forum.nginx.org> References: <3592b37b3544abe84df6c9767a329af8.NginxMailingListRussian@forum.nginx.org> Message-ID: <15346472.ZayYiRUTs8@note> > Нужно каким-то, пока не изветным мне, образом раскодировать Header, изменить > некоторое постоянное значение, содержащееся в логине, закодировать обратно > и передать на бек енд. > Сходу видятся только модули Lua/Perl/JS. Но посмотрим что ответят остальные участники рассылки :) From annulen на yandex.ru Wed Sep 14 08:30:13 2016 From: annulen на yandex.ru (Konstantin Tokarev) Date: Wed, 14 Sep 2016 11:30:13 +0300 Subject: =?UTF-8?B?UmU6INCX0LDQvNC10L3QsCBCYXNlNjQgSGVhZGVy?= In-Reply-To: <3592b37b3544abe84df6c9767a329af8.NginxMailingListRussian@forum.nginx.org> References: <3592b37b3544abe84df6c9767a329af8.NginxMailingListRussian@forum.nginx.org> Message-ID: <516411473841813@web21j.yandex.ru> 14.09.2016, 10:17, "vkmellon" : > Здравствуйте! > > Подскажите пожалуйста или направьте на правильную мысль. > > Использую nginx version: nginx/1.11.3 > Задача в следующем: > На бек енде, который прозрачно публицируется в инет с помощью Nginx, > настроена Basic авторизация, учетные данные передаются в Header > К примеру: > Authorization "Basic a2luZzppc25ha2Vk"; > > Нужно каким-то, пока не изветным мне, образом раскодировать Header, изменить > некоторое постоянное значение, содержащееся в логине, закодировать обратно и > передать на бек енд. > > Спасибо за любые идеи! Не делать это в nginx, а добавить соответствующий код в бэкэнд, или добавить независимый скрипт, проксирующий запросы на внутренний бэкэнд и выполняющий нужную операцию > > Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269557,269557#msg-269557 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Regards, Konstantin From nginx-forum на forum.nginx.org Wed Sep 14 08:46:38 2016 From: nginx-forum на forum.nginx.org (vkmellon) Date: Wed, 14 Sep 2016 04:46:38 -0400 Subject: =?UTF-8?B?UmU6INCX0LDQvNC10L3QsCBCYXNlNjQgSGVhZGVy?= In-Reply-To: <516411473841813@web21j.yandex.ru> References: <516411473841813@web21j.yandex.ru> Message-ID: <716e1479d592f507a7dd04f7743905fc.NginxMailingListRussian@forum.nginx.org> Может есть какие-то примеры? Боюсь, сам не осилю. Бекэндом выступает Апач. Суть проблемы - убрать домененый суфикс "domain\" с вводимого пользователем логина "domain\username" Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269557,269564#msg-269564 From nginx на mva.name Wed Sep 14 09:18:13 2016 From: nginx на mva.name (Vadim A. Misbakh-Soloviov) Date: Wed, 14 Sep 2016 16:18:13 +0700 Subject: =?UTF-8?B?UmU6INCX0LDQvNC10L3QsCBCYXNlNjQgSGVhZGVy?= In-Reply-To: <716e1479d592f507a7dd04f7743905fc.NginxMailingListRussian@forum.nginx.org> References: <516411473841813@web21j.yandex.ru> <716e1479d592f507a7dd04f7743905fc.NginxMailingListRussian@forum.nginx.org> Message-ID: <3410124.hzFNL1S96S@note> > Бекэндом выступает Апач. А NginX в этой связке точно нужен? Или просто "потому что в интернетах пишут что NgX крутой"? Чем в этой связке занимается NginX кроме проксирования? И расположены ли они с апачем на одной машине или на разных? И что на счёт хайлода? From nginx-forum на forum.nginx.org Wed Sep 14 09:42:41 2016 From: nginx-forum на forum.nginx.org (vkmellon) Date: Wed, 14 Sep 2016 05:42:41 -0400 Subject: =?UTF-8?B?UmU6INCX0LDQvNC10L3QsCBCYXNlNjQgSGVhZGVy?= In-Reply-To: <3410124.hzFNL1S96S@note> References: <3410124.hzFNL1S96S@note> Message-ID: <1276cce2982903c4495bb05e32da46c2.NginxMailingListRussian@forum.nginx.org> Кроме reverse proxy Nginx выполняет фильтрацию по IP c помощью GeoIP. С Apache находятся на одном сервере. Сервер абсолютно не нагружен. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269557,269567#msg-269567 From nginx-forum на forum.nginx.org Wed Sep 14 11:44:20 2016 From: nginx-forum на forum.nginx.org (Inhibitor) Date: Wed, 14 Sep 2016 07:44:20 -0400 Subject: =?UTF-8?B?0KHRgtGA0LDQvdC90LDRjyDQvtGI0LjQsdC60LAg0YEg0L/QsNC80Y/RgtGM0Y4g?= =?UTF-8?B?cG9zaXggbWVtYWxpZ24oMTYsIDE2Mzg0KSBmYWlsZWQ=?= Message-ID: <25166718825bdf972b62dd97d788340b.NginxMailingListRussian@forum.nginx.org> Имеется: железный сервер для шаред-хостинга с nginx 1.11.4 content proxy. Система: 2.6.32-673.8.1.lve1.4.3.1.el6.x86_64 #1 SMP Thu May 5 16:06:47 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux На сервере 128GB RAM, свободно обычно 6-12GB. Своп на 0 в момент появления ошибки в логах. Переодически получаем это в логах: [emerg] 578865#578865: posix_memalign(16, 16384) failed (12: Cannot allocate memory) В момент ошибки: root на web1 ~]# free total used free shared buffers cached Mem: 131918508 121039568 10878940 1411016 12868116 57594020 -/+ buffers/cache: 50577432 81341076 Swap: 30718972 0 30718972 В sysctl особо ничего не меняли, только kernel.shmmax = 103079215104 kernel.shmall = 6442450944 С лимитами проблем нет. В конфиге: worker_processes 12; worker_connections 2048; use epoll; multi_accept on; accept_mutex off; Настройки http { sendfile on; sendfile_max_chunk 512k; tcp_nopush on; tcp_nodelay on; keepalive_timeout 75; types_hash_max_size 2048; server_tokens off; client_max_body_size 128m; client_body_buffer_size 128k; #Tweak timeout settings below in case of a DOS attack client_header_timeout 1m; client_body_timeout 1m; reset_timedout_connection on; connection_pool_size 512; client_header_buffer_size 4k; large_client_header_buffers 4 32k; request_pool_size 8k; output_buffers 4 32k; postpone_output 1460; #FastCGI fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; # the below options depend on theoretical maximum of your PHP script run-time fastcgi_read_timeout 300; fastcgi_send_timeout 300; server_names_hash_max_size 256000; server_names_hash_bucket_size 4096; include /etc/nginx/mime.types; default_type application/octet-stream; # Added extra map_hash_max_size 4096; map_hash_bucket_size 192; ssl_protocols TLSv1.2 TLSv1.1 TLSv1; # Open File Cache open_file_cache max=8192 inactive=5m; open_file_cache_valid 5m; open_file_cache_min_uses 2; open_file_cache_errors on; # Logging Settings open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2; #Mapping $msec to $sec so that we dont break cPanel bandwidth calculator map $msec $sec { ~^(?P.+)\. $secres; } log_format bytes_log "$sec $bytes_sent ."; log_not_found off; access_log off; Что можно посмотреть и покопать чтобы решить проблему? Сервер не крашится, но ошибка проявляется все чаще. Нагрузки особо нет, 20-60 реквестов с секунду. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269571,269571#msg-269571 From nginx-forum на forum.nginx.org Thu Sep 15 22:43:39 2016 From: nginx-forum на forum.nginx.org (caviar34) Date: Thu, 15 Sep 2016 18:43:39 -0400 Subject: purge cache on put/post request Message-ID: Здравствуйте. Хочется настроить nginx следующим образом: - Приходит GET - кэшируем, либо отдаем из кэша. - Приходит PUT, удаляем весь кэш, пропускаем запрос на бэкенд. Смотрю в сторону встроенного perl, в правильную ли сторону смотрю? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269604,269604#msg-269604 From nginx-forum на forum.nginx.org Fri Sep 16 05:54:00 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Fri, 16 Sep 2016 01:54:00 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <20160913131230.GH1527@mdounin.ru> References: <20160913131230.GH1527@mdounin.ru> Message-ID: Отключил оба модуля сторонних - то же самое, виснет. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269606#msg-269606 From bgx на protva.ru Fri Sep 16 07:12:17 2016 From: bgx на protva.ru (Evgeniy Berdnikov) Date: Fri, 16 Sep 2016 10:12:17 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: References: <20160913131230.GH1527@mdounin.ru> Message-ID: <20160916071216.GO4512@sie.protva.ru> On Fri, Sep 16, 2016 at 01:54:00AM -0400, Mikanoshi wrote: > Отключил оба модуля сторонних - то же самое, виснет. На каком сисколе висит? Снимите strace, покажите стэк вызовов. -- Eugene Berdnikov From nginx-forum на forum.nginx.org Fri Sep 16 09:40:40 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Fri, 16 Sep 2016 05:40:40 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <20160916071216.GO4512@sie.protva.ru> References: <20160916071216.GO4512@sie.protva.ru> Message-ID: <075f2afc57d6ea3ca45acb798826df8e.NginxMailingListRussian@forum.nginx.org> На FreeBSD x64 strace нет и не поставить, truss я так полагаю вместо него? Не пользовался ей, попробую. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269610#msg-269610 From mdounin на mdounin.ru Fri Sep 16 14:10:56 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 16 Sep 2016 17:10:56 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: References: <20160913131230.GH1527@mdounin.ru> Message-ID: <20160916141056.GA35798@mdounin.ru> Hello! On Fri, Sep 16, 2016 at 01:54:00AM -0400, Mikanoshi wrote: > Отключил оба модуля сторонних - то же самое, виснет. У вас в опциях сборки: -add-module=/usr/ports/www/nginx-devel/work/ngx_cache_purge-2.3 --add-dynamic-module=/usr/ports/www/nginx-devel/work/headers-more-nginx-module-f5559ec --add-module=/usr/ports/www/nginx-devel/work/ngx-fancyindex-0.3.6 --add-module=/usr/ports/www/nginx-devel/work/nginx-upload-progress-module-0.9.0 --add-module=/usr/ports/www/nginx-devel/work/ngx_devel_kit-0.3.0 --add-module=/usr/ports/www/nginx-devel/work/redis2-nginx-module-0.12 --add-module=/usr/ports/www/nginx-devel/work/iconv-nginx-module-0.14 Т.е. минимум 9 сторонних модулей в сборке. Слова про "отключил оба" позволяют предположить, что актуальная рекомендация всё та же: убрать из сборки (и из конфига) все сторонние модули и попробовать воспроизвести проблему без них. На FreeBSD это тривиально: зайти в настройки порта и снять отметки со всех модулей, помеченных как 3rd party. -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Fri Sep 16 18:21:08 2016 From: nginx-forum на forum.nginx.org (bogdan.sh) Date: Fri, 16 Sep 2016 14:21:08 -0400 Subject: =?UTF-8?B?UmU6INCh0YLRgNCw0L3QvdCw0Y8g0L7RiNC40LHQutCwINGBINC/0LDQvNGP0YI=?= =?UTF-8?B?0YzRjiBwb3NpeCBtZW1hbGlnbigxNiwgMTYzODQpIGZhaWxlZA==?= In-Reply-To: <25166718825bdf972b62dd97d788340b.NginxMailingListRussian@forum.nginx.org> References: <25166718825bdf972b62dd97d788340b.NginxMailingListRussian@forum.nginx.org> Message-ID: Мне также доводилось видеть такую проблему на сервере с CloudLinux, но пока никаких подтверждений что виновато ядро или система не нашлось. Все ресурсы в интернете сылаются на тюнинг nginx (либо kernel shmall / shmmax). Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269571,269627#msg-269627 From citrin на citrin.ru Fri Sep 16 20:35:36 2016 From: citrin на citrin.ru (Anton Yuzhaninov) Date: Fri, 16 Sep 2016 16:35:36 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <7b483570c92ee081ce219a5a0aae5433.NginxMailingListRussian@forum.nginx.org> References: <7b483570c92ee081ce219a5a0aae5433.NginxMailingListRussian@forum.nginx.org> Message-ID: On 2016-09-13 04:00, Mikanoshi wrote: > FreeBSD 11.0-RC2 root на releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC > amd64 > > Стабильно пару раз в сутки Nginx перестаёт отвечать на запросы, а все > поступающие запросы висят бесконечно, в итоге копятся тысячи подключений. > Нагрузки на сервер при этом почти нет. Когда зависнет посмотрите procstat -k PID для зависших процессов. From nginx-forum на forum.nginx.org Sun Sep 18 19:34:42 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Sun, 18 Sep 2016 15:34:42 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <7b483570c92ee081ce219a5a0aae5433.NginxMailingListRussian@forum.nginx.org> References: <7b483570c92ee081ce219a5a0aae5433.NginxMailingListRussian@forum.nginx.org> Message-ID: <34daeed7f8d699b6b52c7e5ab64e5b83.NginxMailingListRussian@forum.nginx.org> # ps axuww | grepc nginx root 53135 0.0 0.4 68624 11676 - Is 14:32 0:00.00 nginx: master process /usr/local/sbin/nginx www 53136 0.0 0.4 70672 13320 - I 14:32 0:23.31 nginx: worker process (nginx) www 53137 0.0 0.4 70672 12060 - I 14:32 0:12.39 nginx: worker process (nginx) www 53138 0.0 0.4 68624 12936 - I 14:32 0:27.34 nginx: worker process (nginx) www 53139 0.0 0.4 70672 12488 - I 14:32 0:23.35 nginx: worker process (nginx) www 53140 0.0 0.4 72720 12528 - I 14:32 0:11.48 nginx: worker process (nginx) www 53141 0.0 0.3 66576 10580 - S 14:32 0:22.22 nginx: cache manager process (nginx) # psext | grep nginx 80 www 80 www 53141 normal 20 20 0 10580 kqread 0:13.99 0:08.23 nginx: cache manager process (nginx) 0 root 0 wheel 53135 normal 20 20 0 11676 pause 0:00.00 0:00.00 nginx: master process /usr/local/sbin/nginx 80 www 80 www 53136 normal 20 20 0 13320 soclos 0:13.45 0:09.88 nginx: worker process (nginx) 80 www 80 www 53137 normal 20 20 0 12060 soclos 0:05.10 0:07.34 nginx: worker process (nginx) 80 www 80 www 53138 normal 20 20 0 12936 soclos 0:08.14 0:19.20 nginx: worker process (nginx) 80 www 80 www 53139 normal 20 20 0 12488 soclos 0:08.21 0:15.14 nginx: worker process (nginx) 80 www 80 www 53140 normal 20 20 0 12528 soclos 0:05.88 0:05.60 nginx: worker process (nginx) # procstat -k $(pgrep nginx) PID TID COMM TDNAME KSTACK 53141 101238 nginx - mi_switch sleepq_catch_signals sleepq_wait_sig _sleep kqueue_kevent kern_kevent sys_kevent amd64_syscall Xfast_syscall 53140 101281 nginx - mi_switch sleepq_catch_signals sleepq_wait_sig _sleep soclose _fdrop closef closefp amd64_syscall Xfast_syscall 53139 101117 nginx - mi_switch sleepq_catch_signals sleepq_wait_sig _sleep soclose _fdrop closef closefp amd64_syscall Xfast_syscall 53138 101095 nginx - mi_switch sleepq_catch_signals sleepq_wait_sig _sleep soclose _fdrop closef closefp amd64_syscall Xfast_syscall 53137 101200 nginx - mi_switch sleepq_catch_signals sleepq_wait_sig _sleep soclose _fdrop closef closefp amd64_syscall Xfast_syscall 53136 100605 nginx - mi_switch sleepq_catch_signals sleepq_wait_sig _sleep soclose _fdrop closef closefp amd64_syscall Xfast_syscall 53135 101161 nginx - mi_switch sleepq_catch_signals sleepq_wait_sig _sleep kern_sigsuspend sys_sigsuspend amd64_syscall Xfast_syscall Как только я запускаю трейс для воркера, он сразу развисет и начинает работать! soclos меняется на kqread # truss -p 53138 close(47) ERR#9 'Bad file descriptor' write(36,"2016/09/18 05:11:44 [crit] 53138"...,86) = 86 (0x56) kevent(46,{ },0,{ 0,EVFILT_TIMER,EV_CLEAR,0x0,0x371a2,0x0 45,EVFILT_READ,0x0,0x0,0x40,0x802a0d960 },512,0x0) = 2 (0x2) gettimeofday({ 1474180074.654655 },0x0) = 0 (0x0) recvmsg(0x2d,0x7fffffffe770,0x0) = 32 (0x20) close(3) = 0 (0x0) recvmsg(0x2d,0x7fffffffe770,0x0) = 32 (0x20) recvmsg(0x2d,0x7fffffffe770,0x0) ERR#35 'Resource temporarily unavailable' write(35,"212.109.218.47 - - [18/Sep/2016:"...,151) = 151 (0x97) write(7,"181.208.179.6 - - [18/Sep/2016:0"...,157) = 157 (0x9d) kevent(46,{ },0,{ 0,EVFILT_TIMER,EV_CLEAR,0x0,0x1,0x0 },512,0x0) = 1 (0x1) gettimeofday({ 1474180074.674655 },0x0) = 0 (0x0) kevent(46,{ },0,{ 0,EVFILT_TIMER,EV_CLEAR,0x0,0x1,0x0 },512,0x0) = 1 (0x1) gettimeofday({ 1474180074.809470 },0x0) = 0 (0x0) kevent(46,{ },0,{ 0,EVFILT_TIMER,EV_CLEAR,0x0,0x1,0x0 },512,0x0) = 1 (0x1) gettimeofday({ 1474180074.873733 },0x0) = 0 (0x0) ... То же самое с gdb: (gdb) attach 53141 ... (gdb) bt #0 0x00000008017db778 in _close () from /lib/libc.so.7 #1 0x0000000801a41295 in pthread_suspend_all_np () from /lib/libthr.so.3 #2 0x000000000042561c in ngx_close_connection () #3 0x000000000044f7ce in ngx_http_process_request_uri () #4 0x0000000000433fd0 in ngx_event_expire_timers () #5 0x0000000000433796 in ngx_process_events_and_timers () #6 0x000000000043a9d8 in ngx_single_process_cycle () #7 0x0000000000439096 in ngx_spawn_process () #8 0x000000000043a289 in ngx_master_process_cycle () #9 0x0000000000439a55 in ngx_master_process_cycle () #10 0x0000000000413244 in main () (gdb) bt #0 0x00000008017c398a in _kevent () from /lib/libc.so.7 #1 0x0000000801a41b82 in pthread_suspend_all_np () from /lib/libthr.so.3 #2 0x000000000043c185 in ngx_freebsd_sendfile_chain () #3 0x0000000000433764 in ngx_process_events_and_timers () #4 0x000000000043a9d8 in ngx_single_process_cycle () #5 0x0000000000439096 in ngx_spawn_process () #6 0x000000000043a289 in ngx_master_process_cycle () #7 0x0000000000439a55 in ngx_master_process_cycle () #8 0x0000000000413244 in main () Перед некоторыми запросами вот такое ещё появляется: kevent(45,{ },0,{ 49,EVFILT_READ,EV_CLEAR,0x0,0x230,0x8026e1a88 },512,0x0) = 1 (0x1) read(49,"\^W\^C\^C\^B+\0\0\0\0\0\0\0\^V]op#\M-&\M-QgRx\M->\M-|\M-^t)\M-w\M^KR\M^V\M-Wu\M-hYI\M-o/\M^V\M^A@\M^C\^W\M^X\^P\M^B\^F\^]\vs\M-i\^[\M-1\^^;\M-\\M-G\M-kq\M-$>\M^N\M^U\M^Je\M^HN\M--\M^C*\M-5\M-T\M-dT\M^BH88G_\M-wp\M-K\M-G\^Us\M--\M^E8\M-UZ\M-N\M-ea\M-IB\M^O"...,33093) = 560 (0x230) read(49,0x8028357c3,33093) ERR#35 'Resource temporarily unavailable' aio_read(0x8020689a0) = 0 (0x0) aio_error(0x8020689a0) = 0 (0x0) aio_return(0x8020689a0) = 2440 (0x988) write(49,"\^W\^C\^C\^E\M-}\M-[&\M-qU\M-f\M-6\f\M-h\^S\M^PA\M^N\M-H\M-N\^U2\^U.\M^X1\M-K\M-W\M^U\M-K\M^Y[[\M-`\M^C\M^D\M-<'g-oV\M-L\M-RM\M-tr\M-0?\M^B\^\\M-a\M-M\^SR]\M-a\M-t\^RP<\^Y\M-!Q:~\M-:!AH\M^_\M^K\M-y\M-j\M-(\\~t\M^Ra^w\M-c\M-{9\M-(\M-P\M-d?F\M^IAQ%\M^@\M-S"...,1538) = 1538 (0x602) Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269650#msg-269650 From nginx-forum на forum.nginx.org Sun Sep 18 22:28:00 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Sun, 18 Sep 2016 18:28:00 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <34daeed7f8d699b6b52c7e5ab64e5b83.NginxMailingListRussian@forum.nginx.org> References: <7b483570c92ee081ce219a5a0aae5433.NginxMailingListRussian@forum.nginx.org> <34daeed7f8d699b6b52c7e5ab64e5b83.NginxMailingListRussian@forum.nginx.org> Message-ID: Также непонятно куда пишется эта строка: close(48) ERR#9 'Bad file descriptor' write(37,"2016/09/19 02:52:14 [crit] 14580#0: close() socket 48 failed (9: Bad file descriptor)\n",86) = 86 (0x56) Ни в одном логе её нет, error_log у меня на уровнях http, server и /dev/null в некоторых location, но их я заменил на один файл и там тоже этой ошибки нет. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269651#msg-269651 From mdounin на mdounin.ru Sun Sep 18 22:56:20 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 19 Sep 2016 01:56:20 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: References: <7b483570c92ee081ce219a5a0aae5433.NginxMailingListRussian@forum.nginx.org> <34daeed7f8d699b6b52c7e5ab64e5b83.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160918225620.GA73038@mdounin.ru> Hello! On Sun, Sep 18, 2016 at 06:28:00PM -0400, Mikanoshi wrote: > Также непонятно куда пишется эта строка: > > close(48) ERR#9 'Bad file > descriptor' > write(37,"2016/09/19 02:52:14 [crit] 14580#0: close() socket 48 failed (9: > Bad file descriptor)\n",86) = 86 (0x56) > > Ни в одном логе её нет, error_log у меня на уровнях http, server и /dev/null > в некоторых location, но их я заменил на один файл и там тоже этой ошибки > нет. Эта ошибка должна писаться в лог, настроенный на глобальном уровне. Если вы его не настроили явно - будет использован лог, заданный в параметре сборки --error-log-path, в вашем случае - /var/log/nginx-error.log. -- Maxim Dounin http://nginx.org/ From mdounin на mdounin.ru Sun Sep 18 22:58:03 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 19 Sep 2016 01:58:03 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <34daeed7f8d699b6b52c7e5ab64e5b83.NginxMailingListRussian@forum.nginx.org> References: <7b483570c92ee081ce219a5a0aae5433.NginxMailingListRussian@forum.nginx.org> <34daeed7f8d699b6b52c7e5ab64e5b83.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160918225803.GB73038@mdounin.ru> Hello! On Sun, Sep 18, 2016 at 03:34:42PM -0400, Mikanoshi wrote: [...] > # procstat -k $(pgrep nginx) > PID TID COMM TDNAME KSTACK > 53141 101238 nginx - mi_switch > sleepq_catch_signals sleepq_wait_sig _sleep kqueue_kevent kern_kevent > sys_kevent amd64_syscall Xfast_syscall > 53140 101281 nginx - mi_switch > sleepq_catch_signals sleepq_wait_sig _sleep soclose _fdrop closef closefp > amd64_syscall Xfast_syscall > 53139 101117 nginx - mi_switch > sleepq_catch_signals sleepq_wait_sig _sleep soclose _fdrop closef closefp > amd64_syscall Xfast_syscall [...] > Как только я запускаю трейс для воркера, он сразу развисет и начинает > работать! soclos меняется на kqread Всё это выглядит как ошибка ядра. Во FreeBSD 11 был существенно переделан sendfile() в части работы с флагом SF_NODISKIO - возможно, имеет смысл попробовать выключить sendfile и/или aio. -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Mon Sep 19 08:03:36 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Mon, 19 Sep 2016 04:03:36 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <20160918225620.GA73038@mdounin.ru> References: <20160918225620.GA73038@mdounin.ru> Message-ID: <66ea13eebe25bf2eded5aab13b6d92bd.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Эта ошибка должна писаться в лог, настроенный на глобальном > уровне. Если вы его не настроили явно - будет использован лог, > заданный в параметре сборки --error-log-path, в вашем случае - > /var/log/nginx-error.log. В том-то и дело, что лог задан error_log /var/log/nginx-error.log warn; но он абсолютно пустой. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269654#msg-269654 From bgx на protva.ru Mon Sep 19 08:29:37 2016 From: bgx на protva.ru (Evgeniy Berdnikov) Date: Mon, 19 Sep 2016 11:29:37 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <66ea13eebe25bf2eded5aab13b6d92bd.NginxMailingListRussian@forum.nginx.org> References: <20160918225620.GA73038@mdounin.ru> <66ea13eebe25bf2eded5aab13b6d92bd.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160919082937.GA18367@protva.ru> On Mon, Sep 19, 2016 at 04:03:36AM -0400, Mikanoshi wrote: > Maxim Dounin Wrote: > ------------------------------------------------------- > > Эта ошибка должна писаться в лог, настроенный на глобальном > > уровне. Если вы его не настроили явно - будет использован лог, > > заданный в параметре сборки --error-log-path, в вашем случае - > > /var/log/nginx-error.log. > > В том-то и дело, что лог задан > error_log /var/log/nginx-error.log warn; > но он абсолютно пустой. Ну так посмотрите, куда файловый дескриптор показывает. Не знаю как во freebsd, в линуксе это выглядит как "ls -l /proc//fd/". В линуксовом /proc//fdinfo/ лежит дополнительная информация. Есть lsof под множество платформ, наверное и под freebsd есть тоже. Возможно, запись идёт в удалённый (например, при неправильной ротации логов) файл. -- Eugene Berdnikov From nginx-forum на forum.nginx.org Mon Sep 19 10:05:02 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Mon, 19 Sep 2016 06:05:02 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <20160919082937.GA18367@protva.ru> References: <20160919082937.GA18367@protva.ru> Message-ID: <07a926d6eb800f30e7186b63edac8c48.NginxMailingListRussian@forum.nginx.org> Evgeniy Berdnikov Wrote: ------------------------------------------------------- > On Mon, Sep 19, 2016 at 04:03:36AM -0400, Mikanoshi wrote: > > Maxim Dounin Wrote: > > ------------------------------------------------------- > > > Эта ошибка должна писаться в лог, настроенный на глобальном > > > уровне. Если вы его не настроили явно - будет использован лог, > > > заданный в параметре сборки --error-log-path, в вашем случае - > > > /var/log/nginx-error.log. > > > > В том-то и дело, что лог задан > > error_log /var/log/nginx-error.log warn; > > но он абсолютно пустой. > > Ну так посмотрите, куда файловый дескриптор показывает. Не знаю как > во freebsd, в линуксе это выглядит как "ls -l /proc//fd/". > В линуксовом /proc//fdinfo/ лежит дополнительная информация. > Есть lsof под множество платформ, наверное и под freebsd есть тоже. > Возможно, запись идёт в удалённый (например, при неправильной > ротации логов) файл. # lsof | grep nginx-error.log COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 15491 root 5w VREG 0,80 0 643535 /var/log/nginx-error.log nginx 15492 www 5w VREG 0,80 0 643535 /var/log/nginx-error.log nginx 15493 www 5w VREG 0,80 0 643535 /var/log/nginx-error.log nginx 15494 www 5w VREG 0,80 0 643535 /var/log/nginx-error.log nginx 15495 www 5w VREG 0,80 0 643535 /var/log/nginx-error.log nginx 15496 www 5w VREG 0,80 0 643535 /var/log/nginx-error.log nginx 15497 www 5w VREG 0,80 0 643535 /var/log/nginx-error.log # fuser /var/log/nginx-error.log /var/log/nginx-error.log: 15497wa 15496wa 15495wa 15494wa 15493wa 15492wa 15491wa # procstat -f 15491 | grep nginx-error PID COMM FD T V FLAGS REF OFFSET PRO NAME 15491 nginx 5 v r -wa----- 7 0 - /var/log/nginx-error.log # cat /etc/newsyslog.conf | grep nginx # cat /usr/local/etc/logrotate.conf | grep nginx-error -A 2 /var/log/nginx-error.log { size 3M } # ls -l /var/log/nginx-error.log -rw-r--r-- 1 root wheel 0 19 сент. 14:48 /var/log/nginx-error.log Nginx после каждого зависания перезапускаю, ротации ни разу не было. Посмотрю ещё при след зависании дескрипторы. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269658#msg-269658 From bgx на protva.ru Mon Sep 19 10:37:40 2016 From: bgx на protva.ru (Evgeniy Berdnikov) Date: Mon, 19 Sep 2016 13:37:40 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <07a926d6eb800f30e7186b63edac8c48.NginxMailingListRussian@forum.nginx.org> References: <20160919082937.GA18367@protva.ru> <07a926d6eb800f30e7186b63edac8c48.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160919103740.GC18367@protva.ru> On Mon, Sep 19, 2016 at 06:05:02AM -0400, Mikanoshi wrote: > Evgeniy Berdnikov Wrote: > ------------------------------------------------------- > > On Mon, Sep 19, 2016 at 04:03:36AM -0400, Mikanoshi wrote: > > > Maxim Dounin Wrote: > > > ------------------------------------------------------- > > > > Эта ошибка должна писаться в лог, настроенный на глобальном > > > > уровне. Если вы его не настроили явно - будет использован лог, > > > > заданный в параметре сборки --error-log-path, в вашем случае - > > > > /var/log/nginx-error.log. > > > > > > В том-то и дело, что лог задан > > > error_log /var/log/nginx-error.log warn; > > > но он абсолютно пустой. > > > > Ну так посмотрите, куда файловый дескриптор показывает. Не знаю как > > во freebsd, в линуксе это выглядит как "ls -l /proc//fd/". > > В линуксовом /proc//fdinfo/ лежит дополнительная информация. > > Есть lsof под множество платформ, наверное и под freebsd есть тоже. > > Возможно, запись идёт в удалённый (например, при неправильной > > ротации логов) файл. > > # lsof | grep nginx-error.log Я предлагал посмотреть, куда показывает файловый дескриптор (в трейсе он был с номером 37), а не какие дескрипторы открыты на nginx-error.log. > COMMAND PID USER FD TYPE DEVICE SIZE/OFF > NODE NAME > nginx 15491 root 5w VREG 0,80 0 > 643535 /var/log/nginx-error.log > nginx 15492 www 5w VREG 0,80 0 > 643535 /var/log/nginx-error.log [..skipped..] > # cat /etc/newsyslog.conf | grep nginx > > # cat /usr/local/etc/logrotate.conf | grep nginx-error -A 2 > /var/log/nginx-error.log { > size 3M > } Ну и где же здесь сигнал nginx'у переоткрыть файл? Усиливается подозрение в том, что лог пишется в уже удалённый файл. -- Eugene Berdnikov From nginx-forum на forum.nginx.org Mon Sep 19 10:51:39 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Mon, 19 Sep 2016 06:51:39 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <20160919103740.GC18367@protva.ru> References: <20160919103740.GC18367@protva.ru> Message-ID: <3c603893b42924ec82825b1f763b344d.NginxMailingListRussian@forum.nginx.org> Evgeniy Berdnikov Wrote: ------------------------------------------------------- > Ну и где же здесь сигнал nginx'у переоткрыть файл? Усиливается > подозрение в том, что лог пишется в уже удалённый файл. Не надо переоткрывать) rotate 2 copytruncate notifempty missingok Точно не из-за ротации это, и 3МБ лог ошиок не был никогда. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269661#msg-269661 From nginx-forum на forum.nginx.org Mon Sep 19 15:14:40 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Mon, 19 Sep 2016 11:14:40 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <20160919103740.GC18367@protva.ru> References: <20160919103740.GC18367@protva.ru> Message-ID: <532b289de74ad92ebd49197c9586f76f.NginxMailingListRussian@forum.nginx.org> Evgeniy Berdnikov Wrote: ------------------------------------------------------- > Я предлагал посмотреть, куда показывает файловый дескриптор (в трейсе > он был с номером 37), а не какие дескрипторы открыты на > nginx-error.log. # truss -s 1024 -p 15495 close(49) ERR#9 'Bad file descriptor' write(36,"2016/09/19 18:16:03 [crit] 15495#0: close() socket 49 failed (9: Bad file descriptor)\n",86) = 86 (0x56) lsof: nginx 15495 www 36w VREG 0,80 32017 722956 / (/dev/da0p2) procstat: 15495 nginx 36 v r -wa----- 14 32103 - - # find /var/log -inum 722956 /var/log/nginx/error.log И правда, лог там. Я не увидел, что такая папка есть, её же не должно быть, error_log у меня переопределён. Если удалить, то nginx вообще не стартует, т.к. не может лог открыть. Перенос error_log из http в main даёт запустить, но всё равно: nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (2: No such file or directory) Как полностью-то изменить путь?) Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269664#msg-269664 From mdounin на mdounin.ru Mon Sep 19 16:07:13 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Mon, 19 Sep 2016 19:07:13 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <532b289de74ad92ebd49197c9586f76f.NginxMailingListRussian@forum.nginx.org> References: <20160919103740.GC18367@protva.ru> <532b289de74ad92ebd49197c9586f76f.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160919160712.GF73038@mdounin.ru> Hello! On Mon, Sep 19, 2016 at 11:14:40AM -0400, Mikanoshi wrote: > Evgeniy Berdnikov Wrote: > ------------------------------------------------------- > > > Я предлагал посмотреть, куда показывает файловый дескриптор (в трейсе > > он был с номером 37), а не какие дескрипторы открыты на > > nginx-error.log. > > # truss -s 1024 -p 15495 > close(49) ERR#9 'Bad file > descriptor' > write(36,"2016/09/19 18:16:03 [crit] 15495#0: close() socket 49 failed (9: > Bad file descriptor)\n",86) = 86 (0x56) > > lsof: > nginx 15495 www 36w VREG 0,80 32017 > 722956 / (/dev/da0p2) > > procstat: > 15495 nginx 36 v r -wa----- 14 32103 - - > > # find /var/log -inum 722956 > /var/log/nginx/error.log > > И правда, лог там. Я не увидел, что такая папка есть, её же не должно быть, > error_log у меня переопределён. Ну т.е. у вас используется не та сборка, параметры которой вы приводили в исходном письме - видимо, вы обновились до свежей версии порта, а там изменены пути к логам по умолчанию. Исходное же положение про "по умолчанию логгируется туда, куда показывает параметр configure --error-log-path" - по прежнему в силе. > Если удалить, то nginx вообще не стартует, т.к. не может лог открыть. > Перенос error_log из http в main даёт запустить, но всё равно: > > nginx: [alert] could not open error log file: open() > "/var/log/nginx/error.log" failed (2: No such file or directory) > > Как полностью-то изменить путь?) Пересобрать с другим параметром --error-log-path. Вкомпилированный error log всегда открывается для записи ошибок в процессе парсинга конфигурации, см. подробности тут: https://trac.nginx.org/nginx/ticket/147 -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Mon Sep 19 17:29:06 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Mon, 19 Sep 2016 13:29:06 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <20160919160712.GF73038@mdounin.ru> References: <20160919160712.GF73038@mdounin.ru> Message-ID: <4d4e2839bc735ad58ac9f3d9979f48f6.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > https://trac.nginx.org/nginx/ticket/147 Ясно, надо чаще читать /usr/ports/UPDATING :) Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269666#msg-269666 From nginx-forum на forum.nginx.org Mon Sep 19 22:58:16 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Mon, 19 Sep 2016 18:58:16 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <20160918225803.GB73038@mdounin.ru> References: <20160918225803.GB73038@mdounin.ru> Message-ID: <28e4fb1b0a81b5f7b90785542b35b49c.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Всё это выглядит как ошибка ядра. Во FreeBSD 11 был существенно > переделан sendfile() в части работы с флагом SF_NODISKIO - > возможно, имеет смысл попробовать выключить sendfile и/или aio. Всё равно ошибка: 2016/09/20 03:48:14 [crit] 16449#0: close() socket 44 failed (9: Bad file descriptor) 2016/09/20 03:49:02 [info] 16449#0: kevent() failed (4: Interrupted system call) 44 сокет не показывается в lsof на момент зависания. Cокеты эти для соединений используется: nginx 26627 www 44u IPv4 0xfffff80025951410 0t0 TCP domain.ru:http->176-106-199-5.point.lviv.ua:28084 (ESTABLISHED) Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269669#msg-269669 From bgx на protva.ru Tue Sep 20 07:32:01 2016 From: bgx на protva.ru (Evgeniy Berdnikov) Date: Tue, 20 Sep 2016 10:32:01 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <28e4fb1b0a81b5f7b90785542b35b49c.NginxMailingListRussian@forum.nginx.org> References: <20160918225803.GB73038@mdounin.ru> <28e4fb1b0a81b5f7b90785542b35b49c.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160920073201.GD18367@protva.ru> On Mon, Sep 19, 2016 at 06:58:16PM -0400, Mikanoshi wrote: > Maxim Dounin Wrote: > ------------------------------------------------------- > > Всё это выглядит как ошибка ядра. Во FreeBSD 11 был существенно > > переделан sendfile() в части работы с флагом SF_NODISKIO - > > возможно, имеет смысл попробовать выключить sendfile и/или aio. > > Всё равно ошибка: > 2016/09/20 03:48:14 [crit] 16449#0: close() socket 44 failed (9: Bad file > descriptor) > 2016/09/20 03:49:02 [info] 16449#0: kevent() failed (4: Interrupted system > call) > > 44 сокет не показывается в lsof на момент зависания. Значение errno=EBADF означает "сокет 44 не существует". После такой записи в лог номер 44 может получить сокет, открытый позже. Тогда новый сокет может попасть в выдачу lsof и быть ошибочно отождествлён с тем сокетом, который не удалось закрыть рабочему процессу. > Cокеты эти для соединений используется: > nginx 26627 www 44u IPv4 0xfffff80025951410 0t0 > TCP domain.ru:http->176-106-199-5.point.lviv.ua:28084 (ESTABLISHED) Здесь может быть повторное использование номера 44 для нового сокета. -- Eugene Berdnikov From nginx-forum на forum.nginx.org Tue Sep 20 11:34:12 2016 From: nginx-forum на forum.nginx.org (misha_shar53) Date: Tue, 20 Sep 2016 07:34:12 -0400 Subject: 403 Forbidden In-Reply-To: <57742699.4000203@gmail.com> References: <57742699.4000203@gmail.com> Message-ID: У меня SUSE Linux в нем я Selinux не обнаружил. Наверно по умолчанию не ставится. Есть еще аналогичная программа AppArmor. Ее я то же отключил. Сообщение 403 Forbidden все равно появляется.Ничего не пойму. В Windows попробовал все работает, nginx не отшибает. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,119063,269679#msg-269679 From stalker на altlinux.ru Tue Sep 20 11:47:13 2016 From: stalker на altlinux.ru (Anton Gorlov) Date: Tue, 20 Sep 2016 14:47:13 +0300 Subject: 403 Forbidden In-Reply-To: References: <57742699.4000203@gmail.com> Message-ID: Проверяйте права по всему пути к файлу. 20.09.2016 14:34, misha_shar53 пишет: > У меня SUSE Linux в нем я Selinux не обнаружил. Наверно по умолчанию не > ставится. > Есть еще аналогичная программа AppArmor. Ее я то же отключил. > Сообщение 403 Forbidden все равно появляется.Ничего не пойму. > В Windows попробовал все работает, nginx не отшибает. > > Posted at Nginx Forum: https://forum.nginx.org/read.php?21,119063,269679#msg-269679 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > From mdounin на mdounin.ru Tue Sep 20 13:06:35 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Tue, 20 Sep 2016 16:06:35 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <28e4fb1b0a81b5f7b90785542b35b49c.NginxMailingListRussian@forum.nginx.org> References: <20160918225803.GB73038@mdounin.ru> <28e4fb1b0a81b5f7b90785542b35b49c.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160920130635.GH73038@mdounin.ru> Hello! On Mon, Sep 19, 2016 at 06:58:16PM -0400, Mikanoshi wrote: > Maxim Dounin Wrote: > ------------------------------------------------------- > > Всё это выглядит как ошибка ядра. Во FreeBSD 11 был существенно > > переделан sendfile() в части работы с флагом SF_NODISKIO - > > возможно, имеет смысл попробовать выключить sendfile и/или aio. > > Всё равно ошибка: > 2016/09/20 03:48:14 [crit] 16449#0: close() socket 44 failed (9: Bad file > descriptor) Всмысле - как и ранее, после ручного массажирования зависшего процесса? Попробуйте ещё выключить reset_timedout_connections, возможно умудрились сломать SO_LINGER. Судя по стеку и каналу ожидания - ждёт оно как раз в части обработки SO_LINGER, тут: http://fxr.watson.org/fxr/source/kern/uipc_socket.c?v=FREEBSD11#L871 -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Tue Sep 20 15:41:29 2016 From: nginx-forum на forum.nginx.org (misha_shar53) Date: Tue, 20 Sep 2016 11:41:29 -0400 Subject: 403 Forbidden In-Reply-To: References: Message-ID: <35d79b7b2d14016ef9aa98198bc8fba8.NginxMailingListRussian@forum.nginx.org> С файлом как раз все в порядке. Все открывается. Проблемы возникают когда обращение идет через localhost. http://localhost/index.htm А в файле конфигурации указан каталог содержащий этот файл. location /term.htm { root /home/dima/www/; } Posted at Nginx Forum: https://forum.nginx.org/read.php?21,119063,269688#msg-269688 From alex.hha на gmail.com Tue Sep 20 15:54:33 2016 From: alex.hha на gmail.com (Alex Domoradov) Date: Tue, 20 Sep 2016 18:54:33 +0300 Subject: 403 Forbidden In-Reply-To: <35d79b7b2d14016ef9aa98198bc8fba8.NginxMailingListRussian@forum.nginx.org> References: <35d79b7b2d14016ef9aa98198bc8fba8.NginxMailingListRussian@forum.nginx.org> Message-ID: Включите debug и посмотрите 2016-09-20 18:41 GMT+03:00 misha_shar53 : > С файлом как раз все в порядке. Все открывается. > Проблемы возникают когда обращение идет через localhost. > http://localhost/index.htm > А в файле конфигурации указан каталог содержащий этот файл. > location /term.htm { root /home/dima/www/; } > > Posted at Nginx Forum: https://forum.nginx.org/read. > php?21,119063,269688#msg-269688 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Tue Sep 20 16:37:06 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Tue, 20 Sep 2016 12:37:06 -0400 Subject: =?UTF-8?B?0J/QvtC00LzQtdC90LjRgtGMIFN0YXR1cyBjb2Rl?= Message-ID: Здравствуйте. Можно ли подменить Status code от проксируемого сервера? Он отдаёт "206 Partial Content", а надо обычный "200 OK" Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269693,269693#msg-269693 From nginx на kinetiksoft.com Tue Sep 20 17:30:59 2016 From: nginx на kinetiksoft.com (=?utf-8?B?0JjQstCw0L0=?=) Date: Tue, 20 Sep 2016 20:30:59 +0300 Subject: 403 Forbidden In-Reply-To: <35d79b7b2d14016ef9aa98198bc8fba8.NginxMailingListRussian@forum.nginx.org> References: <35d79b7b2d14016ef9aa98198bc8fba8.NginxMailingListRussian@forum.nginx.org> Message-ID: <1934428.eylLs71s35@cybernote> Здравствуйте! У Вас веб-сервер запущен от одного пользователя, например, nginx, а домашние директории /home/* (/home/dima) практически всегда доступны на чтение только для их владельца. Вот отсюда ноги и растут. То есть Вам сразу верно сказали: проблема с правами на файловой системе. Вопрос не к nginx. С уважением, Иван. В письме от 20 сентября 2016 11:41:29 пользователь misha_shar53 написал: > С файлом как раз все в порядке. Все открывается. > Проблемы возникают когда обращение идет через localhost. > http://localhost/index.htm > А в файле конфигурации указан каталог содержащий этот файл. > location /term.htm { root /home/dima/www/; } > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,119063,269688#msg-269688 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru From chipitsine на gmail.com Tue Sep 20 17:53:43 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Tue, 20 Sep 2016 22:53:43 +0500 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: References: Message-ID: сервер отдает 206, потому что сервер сказал Accept-Ranges, чем клиент воспользовался. 20 сентября 2016 г., 21:37 пользователь jtiq написал: > Здравствуйте. > > Можно ли подменить Status code от проксируемого сервера? > > Он отдаёт "206 Partial Content", а надо обычный "200 OK" > > Posted at Nginx Forum: https://forum.nginx.org/read. > php?21,269693,269693#msg-269693 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Tue Sep 20 20:32:18 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Tue, 20 Sep 2016 16:32:18 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: References: Message-ID: <5421a990f36a3fe8caa73e6b59407bef.NginxMailingListRussian@forum.nginx.org> Илья Шипицин Wrote: ------------------------------------------------------- > сервер отдает 206, потому что сервер сказал Accept-Ranges, чем клиент > воспользовался. > > 20 сентября 2016 г., 21:37 пользователь jtiq > > написал: > > > Здравствуйте. > > > > Можно ли подменить Status code от проксируемого сервера? > > > > Он отдаёт "206 Partial Content", а надо обычный "200 OK" > > > > Posted at Nginx Forum: https://forum.nginx.org/read. > > php?21,269693,269693#msg-269693 > > > > _______________________________________________ > > 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 ну это то понятно, а как то можно заставить nginx отдать 200 ok? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269693,269706#msg-269706 From nginx на mva.name Tue Sep 20 22:16:38 2016 From: nginx на mva.name (Vadim A. Misbakh-Soloviov) Date: Wed, 21 Sep 2016 05:16:38 +0700 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <5421a990f36a3fe8caa73e6b59407bef.NginxMailingListRussian@forum.nginx.org> References: <5421a990f36a3fe8caa73e6b59407bef.NginxMailingListRussian@forum.nginx.org> Message-ID: <2237149.M6CGzWEffv@note> Не говорить клиенту о поддержке частичной отдачи. Впрочем, за километр пахнет синдромом XY. Давайте вы лучше скажете в чём заключается сама задача, вместо того, чтобы пытаться решить то, что по вашему мнению приблизит вас к (неправильному, как правило) решению. From nginx-forum на forum.nginx.org Wed Sep 21 06:38:32 2016 From: nginx-forum на forum.nginx.org (misha_shar53) Date: Wed, 21 Sep 2016 02:38:32 -0400 Subject: 403 Forbidden In-Reply-To: <1934428.eylLs71s35@cybernote> References: <1934428.eylLs71s35@cybernote> Message-ID: <150ce7c2b07a79b245ff1682b1e4ea85.NginxMailingListRussian@forum.nginx.org> Иван, большое спасибо. Наконец понял. Извини за тупость. То что это не к nginx я догадался. Просто думал что кто нибудь еще с этой проблемой сталкивался. С уважением Михаил. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,119063,269712#msg-269712 From nginx-forum на forum.nginx.org Wed Sep 21 07:41:35 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Wed, 21 Sep 2016 03:41:35 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <20160920130635.GH73038@mdounin.ru> References: <20160920130635.GH73038@mdounin.ru> Message-ID: <2bd5b744b79859bc853e0b83300e0d5c.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Всмысле - как и ранее, после ручного массажирования зависшего > процесса? > > Попробуйте ещё выключить reset_timedout_connections, возможно > умудрились сломать SO_LINGER. Судя по стеку и каналу ожидания - > ждёт оно как раз в части обработки SO_LINGER, тут: > > http://fxr.watson.org/fxr/source/kern/uipc_socket.c?v=FREEBSD11#L871 Да, оживает от трейса. Ещё часов 9 для уверенности должно пройти, но похоже отключение reset_timedout_connection помогло, пока ни одного зависшего процесса, вместо этого в логе ошибки: 2016/09/21 00:48:27 [info] 60348#0: close() socket 44 failed (54: Connection reset by peer) 2016/09/21 01:02:57 [info] 60347#0: close() socket 54 failed (54: Connection reset by peer) 2016/09/21 03:51:18 [info] 60347#0: close() socket 48 failed (54: Connection reset by peer) 2016/09/21 05:13:45 [info] 60347#0: close() socket 54 failed (54: Connection reset by peer) 2016/09/21 07:29:33 [info] 60346#0: close() socket 47 failed (54: Connection reset by peer) 2016/09/21 10:13:40 [info] 60346#0: close() socket 46 failed (54: Connection reset by peer) Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269715#msg-269715 From nginx-forum на forum.nginx.org Wed Sep 21 07:53:46 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Wed, 21 Sep 2016 03:53:46 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <2237149.M6CGzWEffv@note> References: <2237149.M6CGzWEffv@note> Message-ID: <8f7ecbe9d8268a1285f5a9a2bd5db9c8.NginxMailingListRussian@forum.nginx.org> Vadim A. Misbakh-Soloviov Wrote: ------------------------------------------------------- > Не говорить клиенту о поддержке частичной отдачи. > > Впрочем, за километр пахнет синдромом XY. > > Давайте вы лучше скажете в чём заключается сама задача, вместо того, > чтобы > пытаться решить то, что по вашему мнению приблизит вас к > (неправильному, как > правило) решению. > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru вообщем надо, чтобы не было 206 кода, но были кусочки на главном сервере nginx диапазон байтов принимает через аргумент ($arg_range), а на сервер отдачи передаётся с помощью заголовков proxy_set_header Accept-Ranges "bytes"; proxy_set_header Range "bytes=$arg_range"; а суть заключается в том, что нужно кэшировать аякс запросы на получение кусочков, для я так понял нужен 200 код ответа от сервера Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269693,269716#msg-269716 From chipitsine на gmail.com Wed Sep 21 08:48:03 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Wed, 21 Sep 2016 13:48:03 +0500 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <5421a990f36a3fe8caa73e6b59407bef.NginxMailingListRussian@forum.nginx.org> References: <5421a990f36a3fe8caa73e6b59407bef.NginxMailingListRussian@forum.nginx.org> Message-ID: location / { return 200; } 21 сентября 2016 г., 1:32 пользователь jtiq написал: > Илья Шипицин Wrote: > ------------------------------------------------------- > > сервер отдает 206, потому что сервер сказал Accept-Ranges, чем клиент > > воспользовался. > > > > 20 сентября 2016 г., 21:37 пользователь jtiq > > > > написал: > > > > > Здравствуйте. > > > > > > Можно ли подменить Status code от проксируемого сервера? > > > > > > Он отдаёт "206 Partial Content", а надо обычный "200 OK" > > > > > > Posted at Nginx Forum: https://forum.nginx.org/read. > > > php?21,269693,269693#msg-269693 > > > > > > _______________________________________________ > > > 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 > > ну это то понятно, а как то можно заставить nginx отдать 200 ok? > > Posted at Nginx Forum: https://forum.nginx.org/read. > php?21,269693,269706#msg-269706 > > _______________________________________________ > 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 Sep 21 11:56:23 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Wed, 21 Sep 2016 07:56:23 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: References: Message-ID: <4be0fb47b0166d9246a66c6f926292f6.NginxMailingListRussian@forum.nginx.org> Илья Шипицин Wrote: ------------------------------------------------------- > location / { > return 200; > } > > 21 сентября 2016 г., 1:32 пользователь jtiq > > написал: > > > Илья Шипицин Wrote: > > ------------------------------------------------------- > > > сервер отдает 206, потому что сервер сказал Accept-Ranges, чем > клиент > > > воспользовался. > > > > > > 20 сентября 2016 г., 21:37 пользователь jtiq > > > > > > написал: > > > > > > > Здравствуйте. > > > > > > > > Можно ли подменить Status code от проксируемого сервера? > > > > > > > > Он отдаёт "206 Partial Content", а надо обычный "200 OK" > > > > > > > > Posted at Nginx Forum: https://forum.nginx.org/read. > > > > php?21,269693,269693#msg-269693 > > > > > > > > _______________________________________________ > > > > 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 > > > > ну это то понятно, а как то можно заставить nginx отдать 200 ok? > > > > Posted at Nginx Forum: https://forum.nginx.org/read. > > php?21,269693,269706#msg-269706 > > > > _______________________________________________ > > 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 выдаёт ошибку 500 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269693,269723#msg-269723 From chipitsine на gmail.com Wed Sep 21 12:07:27 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Wed, 21 Sep 2016 17:07:27 +0500 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <4be0fb47b0166d9246a66c6f926292f6.NginxMailingListRussian@forum.nginx.org> References: <4be0fb47b0166d9246a66c6f926292f6.NginxMailingListRussian@forum.nginx.org> Message-ID: покажите конфиг полностью ? 21 сентября 2016 г., 16:56 пользователь jtiq написал: > Илья Шипицин Wrote: > ------------------------------------------------------- > > location / { > > return 200; > > } > > > > 21 сентября 2016 г., 1:32 пользователь jtiq > > > > написал: > > > > > Илья Шипицин Wrote: > > > ------------------------------------------------------- > > > > сервер отдает 206, потому что сервер сказал Accept-Ranges, чем > > клиент > > > > воспользовался. > > > > > > > > 20 сентября 2016 г., 21:37 пользователь jtiq > > > > > > > > написал: > > > > > > > > > Здравствуйте. > > > > > > > > > > Можно ли подменить Status code от проксируемого сервера? > > > > > > > > > > Он отдаёт "206 Partial Content", а надо обычный "200 OK" > > > > > > > > > > Posted at Nginx Forum: https://forum.nginx.org/read. > > > > > php?21,269693,269693#msg-269693 > > > > > > > > > > _______________________________________________ > > > > > 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 > > > > > > ну это то понятно, а как то можно заставить nginx отдать 200 ok? > > > > > > Posted at Nginx Forum: https://forum.nginx.org/read. > > > php?21,269693,269706#msg-269706 > > > > > > _______________________________________________ > > > 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 > > выдаёт ошибку 500 > > Posted at Nginx Forum: https://forum.nginx.org/read. > php?21,269693,269723#msg-269723 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From mdounin на mdounin.ru Wed Sep 21 13:14:14 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 21 Sep 2016 16:14:14 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <8f7ecbe9d8268a1285f5a9a2bd5db9c8.NginxMailingListRussian@forum.nginx.org> References: <2237149.M6CGzWEffv@note> <8f7ecbe9d8268a1285f5a9a2bd5db9c8.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160921131413.GM73038@mdounin.ru> Hello! On Wed, Sep 21, 2016 at 03:53:46AM -0400, jtiq wrote: > вообщем надо, чтобы не было 206 кода, но были кусочки > на главном сервере nginx диапазон байтов принимает через аргумент > ($arg_range), а на сервер отдачи передаётся с помощью заголовков > > proxy_set_header Accept-Ranges "bytes"; > proxy_set_header Range "bytes=$arg_range"; > > а суть заключается в том, что нужно кэшировать аякс запросы на получение > кусочков, для я так понял нужен 200 код ответа от сервера Для подобной задачи я в своё время написал модуль bytes, его можно взять где-то тут: http://mdounin.ru/hg/ngx_http_bytes_filter_module/ Позволяет получить из полного ответа заданный диапазон в виде 200-го ответа. Соответственно можно использовать на бекенде - тогда на фронтенд будут вытягиваться только нужные диапазоны. Или на фронтенде - тогда будут качаться ответы целиком, и их можно будет кешировать и уже потом нарезать на куски. -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Wed Sep 21 19:05:33 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Wed, 21 Sep 2016 15:05:33 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <20160921131413.GM73038@mdounin.ru> References: <20160921131413.GM73038@mdounin.ru> Message-ID: Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Wed, Sep 21, 2016 at 03:53:46AM -0400, jtiq wrote: > > > вообщем надо, чтобы не было 206 кода, но были кусочки > > на главном сервере nginx диапазон байтов принимает через аргумент > > ($arg_range), а на сервер отдачи передаётся с помощью заголовков > > > > proxy_set_header Accept-Ranges "bytes"; > > proxy_set_header Range "bytes=$arg_range"; > > > > а суть заключается в том, что нужно кэшировать аякс запросы на > получение > > кусочков, для я так понял нужен 200 код ответа от сервера > > Для подобной задачи я в своё время написал модуль bytes, его можно > взять где-то тут: > > http://mdounin.ru/hg/ngx_http_bytes_filter_module/ > > Позволяет получить из полного ответа заданный диапазон в виде > 200-го ответа. Соответственно можно использовать на бекенде - > тогда на фронтенд будут вытягиваться только нужные диапазоны. Или > на фронтенде - тогда будут качаться ответы целиком, и их можно > будет кешировать и уже потом нарезать на куски. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru можете скинуть пример конфига для proxy_pass? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269693,269733#msg-269733 From mdounin на mdounin.ru Wed Sep 21 20:44:23 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 21 Sep 2016 23:44:23 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: References: <20160921131413.GM73038@mdounin.ru> Message-ID: <20160921204423.GQ73038@mdounin.ru> Hello! On Wed, Sep 21, 2016 at 03:05:33PM -0400, jtiq wrote: > Maxim Dounin Wrote: > ------------------------------------------------------- > > Hello! > > > > On Wed, Sep 21, 2016 at 03:53:46AM -0400, jtiq wrote: > > > > > вообщем надо, чтобы не было 206 кода, но были кусочки > > > на главном сервере nginx диапазон байтов принимает через аргумент > > > ($arg_range), а на сервер отдачи передаётся с помощью заголовков > > > > > > proxy_set_header Accept-Ranges "bytes"; > > > proxy_set_header Range "bytes=$arg_range"; > > > > > > а суть заключается в том, что нужно кэшировать аякс запросы на > > получение > > > кусочков, для я так понял нужен 200 код ответа от сервера > > > > Для подобной задачи я в своё время написал модуль bytes, его можно > > взять где-то тут: > > > > http://mdounin.ru/hg/ngx_http_bytes_filter_module/ > > > > Позволяет получить из полного ответа заданный диапазон в виде > > 200-го ответа. Соответственно можно использовать на бекенде - > > тогда на фронтенд будут вытягиваться только нужные диапазоны. Или > > на фронтенде - тогда будут качаться ответы целиком, и их можно > > будет кешировать и уже потом нарезать на куски. > > можете скинуть пример конфига для proxy_pass? В наиболее простом варианте - как-то так: location / { bytes on; proxy_pass http://backend; } Кеш при необходимости ровно так же, как и обычно. Описание модуля и примеры использования есть в README, http://mdounin.ru/hg/ngx_http_bytes_filter_module/file/tip/README. -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Wed Sep 21 21:22:02 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Wed, 21 Sep 2016 17:22:02 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <20160921204423.GQ73038@mdounin.ru> References: <20160921204423.GQ73038@mdounin.ru> Message-ID: Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Wed, Sep 21, 2016 at 03:05:33PM -0400, jtiq wrote: > > > Maxim Dounin Wrote: > > ------------------------------------------------------- > > > Hello! > > > > > > On Wed, Sep 21, 2016 at 03:53:46AM -0400, jtiq wrote: > > > > > > > вообщем надо, чтобы не было 206 кода, но были кусочки > > > > на главном сервере nginx диапазон байтов принимает через > аргумент > > > > ($arg_range), а на сервер отдачи передаётся с помощью заголовков > > > > > > > > proxy_set_header Accept-Ranges "bytes"; > > > > proxy_set_header Range "bytes=$arg_range"; > > > > > > > > а суть заключается в том, что нужно кэшировать аякс запросы на > > > получение > > > > кусочков, для я так понял нужен 200 код ответа от сервера > > > > > > Для подобной задачи я в своё время написал модуль bytes, его можно > > > > взять где-то тут: > > > > > > http://mdounin.ru/hg/ngx_http_bytes_filter_module/ > > > > > > Позволяет получить из полного ответа заданный диапазон в виде > > > 200-го ответа. Соответственно можно использовать на бекенде - > > > тогда на фронтенд будут вытягиваться только нужные диапазоны. Или > > > > на фронтенде - тогда будут качаться ответы целиком, и их можно > > > будет кешировать и уже потом нарезать на куски. > > > > можете скинуть пример конфига для proxy_pass? > > В наиболее простом варианте - как-то так: > > location / { > bytes on; > proxy_pass http://backend; > } > > Кеш при необходимости ровно так же, как и обычно. > Описание модуля и примеры использования есть в README, > http://mdounin.ru/hg/ngx_http_bytes_filter_module/file/tip/README. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > 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,269693,269739#msg-269739 From mdounin на mdounin.ru Thu Sep 22 12:56:42 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 22 Sep 2016 15:56:42 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: References: <20160921204423.GQ73038@mdounin.ru> Message-ID: <20160922125642.GR73038@mdounin.ru> Hello! On Wed, Sep 21, 2016 at 05:22:02PM -0400, jtiq wrote: > Maxim Dounin Wrote: > ------------------------------------------------------- > > Hello! > > > > On Wed, Sep 21, 2016 at 03:05:33PM -0400, jtiq wrote: > > > > > Maxim Dounin Wrote: > > > ------------------------------------------------------- > > > > Hello! > > > > > > > > On Wed, Sep 21, 2016 at 03:53:46AM -0400, jtiq wrote: > > > > > > > > > вообщем надо, чтобы не было 206 кода, но были кусочки > > > > > на главном сервере nginx диапазон байтов принимает через > > аргумент > > > > > ($arg_range), а на сервер отдачи передаётся с помощью заголовков > > > > > > > > > > proxy_set_header Accept-Ranges "bytes"; > > > > > proxy_set_header Range "bytes=$arg_range"; > > > > > > > > > > а суть заключается в том, что нужно кэшировать аякс запросы на > > > > получение > > > > > кусочков, для я так понял нужен 200 код ответа от сервера > > > > > > > > Для подобной задачи я в своё время написал модуль bytes, его можно > > > > > > взять где-то тут: > > > > > > > > http://mdounin.ru/hg/ngx_http_bytes_filter_module/ > > > > > > > > Позволяет получить из полного ответа заданный диапазон в виде > > > > 200-го ответа. Соответственно можно использовать на бекенде - > > > > тогда на фронтенд будут вытягиваться только нужные диапазоны. Или > > > > > > на фронтенде - тогда будут качаться ответы целиком, и их можно > > > > будет кешировать и уже потом нарезать на куски. > > > > > > можете скинуть пример конфига для proxy_pass? > > > > В наиболее простом варианте - как-то так: > > > > location / { > > bytes on; > > proxy_pass http://backend; > > } > > > > Кеш при необходимости ровно так же, как и обычно. > > Описание модуля и примеры использования есть в README, > > http://mdounin.ru/hg/ngx_http_bytes_filter_module/file/tip/README. > > я кэш хочу сделать на стороне клиента, а какой параметр и как передавать в > урл? Описание модуля и примеры использования есть в README, http://mdounin.ru/hg/ngx_http_bytes_filter_module/file/tip/README. Там же описано, какой именно параметр (спойлер: bytes, но крайне рекомендую прочитать таки README). -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Thu Sep 22 18:09:44 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Thu, 22 Sep 2016 14:09:44 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <20160922125642.GR73038@mdounin.ru> References: <20160922125642.GR73038@mdounin.ru> Message-ID: Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Wed, Sep 21, 2016 at 05:22:02PM -0400, jtiq wrote: > > > Maxim Dounin Wrote: > > ------------------------------------------------------- > > > Hello! > > > > > > On Wed, Sep 21, 2016 at 03:05:33PM -0400, jtiq wrote: > > > > > > > Maxim Dounin Wrote: > > > > ------------------------------------------------------- > > > > > Hello! > > > > > > > > > > On Wed, Sep 21, 2016 at 03:53:46AM -0400, jtiq wrote: > > > > > > > > > > > вообщем надо, чтобы не было 206 кода, но были кусочки > > > > > > на главном сервере nginx диапазон байтов принимает через > > > аргумент > > > > > > ($arg_range), а на сервер отдачи передаётся с помощью > заголовков > > > > > > > > > > > > proxy_set_header Accept-Ranges "bytes"; > > > > > > proxy_set_header Range "bytes=$arg_range"; > > > > > > > > > > > > а суть заключается в том, что нужно кэшировать аякс запросы > на > > > > > получение > > > > > > кусочков, для я так понял нужен 200 код ответа от сервера > > > > > > > > > > Для подобной задачи я в своё время написал модуль bytes, его > можно > > > > > > > > взять где-то тут: > > > > > > > > > > http://mdounin.ru/hg/ngx_http_bytes_filter_module/ > > > > > > > > > > Позволяет получить из полного ответа заданный диапазон в виде > > > > > 200-го ответа. Соответственно можно использовать на бекенде - > > > > > > тогда на фронтенд будут вытягиваться только нужные диапазоны. > Или > > > > > > > > на фронтенде - тогда будут качаться ответы целиком, и их можно > > > > > > будет кешировать и уже потом нарезать на куски. > > > > > > > > можете скинуть пример конфига для proxy_pass? > > > > > > В наиболее простом варианте - как-то так: > > > > > > location / { > > > bytes on; > > > proxy_pass http://backend; > > > } > > > > > > Кеш при необходимости ровно так же, как и обычно. > > > Описание модуля и примеры использования есть в README, > > > http://mdounin.ru/hg/ngx_http_bytes_filter_module/file/tip/README. > > > > я кэш хочу сделать на стороне клиента, а какой параметр и как > передавать в > > урл? > > Описание модуля и примеры использования есть в README, > http://mdounin.ru/hg/ngx_http_bytes_filter_module/file/tip/README. > Там же описано, какой именно параметр (спойлер: bytes, но крайне > рекомендую прочитать таки README). > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru а как использовать другой параметр вместо bytes? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269693,269760#msg-269760 From nginx-forum на forum.nginx.org Thu Sep 22 18:20:25 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Thu, 22 Sep 2016 14:20:25 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <20160922125642.GR73038@mdounin.ru> References: <20160922125642.GR73038@mdounin.ru> Message-ID: <349a6315abfdff4a3d92be55c5acf7c5.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Wed, Sep 21, 2016 at 05:22:02PM -0400, jtiq wrote: > > > Maxim Dounin Wrote: > > ------------------------------------------------------- > > > Hello! > > > > > > On Wed, Sep 21, 2016 at 03:05:33PM -0400, jtiq wrote: > > > > > > > Maxim Dounin Wrote: > > > > ------------------------------------------------------- > > > > > Hello! > > > > > > > > > > On Wed, Sep 21, 2016 at 03:53:46AM -0400, jtiq wrote: > > > > > > > > > > > вообщем надо, чтобы не было 206 кода, но были кусочки > > > > > > на главном сервере nginx диапазон байтов принимает через > > > аргумент > > > > > > ($arg_range), а на сервер отдачи передаётся с помощью > заголовков > > > > > > > > > > > > proxy_set_header Accept-Ranges "bytes"; > > > > > > proxy_set_header Range "bytes=$arg_range"; > > > > > > > > > > > > а суть заключается в том, что нужно кэшировать аякс запросы > на > > > > > получение > > > > > > кусочков, для я так понял нужен 200 код ответа от сервера > > > > > > > > > > Для подобной задачи я в своё время написал модуль bytes, его > можно > > > > > > > > взять где-то тут: > > > > > > > > > > http://mdounin.ru/hg/ngx_http_bytes_filter_module/ > > > > > > > > > > Позволяет получить из полного ответа заданный диапазон в виде > > > > > 200-го ответа. Соответственно можно использовать на бекенде - > > > > > > тогда на фронтенд будут вытягиваться только нужные диапазоны. > Или > > > > > > > > на фронтенде - тогда будут качаться ответы целиком, и их можно > > > > > > будет кешировать и уже потом нарезать на куски. > > > > > > > > можете скинуть пример конфига для proxy_pass? > > > > > > В наиболее простом варианте - как-то так: > > > > > > location / { > > > bytes on; > > > proxy_pass http://backend; > > > } > > > > > > Кеш при необходимости ровно так же, как и обычно. > > > Описание модуля и примеры использования есть в README, > > > http://mdounin.ru/hg/ngx_http_bytes_filter_module/file/tip/README. > > > > я кэш хочу сделать на стороне клиента, а какой параметр и как > передавать в > > урл? > > Описание модуля и примеры использования есть в README, > http://mdounin.ru/hg/ngx_http_bytes_filter_module/file/tip/README. > Там же описано, какой именно параметр (спойлер: bytes, но крайне > рекомендую прочитать таки README). > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > 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,269693,269761#msg-269761 From mdounin на mdounin.ru Thu Sep 22 19:55:54 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Thu, 22 Sep 2016 22:55:54 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: References: <20160922125642.GR73038@mdounin.ru> Message-ID: <20160922195553.GW73038@mdounin.ru> Hello! On Thu, Sep 22, 2016 at 02:09:44PM -0400, jtiq wrote: [...] > > Описание модуля и примеры использования есть в README, > > http://mdounin.ru/hg/ngx_http_bytes_filter_module/file/tip/README. > > Там же описано, какой именно параметр (спойлер: bytes, но крайне > > рекомендую прочитать таки README). > > а как использовать другой параметр вместо bytes? Я повторю рекомендацию сходить по ссылке и прочитать-таки README, там есть пример. -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Thu Sep 22 19:58:36 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Thu, 22 Sep 2016 15:58:36 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <20160922195553.GW73038@mdounin.ru> References: <20160922195553.GW73038@mdounin.ru> Message-ID: а где у вас хранится длина всего видео в байтах? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269693,269766#msg-269766 From nginx-ru на sadok.spb.ru Thu Sep 22 20:05:41 2016 From: nginx-ru на sadok.spb.ru (Dmitry Ivanov) Date: Thu, 22 Sep 2016 23:05:41 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <20160922195553.GW73038@mdounin.ru> References: <20160922125642.GR73038@mdounin.ru> <20160922195553.GW73038@mdounin.ru> Message-ID: <1562421646.20160922230541@sadok.spb.ru> Здравствуйте, Maxim. Вы писали 22 сентября 2016 г., 22:55:54: > Я повторю рекомендацию сходить по ссылке и прочитать-таки README, > там есть пример. Стальные нервы, Максим )) -- С уважением, Dmitry nginx-ru на sadok.spb.ru From mdounin на mdounin.ru Thu Sep 22 22:49:57 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 23 Sep 2016 01:49:57 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <2bd5b744b79859bc853e0b83300e0d5c.NginxMailingListRussian@forum.nginx.org> References: <20160920130635.GH73038@mdounin.ru> <2bd5b744b79859bc853e0b83300e0d5c.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160922224957.GZ73038@mdounin.ru> Hello! On Wed, Sep 21, 2016 at 03:41:35AM -0400, Mikanoshi wrote: > Maxim Dounin Wrote: > ------------------------------------------------------- > > Всмысле - как и ранее, после ручного массажирования зависшего > > процесса? > > > > Попробуйте ещё выключить reset_timedout_connections, возможно > > умудрились сломать SO_LINGER. Судя по стеку и каналу ожидания - > > ждёт оно как раз в части обработки SO_LINGER, тут: > > > > http://fxr.watson.org/fxr/source/kern/uipc_socket.c?v=FREEBSD11#L871 > > Да, оживает от трейса. > > Ещё часов 9 для уверенности должно пройти, но похоже отключение > reset_timedout_connection помогло, пока ни одного зависшего процесса, вместо > этого в логе ошибки: > > 2016/09/21 00:48:27 [info] 60348#0: close() socket 44 failed (54: Connection > reset by peer) > 2016/09/21 01:02:57 [info] 60347#0: close() socket 54 failed (54: Connection > reset by peer) > 2016/09/21 03:51:18 [info] 60347#0: close() socket 48 failed (54: Connection > reset by peer) > 2016/09/21 05:13:45 [info] 60347#0: close() socket 54 failed (54: Connection > reset by peer) > 2016/09/21 07:29:33 [info] 60346#0: close() socket 47 failed (54: Connection > reset by peer) > 2016/09/21 10:13:40 [info] 60346#0: close() socket 46 failed (54: Connection > reset by peer) Ok, как уже было сказано ранее, это всё выглядит как ошибка во FreeBSD. Будет здорово, если вы напише о проблеме во FreeBSD. В частности, Глеб Смирнов готов заняться этим вопросом, ему можно написать по адресу Gleb Smirnoff . -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Fri Sep 23 04:16:48 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Fri, 23 Sep 2016 00:16:48 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <20160922125642.GR73038@mdounin.ru> References: <20160922125642.GR73038@mdounin.ru> Message-ID: а где у вас хранится длина всего видео в байтах? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269693,269781#msg-269781 From dmitriy на lyalyuev.info Fri Sep 23 04:39:53 2016 From: dmitriy на lyalyuev.info (Dmitriy Lyalyuev) Date: Fri, 23 Sep 2016 07:39:53 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: References: <20160922125642.GR73038@mdounin.ru> Message-ID: <76c3255e-3757-3da6-6ad4-833c69548cd8@lyalyuev.info> Доброго времени суток, господа. Только мне кажется, что человек неадекватен или тупо издевается? 23.09.2016 07:16, jtiq пишет: > а где у вас хранится длина всего видео в байтах? 22.09.2016 22:58, jtiq пишет: > а где у вас хранится длина всего видео в байтах? 22.09.2016 21:20, jtiq пишет: > а где у вас хранится длина всего видео в байтах? From nginx-forum на forum.nginx.org Fri Sep 23 13:57:56 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Fri, 23 Sep 2016 09:57:56 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <76c3255e-3757-3da6-6ad4-833c69548cd8@lyalyuev.info> References: <76c3255e-3757-3da6-6ad4-833c69548cd8@lyalyuev.info> Message-ID: Dmitriy Lyalyuev Wrote: ------------------------------------------------------- > Доброго времени суток, господа. > > Только мне кажется, что человек неадекватен или тупо издевается? > > > 23.09.2016 07:16, jtiq пишет: > > а где у вас хранится длина всего видео в байтах? > > 22.09.2016 22:58, jtiq пишет: > > а где у вас хранится длина всего видео в байтах? > > 22.09.2016 21:20, jtiq пишет: > > а где у вас хранится длина всего видео в байтах? > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru никто не издевается, а просто из деревни в этих модулях, тем более в README ничего нет, кроме того как включить в конфиге модуль и какой параметр передавать. была бы нормальная документация, всё было бы норм, модуль частично хорош, но нет длины файла в байтах целиком, при Range он передаётся в заголовке через "/". Приходится изза этого юзать костыли, либо вовсе отказаться от данного модуля. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269693,269794#msg-269794 From nginx на mva.name Fri Sep 23 15:44:10 2016 From: nginx на mva.name (Vadim A. Misbakh-Soloviov) Date: Fri, 23 Sep 2016 22:44:10 +0700 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: References: <76c3255e-3757-3da6-6ad4-833c69548cd8@lyalyuev.info> Message-ID: <7517420.n8CBWfIcsO@note> > была бы нормальная документация, всё было бы норм, модуль частично хорош, но > нет длины файла в байтах целиком, при Range он передаётся в заголовке через > "/". Приходится изза этого юзать костыли, либо вовсе отказаться от данного > модуля. Ну или просто можно не заниматься перанальной тонзилэктомией :) From nginx-forum на forum.nginx.org Fri Sep 23 15:50:08 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Fri, 23 Sep 2016 11:50:08 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <7517420.n8CBWfIcsO@note> References: <7517420.n8CBWfIcsO@note> Message-ID: <6015c350a182ace5772b7a0871ae9420.NginxMailingListRussian@forum.nginx.org> Vadim A. Misbakh-Soloviov Wrote: ------------------------------------------------------- > > была бы нормальная документация, всё было бы норм, модуль частично > хорош, но > > нет длины файла в байтах целиком, при Range он передаётся в > заголовке через > > "/". Приходится изза этого юзать костыли, либо вовсе отказаться от > данного > > модуля. > > Ну или просто можно не заниматься перанальной тонзилэктомией :) > _______________________________________________ > 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,269693,269796#msg-269796 From mdounin на mdounin.ru Fri Sep 23 16:35:13 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 23 Sep 2016 19:35:13 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: References: <76c3255e-3757-3da6-6ad4-833c69548cd8@lyalyuev.info> Message-ID: <20160923163513.GC73038@mdounin.ru> Hello! On Fri, Sep 23, 2016 at 09:57:56AM -0400, jtiq wrote: [...] > никто не издевается, а просто из деревни в этих модулях, тем более в README > ничего нет, кроме того как включить в конфиге модуль и какой параметр > передавать. Это ровно то, что нужно знать про сам модуль. Больше он ничего и не умеет: принимает параметр со спецификацией нужных диапазонов в соответствии с RFC2616, и возвращает запрошенное в виде 200-го ответа. > была бы нормальная документация, всё было бы норм, модуль частично хорош, но > нет длины файла в байтах целиком, при Range он передаётся в заголовке через > "/". Приходится изза этого юзать костыли, либо вовсе отказаться от данного > модуля. В range-_запросах_ длина ответа не передаётся. Длина через "/" передаётся в заголовке Content-Range в ответах на range-запросы. Т.к. модуль ответов на range-запросы не шлёт - он, соответственно, заголовка Content-Range не отправляет, и не должен. Он шлёт обычные 200-е ответы, и длины этих ответов отправляются так, как это положено для 200-х ответов, в заголовках Content-Length. Если вам зачем-то ещё нужна полная длина исходного ответа - протаскивайте её отдельно. В частности, если исходный ответ получен с бекенда, это можно сделать с помощью стандартной директивы add_header: add_header X-Original-Content-Length $upstream_http_content_length; Но и я бы предложил в очередной раз задуматься, зачем вы всем этим занимаетесь. -- Maxim Dounin http://nginx.org/ From nginx-forum на forum.nginx.org Fri Sep 23 16:48:39 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Fri, 23 Sep 2016 12:48:39 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <20160923163513.GC73038@mdounin.ru> References: <20160923163513.GC73038@mdounin.ru> Message-ID: <51026f89a526261b0386d75f6c5aa773.NginxMailingListRussian@forum.nginx.org> Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Fri, Sep 23, 2016 at 09:57:56AM -0400, jtiq wrote: > > [...] > > > никто не издевается, а просто из деревни в этих модулях, тем более в > README > > ничего нет, кроме того как включить в конфиге модуль и какой > параметр > > передавать. > > Это ровно то, что нужно знать про сам модуль. Больше он ничего и > не умеет: принимает параметр со спецификацией нужных диапазонов в > соответствии с RFC2616, и возвращает запрошенное в виде 200-го ответа. > > > была бы нормальная документация, всё было бы норм, модуль частично > хорош, но > > нет длины файла в байтах целиком, при Range он передаётся в > заголовке через > > "/". Приходится изза этого юзать костыли, либо вовсе отказаться от > данного > > модуля. > > В range-_запросах_ длина ответа не передаётся. Длина через "/" > передаётся в заголовке Content-Range в ответах на range-запросы. > Т.к. модуль ответов на range-запросы не шлёт - он, соответственно, > заголовка Content-Range не отправляет, и не должен. Он шлёт > обычные 200-е ответы, и длины этих ответов отправляются так, как это > положено для 200-х ответов, в заголовках Content-Length. > > Если вам зачем-то ещё нужна полная длина исходного ответа - > протаскивайте её отдельно. В частности, если исходный ответ > получен с бекенда, это можно сделать с помощью стандартной > директивы add_header: > > add_header X-Original-Content-Length > $upstream_http_content_length; > > Но и я бы предложил в очередной раз задуматься, зачем вы всем этим > занимаетесь. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru полная длина НЕ исходного ответа, а файла целиком а нужен он для видео плеера, который работает в текущий момент на заголовках, но не устраивает что запросы с кодом 206 не кэшируются это нужно для кэша 200х ответов, передавая диапазон в УРЛ можно ли реализовать отдачу хотя бы оригинальных заголовков? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269693,269800#msg-269800 From mdounin на mdounin.ru Fri Sep 23 18:02:13 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 23 Sep 2016 21:02:13 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <51026f89a526261b0386d75f6c5aa773.NginxMailingListRussian@forum.nginx.org> References: <20160923163513.GC73038@mdounin.ru> <51026f89a526261b0386d75f6c5aa773.NginxMailingListRussian@forum.nginx.org> Message-ID: <20160923180213.GD73038@mdounin.ru> Hello! On Fri, Sep 23, 2016 at 12:48:39PM -0400, jtiq wrote: > > > никто не издевается, а просто из деревни в этих модулях, тем более в > > README > > > ничего нет, кроме того как включить в конфиге модуль и какой > > параметр > > > передавать. > > > > Это ровно то, что нужно знать про сам модуль. Больше он ничего и > > не умеет: принимает параметр со спецификацией нужных диапазонов в > > соответствии с RFC2616, и возвращает запрошенное в виде 200-го ответа. > > > > > была бы нормальная документация, всё было бы норм, модуль частично > > хорош, но > > > нет длины файла в байтах целиком, при Range он передаётся в > > заголовке через > > > "/". Приходится изза этого юзать костыли, либо вовсе отказаться от > > данного > > > модуля. > > > > В range-_запросах_ длина ответа не передаётся. Длина через "/" > > передаётся в заголовке Content-Range в ответах на range-запросы. > > Т.к. модуль ответов на range-запросы не шлёт - он, соответственно, > > заголовка Content-Range не отправляет, и не должен. Он шлёт > > обычные 200-е ответы, и длины этих ответов отправляются так, как это > > положено для 200-х ответов, в заголовках Content-Length. > > > > Если вам зачем-то ещё нужна полная длина исходного ответа - > > протаскивайте её отдельно. В частности, если исходный ответ > > получен с бекенда, это можно сделать с помощью стандартной > > директивы add_header: > > > > add_header X-Original-Content-Length > > $upstream_http_content_length; > > > > Но и я бы предложил в очередной раз задуматься, зачем вы всем этим > > занимаетесь. > > полная длина НЕ исходного ответа, а файла целиком Для bytes-фильтра файл целиком и есть исходный ответ. > а нужен он для видео плеера, который работает в текущий момент на > заголовках, но не устраивает что запросы с кодом 206 не кэшируются > это нужно для кэша 200х ответов, передавая диапазон в УРЛ Т.е. у вас всё работает с нормальными range-запросами, но что-то где-то не кешируется, правильно? Где именно? Если не кешируется в nginx'е, то проблема решается с помощью правильной конфигурации кеша. Если на клиенте - то это вообще странно, т.к. исходя из задачи клиент - ваш собственный. > можно ли реализовать отдачу хотя бы оригинальных заголовков? Нельзя. Bytes-фильтр меняет ответ, и соответственно должен заменить служебные заголовки, в частности - должен заменить Content-Length ответа на новый. Как получить длину исходного ответа (она же - длина файла целиком) - я написал выше. -- Maxim Dounin http://nginx.org/ From ngnx8810773a83 на avksrv.org Fri Sep 23 22:18:39 2016 From: ngnx8810773a83 на avksrv.org (Alexey Kuznetsov) Date: Sat, 24 Sep 2016 01:18:39 +0300 Subject: =?UTF-8?B?UmU6IFJlOiBOZ2lueCDQvdC1INC+0YLQstC10YfQsNC10YIg0L3QsCDQt9Cw0L8=?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: <34daeed7f8d699b6b52c7e5ab64e5b83.NginxMailingListRussian@forum.nginx.org> References: <34daeed7f8d699b6b52c7e5ab64e5b83.NginxMailingListRussian@forum.nginx.org> Message-ID: Добрый день! Фиксируем подобную же проблему. FreeBSD 10.3 STABLE. В версии от конца мая все работало, в версии собранной в конце августа уже нет, пробовал пересобрать вчера (обновив из svn), результат не меняется.. Бектрейс такой же. Помогает или откат кернела на старую версию (достаточно самого ядра и модулей) ИЛИ выключение "accf_http" (и модуль не загружен и в конфиге соотв выключено, отключать только в конфиге не пробовал). Без accf_http работает на любом из 3-х ядер на котором тестировалось. под небольшой нагрузкой не проявляется и с accf_http (есть где это работает с конца августа, но там от силы 1000 запросов в сутки). accf_datа не используется, соотв. и не загружен. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=212920 нгинс из ports с дефолными настройками. Кернел - генерик. /Алексей From nginx-forum на forum.nginx.org Sat Sep 24 08:41:14 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Sat, 24 Sep 2016 04:41:14 -0400 Subject: =?UTF-8?B?UmU6IFJlOiBOZ2lueCDQvdC1INC+0YLQstC10YfQsNC10YIg0L3QsCDQt9Cw0L8=?= =?UTF-8?B?0YDQvtGB0Ys=?= In-Reply-To: References: Message-ID: Alexey Kuznetsov Wrote: ------------------------------------------------------- > Помогает или откат кернела на старую версию (достаточно самого > ядра и модулей) ИЛИ выключение "accf_http" (и модуль не загружен и в > конфиге соотв выключено, отключать только в конфиге не пробовал). Опция reset_timedout_connection включена? Если включить accf_http и отключить её, то будет как у меня? https://forum.nginx.org/read.php?21,269501,269715#msg-269715 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269807#msg-269807 From nginx-forum на forum.nginx.org Sun Sep 25 12:34:14 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Sun, 25 Sep 2016 08:34:14 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <20160923180213.GD73038@mdounin.ru> References: <20160923180213.GD73038@mdounin.ru> Message-ID: <2fa73bd5d881d07d91cdcec5f4fd56db.NginxMailingListRussian@forum.nginx.org> [...] в общем, сделал кэш запросов без вашего модуля, спасибо за ответы Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269693,269825#msg-269825 From nginx-forum на forum.nginx.org Sun Sep 25 19:07:16 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Sun, 25 Sep 2016 15:07:16 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <20160923180213.GD73038@mdounin.ru> References: <20160923180213.GD73038@mdounin.ru> Message-ID: <34918690d160d257df389567b26404b5.NginxMailingListRussian@forum.nginx.org> с вашим модулем часто в xhr запросах идёт статус "pending", а если просто через заголовки отправлять Range, то норм в чём может быть проблема? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269693,269830#msg-269830 From sytar.alex на gmail.com Sun Sep 25 19:21:32 2016 From: sytar.alex на gmail.com (Aleksandr Sytar) Date: Sun, 25 Sep 2016 22:21:32 +0300 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <34918690d160d257df389567b26404b5.NginxMailingListRussian@forum.nginx.org> References: <20160923180213.GD73038@mdounin.ru> <34918690d160d257df389567b26404b5.NginxMailingListRussian@forum.nginx.org> Message-ID: 25 сентября 2016 г., 22:07 пользователь jtiq написал: > с вашим модулем часто в xhr запросах идёт статус "pending" Сервер еще не прислал ответ на запрос ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Sun Sep 25 19:32:31 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Sun, 25 Sep 2016 15:32:31 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: References: Message-ID: Aleksandr Sytar Wrote: ------------------------------------------------------- > 25 сентября 2016 г., 22:07 пользователь jtiq > > написал: > > > с вашим модулем часто в xhr запросах идёт статус "pending" > > > Сервер еще не прислал ответ на запрос > _______________________________________________ > 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,269693,269832#msg-269832 From nginx на mva.name Sun Sep 25 19:56:52 2016 From: nginx на mva.name (Vadim A. Misbakh-Soloviov) Date: Mon, 26 Sep 2016 02:56:52 +0700 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: References: Message-ID: <2713710.QQ4fxOvMgv@note> > Ну это то я понял, что идёт ожидание. А причина то какая может быть частых > ожиданий? Угадайте с трёх попыток. Довольно очевидно, что причина - бекенд. From nginx-forum на forum.nginx.org Mon Sep 26 05:29:20 2016 From: nginx-forum на forum.nginx.org (jtiq) Date: Mon, 26 Sep 2016 01:29:20 -0400 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <2713710.QQ4fxOvMgv@note> References: <2713710.QQ4fxOvMgv@note> Message-ID: <4e3bd526f89e6ec7f59656a15d120871.NginxMailingListRussian@forum.nginx.org> Vadim A. Misbakh-Soloviov Wrote: ------------------------------------------------------- > > Ну это то я понял, что идёт ожидание. А причина то какая может быть > частых > > ожиданий? > > Угадайте с трёх попыток. > > Довольно очевидно, что причина - бекенд. > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ну а почему с с заголовком Range и без этого модуля нет такой проблемы? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269693,269841#msg-269841 From chipitsine на gmail.com Mon Sep 26 05:42:07 2016 From: chipitsine на gmail.com (=?UTF-8?B?0JjQu9GM0Y8g0KjQuNC/0LjRhtC40L0=?=) Date: Mon, 26 Sep 2016 10:42:07 +0500 Subject: =?UTF-8?B?UmU6INCf0L7QtNC80LXQvdC40YLRjCBTdGF0dXMgY29kZQ==?= In-Reply-To: <4e3bd526f89e6ec7f59656a15d120871.NginxMailingListRussian@forum.nginx.org> References: <2713710.QQ4fxOvMgv@note> <4e3bd526f89e6ec7f59656a15d120871.NginxMailingListRussian@forum.nginx.org> Message-ID: попробуйте скомпилировать с отладкой, подробно написано тут http://nginx.org/ru/docs/debugging_log.html на основании лога либо вы сами поймете, либо пришлите его в рассылку, подскажут 26 сентября 2016 г., 10:29 пользователь jtiq написал: > Vadim A. Misbakh-Soloviov Wrote: > ------------------------------------------------------- > > > Ну это то я понял, что идёт ожидание. А причина то какая может быть > > частых > > > ожиданий? > > > > Угадайте с трёх попыток. > > > > Довольно очевидно, что причина - бекенд. > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > ну а почему с с заголовком Range и без этого модуля нет такой проблемы? > > Posted at Nginx Forum: https://forum.nginx.org/read. > php?21,269693,269841#msg-269841 > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From nginx-forum на forum.nginx.org Mon Sep 26 14:15:09 2016 From: nginx-forum на forum.nginx.org (Zaynullin) Date: Mon, 26 Sep 2016 10:15:09 -0400 Subject: =?UTF-8?B?UmU6INCh0LrQsNGH0LrQvtC+0LHRgNCw0LfQvdGL0Lkg0YDQvtGB0YIg0L/QvtGC?= =?UTF-8?B?0YDQtdCx0LvRj9C10LzQvtC5INC/0LDQvNGP0YLQuCDQv9GA0Lgg0LLQutC7?= =?UTF-8?B?0Y7Rh9C10L3QuNC4IHNsaWNl?= In-Reply-To: <20160802110510.GJ57459@mdounin.ru> References: <20160802110510.GJ57459@mdounin.ru> Message-ID: <56f7056e82793d82e6911fd1dde96149.NginxMailingListRussian@forum.nginx.org> Здравствуйте. Обнаружили избыточное потребление памяти при включенном модуле lua-nginx-module и кешировании range запросов. Подробности можно найти по ссылке: https://github.com/openresty/lua-nginx-module/issues/872 Maxim Dounin Wrote: ------------------------------------------------------- > Hello! > > On Tue, Aug 02, 2016 at 04:43:44AM -0400, Zaynullin wrote: > > > Тогда скажите, пожалуйста, на что будет использоваться память, если > все > > запросы и соответственно подзапросы завершатся? > > Если все запросы завершаться - то память использоваться не будет > (и будет освобождена), однако с точки зрения ядра может оставаться > выделенной nginx'у. Зависит от поведения и настроек системного > аллокатора, а равно от размеров используемых буферов. > > Одна из основных проблем при использовании slice-фильтра состоит в > том, что nginx не умеет повторно использовать буфера из > подзапросов, и для каждого подзапроса выделяются свои > proxy_buffers и output_buffers. Соответственно запрос файла в 1 > гигабайт при использовании слайсов в 1 мегабайт размером требует > 1024 подзапросов, каждый - со своими буферами. В предположении > буферов по умолчанию это > > (2 * 32k + 8 * 4k) * 1024 == 96m > > Т.е. даже с минимальными буферами по умолчанию на один запрос > потребуется почти 100 мегабайт памяти. Именно поэтому > рекомендуется делать слайсы достаточно большого размера. > > Кроме того, стоит подумать про использование sendfile, это > позволит не использовать output_buffers и существенно сэкономит > память при отдаче ответов из кеша. > > -- > Maxim Dounin > http://nginx.org/ > > _______________________________________________ > 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,268615,269852#msg-269852 From ngnx8810773a83 на avksrv.org Tue Sep 27 20:48:22 2016 From: ngnx8810773a83 на avksrv.org (Alexey Kuznetsov) Date: Tue, 27 Sep 2016 23:48:22 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: References: Message-ID: 24.09.2016 11:41, Mikanoshi пишет: > Alexey Kuznetsov Wrote: > ------------------------------------------------------- >> Помогает или откат кернела на старую версию (достаточно самого >> ядра и модулей) ИЛИ выключение "accf_http" (и модуль не загружен и в >> конфиге соотв выключено, отключать только в конфиге не пробовал). > Опция reset_timedout_connection включена? Если включить accf_http и > отключить её, то будет как у меня? > https://forum.nginx.org/read.php?21,269501,269715#msg-269715 > Добрый день! Да reset_timedout_connection включена, да ее выключение проблему снимает. Я локализовал ревизию в которой "сломалось", для 10-STABLE это r302995. Судя по всему на 11 это r261242 (но 11 у меня нет, соотв я не пробовал). Я надеюсь Julien и Глеб смогут найти, что там так повлияло в тех 4-х измененных строках для 10, надеюсь оно будет починено и для 11 ветки. /Алексей From nginx-forum на forum.nginx.org Wed Sep 28 10:20:01 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Wed, 28 Sep 2016 06:20:01 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: References: Message-ID: <4246ddb2f6c1ef494503ef95d5abde3e.NginxMailingListRussian@forum.nginx.org> Проблему зависания-то снимает, но похоже посетителю сайта всё равно при запросе выдаётся ошибка соединения с сервером, надо несколько раз обновить страницу, чтобы она заработала. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269890#msg-269890 From nginx-forum на forum.nginx.org Wed Sep 28 12:16:59 2016 From: nginx-forum на forum.nginx.org (_ardi) Date: Wed, 28 Sep 2016 08:16:59 -0400 Subject: =?UTF-8?B?0JjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LUgTmdpbngg0LrQsNC6INC/0YDQvtC6?= =?UTF-8?B?0YHQuCDQtNC70Y8gSUlTLiDQndCwINC30LDQutCw0YfQuNCy0LDRjtGC0YE=?= =?UTF-8?B?0Y8g0YTQsNC50LvRiyDQvdCwINGB0LDQudGCINCx0L7Qu9GM0YjQtSAxINC8?= =?UTF-8?B?0LE=?= Message-ID: <8cb1e4d72a9f9e77b7153304abe40275.NginxMailingListRussian@forum.nginx.org> Подскажите в чем может быть ошибка? client_max_body_size 500m; - выставляю, но нет эффекта . пробовал в сам http выносить не помогло. http { proxy_buffer_size 128k; proxy_buffers 32 128k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; sendfile on; tcp_nopush on; keepalive_timeout 65; server { listen 443 default; server_name domain.com; ssl on; ssl_certificate ../ssl/domain.cer; ssl_certificate_key ../ssl/domain.key; ssl_session_timeout 10m; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass https://192.168.1.1:443; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_redirect https://192.168.1.1 https://domain.com; proxy_buffering on; proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; client_max_body_size 500m; } } } Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269899,269899#msg-269899 From vbart на nginx.com Wed Sep 28 13:09:41 2016 From: vbart на nginx.com (=?utf-8?B?0JLQsNC70LXQvdGC0LjQvSDQkdCw0YDRgtC10L3QtdCy?=) Date: Wed, 28 Sep 2016 16:09:41 +0300 Subject: =?UTF-8?B?UmU6INCY0YHQv9C+0LvRjNC30L7QstCw0L3QuNC1IE5naW54INC60LDQuiDQv9GA?= =?UTF-8?B?0L7QutGB0Lgg0LTQu9GPIElJUy4g0J3QsCDQt9Cw0LrQsNGH0LjQstCw0Y4=?= =?UTF-8?B?0YLRgdGPINGE0LDQudC70Ysg0L3QsCDRgdCw0LnRgiDQsdC+0LvRjNGI0LUg?= =?UTF-8?B?MSDQvNCx?= In-Reply-To: <8cb1e4d72a9f9e77b7153304abe40275.NginxMailingListRussian@forum.nginx.org> References: <8cb1e4d72a9f9e77b7153304abe40275.NginxMailingListRussian@forum.nginx.org> Message-ID: <1800011.9SFlWpI440@vbart-workstation> On Wednesday 28 September 2016 08:16:59 _ardi wrote: > Подскажите в чем может быть ошибка? > client_max_body_size 500m; - выставляю, но нет эффекта . > пробовал в сам http выносить не помогло. > [..] Какой эффект ожидался и как было установлено его отсутствие? -- Валентин Бартенев From alex.hha на gmail.com Wed Sep 28 13:15:13 2016 From: alex.hha на gmail.com (Alex Domoradov) Date: Wed, 28 Sep 2016 16:15:13 +0300 Subject: =?UTF-8?B?UmU6INCY0YHQv9C+0LvRjNC30L7QstCw0L3QuNC1IE5naW54INC60LDQuiDQv9GA?= =?UTF-8?B?0L7QutGB0Lgg0LTQu9GPIElJUy4g0J3QsCDQt9Cw0LrQsNGH0LjQstCw0Y4=?= =?UTF-8?B?0YLRgdGPINGE0LDQudC70Ysg0L3QsCDRgdCw0LnRgiDQsdC+0LvRjNGI0LUg?= =?UTF-8?B?MSDQvNCx?= In-Reply-To: <1800011.9SFlWpI440@vbart-workstation> References: <8cb1e4d72a9f9e77b7153304abe40275.NginxMailingListRussian@forum.nginx.org> <1800011.9SFlWpI440@vbart-workstation> Message-ID: А если напрямую через iis, то дает закачивать файлы больше 1 Мб? И что собственно крутится на IIS - php-cgi, asp.net? 2016-09-28 16:09 GMT+03:00 Валентин Бартенев : > On Wednesday 28 September 2016 08:16:59 _ardi wrote: > > Подскажите в чем может быть ошибка? > > client_max_body_size 500m; - выставляю, но нет эффекта . > > пробовал в сам http выносить не помогло. > > > [..] > > Какой эффект ожидался и как было установлено его отсутствие? > > -- > Валентин Бартенев > _______________________________________________ > 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 Sep 28 13:32:36 2016 From: nginx-forum на forum.nginx.org (rba) Date: Wed, 28 Sep 2016 09:32:36 -0400 Subject: =?UTF-8?Q?Upstream_force_to_close+client_keep_alive_=28API_=D0=A1=D0=B8=29?= Message-ID: Здравствуйте, помогите разобраться как корректно закрыть соединения с бэкендом в апстриме оставив живое соединения с клиентом(keep alive). Если делаю просто что-то типа ngx_http_finalize_request(r, NGX_HTTP_CREATED) то соединение с клиентом остается открыто, но - не обрабатывает новые запросы, - не вызывается upstream->finalize_request, - спустя некоторое время начинает дёргать upstream read/write heandler. Если еще добавить ngx_http_finalize_request(r, NGX_OK) - с клиентом разрывается, хотя я его не освобождал - происходит вызов upstream->finalize_request При ngx_free_connection на соединения апстрима вообще ад начинается... Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269904,269904#msg-269904 From mdounin на mdounin.ru Wed Sep 28 14:14:56 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Wed, 28 Sep 2016 17:14:56 +0300 Subject: =?UTF-8?Q?Re=3A_Upstream_force_to_close+client_keep_alive_=28API_=D0=A1?= =?UTF-8?Q?=D0=B8=29?= In-Reply-To: References: Message-ID: <20160928141456.GM73038@mdounin.ru> Hello! On Wed, Sep 28, 2016 at 09:32:36AM -0400, rba wrote: > Здравствуйте, помогите разобраться как корректно закрыть соединения с > бэкендом в апстриме оставив живое соединения с клиентом(keep alive). > > Если делаю просто что-то типа ngx_http_finalize_request(r, NGX_HTTP_CREATED) > то соединение с клиентом остается открыто, но > - не обрабатывает новые запросы, > - не вызывается upstream->finalize_request, > - спустя некоторое время начинает дёргать upstream read/write heandler. > > Если еще добавить ngx_http_finalize_request(r, NGX_OK) > - с клиентом разрывается, хотя я его не освобождал > - происходит вызов upstream->finalize_request > > При ngx_free_connection на соединения апстрима вообще ад начинается... Если вы пишете модуль работы с upstream-серверами для своего протокола, то вы не должны звать ни ngx_http_finalize_request(), ни тем более ngx_free_connection() сами. Ваша задача сводится к тому, чтобы правильно сформировать запрос, и распарсить ответ. Посмотрите на src/http/modules/ngx_http_memcached_module.c, там достаточно простой пример реализации модуля работы с конкретным протоколом. -- Maxim Dounin http://nginx.org/ From ngnx8810773a83 на avksrv.org Wed Sep 28 21:18:08 2016 From: ngnx8810773a83 на avksrv.org (Alexey Kuznetsov) Date: Thu, 29 Sep 2016 00:18:08 +0300 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <4246ddb2f6c1ef494503ef95d5abde3e.NginxMailingListRussian@forum.nginx.org> References: <4246ddb2f6c1ef494503ef95d5abde3e.NginxMailingListRussian@forum.nginx.org> Message-ID: <353cb8cf-aa4a-d1a1-608e-1f1293a71bab@avksrv.org> На трекере freebsd опубликовали патч. Посмотрите у себя, если есть возможность. Патч на 10=ку, возможно надо будет доработать напильником по месту для 11-й. Там в общем if добавляется. у меня 11-х нет и собирать стенд еще и на 11-ю ветку сейчас совсем нет возможности. у меня работает с патчем. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=212920 /Алексей From nginx-forum на forum.nginx.org Wed Sep 28 21:34:07 2016 From: nginx-forum на forum.nginx.org (Mikanoshi) Date: Wed, 28 Sep 2016 17:34:07 -0400 Subject: =?UTF-8?B?UmU6IE5naW54INC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L4=?= =?UTF-8?B?0YHRiw==?= In-Reply-To: <353cb8cf-aa4a-d1a1-608e-1f1293a71bab@avksrv.org> References: <353cb8cf-aa4a-d1a1-608e-1f1293a71bab@avksrv.org> Message-ID: <736ae1af91e09678ccc063158b350055.NginxMailingListRussian@forum.nginx.org> Да знаю я) но у меня даже /usr/src пустая. Может вообще ту строку удалить можно, подожду что они там решат. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269501,269927#msg-269927 From nginx-forum на forum.nginx.org Thu Sep 29 09:40:27 2016 From: nginx-forum на forum.nginx.org (_ardi) Date: Thu, 29 Sep 2016 05:40:27 -0400 Subject: =?UTF-8?B?UmU6INCY0YHQv9C+0LvRjNC30L7QstCw0L3QuNC1IE5naW54INC60LDQuiDQv9GA?= =?UTF-8?B?0L7QutGB0Lgg0LTQu9GPIElJUy4g0J3QsCDQt9Cw0LrQsNGH0LjQstCw0Y4=?= =?UTF-8?B?0YLRgdGPINGE0LDQudC70Ysg0L3QsCDRgdCw0LnRgiDQsdC+0LvRjNGI0LUg?= =?UTF-8?B?MSDQvNCx?= In-Reply-To: References: Message-ID: <69933495a43775c64cd24803c569015c.NginxMailingListRussian@forum.nginx.org> если напрямую, то все ок, крутится asp.net Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269899,269943#msg-269943 From nginx-forum на forum.nginx.org Thu Sep 29 09:45:55 2016 From: nginx-forum на forum.nginx.org (_ardi) Date: Thu, 29 Sep 2016 05:45:55 -0400 Subject: =?UTF-8?B?UmU6INCY0YHQv9C+0LvRjNC30L7QstCw0L3QuNC1IE5naW54INC60LDQuiDQv9GA?= =?UTF-8?B?0L7QutGB0Lgg0LTQu9GPIElJUy4g0J3QsCDQt9Cw0LrQsNGH0LjQstCw0Y4=?= =?UTF-8?B?0YLRgdGPINGE0LDQudC70Ysg0L3QsCDRgdCw0LnRgiDQsdC+0LvRjNGI0LUg?= =?UTF-8?B?MSDQvNCx?= In-Reply-To: <1800011.9SFlWpI440@vbart-workstation> References: <1800011.9SFlWpI440@vbart-workstation> Message-ID: <30343f8fa6e246907050b9d905868343.NginxMailingListRussian@forum.nginx.org> По умолчанию client_max_body_size 1m, поэтому увеличил, но все равно не дает больше 1 мб грузить на сервер Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269899,269945#msg-269945 From pavel.odintsov на gmail.com Thu Sep 29 12:34:35 2016 From: pavel.odintsov на gmail.com (Pavel Odintsov) Date: Thu, 29 Sep 2016 15:34:35 +0300 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9C+INC80L7QtNGD0LvRjiBzdHJlYW0gLSDRhdC+?= =?UTF-8?B?0YfRgyDQv9GA0L7QutGB0LjRgNC+0LLQsNGC0YwgVENQINCyIFVEUA==?= In-Reply-To: References: <20160706140554.GQ71640@Romans-MacBook-Air.local> <827711467822407@web2j.yandex.ru> Message-ID: Добрый день! Нет ли новостей на этот счет? Все же хочется транслировать tcp udp запросы изве в бэкенд, который умеет только udp (dns сервис). On Wednesday, 6 July 2016, Pavel Odintsov wrote: > Тут вопрос сложный. Конкретно мне от TCP нужна возможность принять от > клиента не более XX байт запроса, передать их бэкэнду, забрать его > ответ и раздать клиенту по TCP. Мне нужен spoon feeding в чистом виде. > > Если клиент прислал запрос по TCP больше, чем 65к (сколько предельно > лезет в UDP) вполне разумно ожидать, что в этом случае он будет > дропнут. > > 2016-07-06 19:26 GMT+03:00 Konstantin Tokarev >: > > > > > > 06.07.2016, 17:48, "Pavel Odintsov" >: > >> Очень жаль, но технических преград получается этому нету? > > > > Протоколы, основанные на UDP, часто зависят от того, что каждая > датаграмма содержит независимое сообщение. Примитивное преобразование TCP > -> UDP, которое можно было бы сделать в универсальном сервере вроде Nginx, > будет разбивать непрерывный TCP-поток на датаграммы произвольным образом. > Если этот вариант устраивает, тогда технических препятствий действительно > нет. В противном случае в nginx придется реализовать отдельный протокол для > пересылки датаграмм через TCP, а это уже более серьезная доработка > > > >> Вопрос сугубо в том, что нет опции для поддержки этой фичи? > >> > >> On Wednesday, 6 July 2016, Roman Arutyunyan > wrote: > >>> Добрый день, > >>> > >>> On Wed, Jul 06, 2016 at 04:55:38PM +0300, Pavel Odintsov wrote: > >>>> Всем привет! > >>>> > >>>> Очень нравится модуль stream - прекрасная фишка ;) > >>>> > >>>> Но захотелось немного странного, имеется UDP сервер, к которому > >>>> хочется добавить "быстрый" TCP и TLS силами Nginx. > >>>> > >>>> Но проблема в том, что при вот такой конфигурации: > >>>> stream { > >>>> upstream backend { > >>>> server 127.0.0.1:1122 weight=5; > >>>> server 127.0.0.22:1122 weight=1; > >>>> } > >>>> server { > >>>> # Listen UDP > >>>> listen 127.0.0.1:53 udp; > >>>> # Listen TCP > >>>> listen 127.0.0.1:53; > >>>> > >>>> # Listen TLS/SSL > >>>> listen 127.0.0.1:853 ssl; > >>>> proxy_connect_timeout 1s; > >>>> proxy_timeout 3s; > >>>> proxy_pass backend; > >>>> ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; > >>>> ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; > >>>> } > >>>> } > >>>> > >>>> Если запрос на Nginx приходит по UDP, то он отправляется на бэкэнд по > >>>> UDP. Если приходит по TCP либо SSL - он уходит по TCP на бэкэнд. > >>>> > >>>> Мне вот нужно, чтобы связь с бэкэндом была сугубо по UDP, но как этого > >>>> достичь - не понимаю. > >>> > >>> Пока никак. Протокол проксирования всегда тот же, что и протокол > клиента. > >>> > >>> На текущий момент не ясно, насколько востребовано проксирование по > >>> другому протоколу. > >>> > >>> -- > >>> Roman Arutyunyan > >>> > >>> _______________________________________________ > >>> nginx-ru mailing list > >>> nginx-ru на nginx.org > >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru > >> > >> -- > >> Sincerely yours, Pavel Odintsov > >> , > >> > >> _______________________________________________ > >> nginx-ru mailing list > >> nginx-ru на nginx.org > >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > -- > > Regards, > > Konstantin > > > > _______________________________________________ > > nginx-ru mailing list > > nginx-ru на nginx.org > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > Sincerely yours, Pavel Odintsov > -- Sincerely yours, Pavel Odintsov ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From arut на nginx.com Thu Sep 29 12:37:24 2016 From: arut на nginx.com (Roman Arutyunyan) Date: Thu, 29 Sep 2016 15:37:24 +0300 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9C+INC80L7QtNGD0LvRjiBzdHJlYW0gLSDRhdC+?= =?UTF-8?B?0YfRgyDQv9GA0L7QutGB0LjRgNC+0LLQsNGC0YwgVENQINCyIFVEUA==?= In-Reply-To: References: <20160706140554.GQ71640@Romans-MacBook-Air.local> <827711467822407@web2j.yandex.ru> Message-ID: <20160929123724.GW80979@Romans-MacBook-Air.local> Добрый день, Пока новостей нет. On Thu, Sep 29, 2016 at 03:34:35PM +0300, Pavel Odintsov wrote: > Добрый день! > > Нет ли новостей на этот счет? Все же хочется транслировать tcp udp запросы > изве в бэкенд, который умеет только udp (dns сервис). > > On Wednesday, 6 July 2016, Pavel Odintsov wrote: > > > Тут вопрос сложный. Конкретно мне от TCP нужна возможность принять от > > клиента не более XX байт запроса, передать их бэкэнду, забрать его > > ответ и раздать клиенту по TCP. Мне нужен spoon feeding в чистом виде. > > > > Если клиент прислал запрос по TCP больше, чем 65к (сколько предельно > > лезет в UDP) вполне разумно ожидать, что в этом случае он будет > > дропнут. > > > > 2016-07-06 19:26 GMT+03:00 Konstantin Tokarev > >: > > > > > > > > > 06.07.2016, 17:48, "Pavel Odintsov" > >: > > >> Очень жаль, но технических преград получается этому нету? > > > > > > Протоколы, основанные на UDP, часто зависят от того, что каждая > > датаграмма содержит независимое сообщение. Примитивное преобразование TCP > > -> UDP, которое можно было бы сделать в универсальном сервере вроде Nginx, > > будет разбивать непрерывный TCP-поток на датаграммы произвольным образом. > > Если этот вариант устраивает, тогда технических препятствий действительно > > нет. В противном случае в nginx придется реализовать отдельный протокол для > > пересылки датаграмм через TCP, а это уже более серьезная доработка > > > > > >> Вопрос сугубо в том, что нет опции для поддержки этой фичи? > > >> > > >> On Wednesday, 6 July 2016, Roman Arutyunyan > > wrote: > > >>> Добрый день, > > >>> > > >>> On Wed, Jul 06, 2016 at 04:55:38PM +0300, Pavel Odintsov wrote: > > >>>> Всем привет! > > >>>> > > >>>> Очень нравится модуль stream - прекрасная фишка ;) > > >>>> > > >>>> Но захотелось немного странного, имеется UDP сервер, к которому > > >>>> хочется добавить "быстрый" TCP и TLS силами Nginx. > > >>>> > > >>>> Но проблема в том, что при вот такой конфигурации: > > >>>> stream { > > >>>> upstream backend { > > >>>> server 127.0.0.1:1122 weight=5; > > >>>> server 127.0.0.22:1122 weight=1; > > >>>> } > > >>>> server { > > >>>> # Listen UDP > > >>>> listen 127.0.0.1:53 udp; > > >>>> # Listen TCP > > >>>> listen 127.0.0.1:53; > > >>>> > > >>>> # Listen TLS/SSL > > >>>> listen 127.0.0.1:853 ssl; > > >>>> proxy_connect_timeout 1s; > > >>>> proxy_timeout 3s; > > >>>> proxy_pass backend; > > >>>> ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; > > >>>> ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; > > >>>> } > > >>>> } > > >>>> > > >>>> Если запрос на Nginx приходит по UDP, то он отправляется на бэкэнд по > > >>>> UDP. Если приходит по TCP либо SSL - он уходит по TCP на бэкэнд. > > >>>> > > >>>> Мне вот нужно, чтобы связь с бэкэндом была сугубо по UDP, но как этого > > >>>> достичь - не понимаю. > > >>> > > >>> Пока никак. Протокол проксирования всегда тот же, что и протокол > > клиента. > > >>> > > >>> На текущий момент не ясно, насколько востребовано проксирование по > > >>> другому протоколу. > > >>> > > >>> -- > > >>> Roman Arutyunyan > > >>> > > >>> _______________________________________________ > > >>> nginx-ru mailing list > > >>> nginx-ru на nginx.org > > >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > >> > > >> -- > > >> Sincerely yours, Pavel Odintsov > > >> , > > >> > > >> _______________________________________________ > > >> nginx-ru mailing list > > >> nginx-ru на nginx.org > > >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > > -- > > > Regards, > > > Konstantin > > > > > > _______________________________________________ > > > nginx-ru mailing list > > > nginx-ru на nginx.org > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > -- > > Sincerely yours, Pavel Odintsov > > > > > -- > Sincerely yours, Pavel Odintsov > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Roman Arutyunyan From nginx на mva.name Thu Sep 29 15:38:05 2016 From: nginx на mva.name (Vadim A. Misbakh-Soloviov) Date: Thu, 29 Sep 2016 22:38:05 +0700 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9C+INC80L7QtNGD0LvRjiBzdHJlYW0gLSDRhdC+?= =?UTF-8?B?0YfRgyDQv9GA0L7QutGB0LjRgNC+0LLQsNGC0YwgVENQINCyIFVEUA==?= In-Reply-To: References: Message-ID: <2693157.tLVUVjkOZL@note> А вы не думали над использованием perl/njs/lua модулей и прогоном через них? From pavel.odintsov на gmail.com Thu Sep 29 15:40:23 2016 From: pavel.odintsov на gmail.com (Pavel Odintsov) Date: Thu, 29 Sep 2016 18:40:23 +0300 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9C+INC80L7QtNGD0LvRjiBzdHJlYW0gLSDRhdC+?= =?UTF-8?B?0YfRgyDQv9GA0L7QutGB0LjRgNC+0LLQsNGC0YwgVENQINCyIFVEUA==?= In-Reply-To: <2693157.tLVUVjkOZL@note> References: <2693157.tLVUVjkOZL@note> Message-ID: Неа, скорость критична On Thursday, 29 September 2016, Vadim A. Misbakh-Soloviov wrote: > А вы не думали над использованием perl/njs/lua модулей и прогоном через > них? > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Sincerely yours, Pavel Odintsov ----------- следущая часть ----------- Вложение в формате HTML было извлечено… URL: From annulen на yandex.ru Thu Sep 29 16:19:18 2016 From: annulen на yandex.ru (Konstantin Tokarev) Date: Thu, 29 Sep 2016 19:19:18 +0300 Subject: =?UTF-8?B?UmU6INCS0L7Qv9GA0L7RgSDQv9C+INC80L7QtNGD0LvRjiBzdHJlYW0gLSDRhdC+?= =?UTF-8?B?0YfRgyDQv9GA0L7QutGB0LjRgNC+0LLQsNGC0YwgVENQINCyIFVEUA==?= In-Reply-To: References: <2693157.tLVUVjkOZL@note> Message-ID: <32221475165958@web19m.yandex.ru> 29.09.2016, 18:40, "Pavel Odintsov" : > Неа, скорость критична Тогда лучше не мучать nginx и написать отдельное приложение на C > > On Thursday, 29 September 2016, Vadim A. Misbakh-Soloviov wrote: >> А вы не думали над использованием perl/njs/lua модулей и прогоном через них? >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru на nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > -- > Sincerely yours, Pavel Odintsov > , > > _______________________________________________ > nginx-ru mailing list > nginx-ru на nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- Regards, Konstantin From nginx-forum на forum.nginx.org Fri Sep 30 06:53:41 2016 From: nginx-forum на forum.nginx.org (rba) Date: Fri, 30 Sep 2016 02:53:41 -0400 Subject: =?UTF-8?Q?Re=3A_Upstream_force_to_close+client_keep_alive_=28API_=D0=A1?= =?UTF-8?Q?=D0=B8=29?= In-Reply-To: <20160928141456.GM73038@mdounin.ru> References: <20160928141456.GM73038@mdounin.ru> Message-ID: В memcached_module более менее что подвернулось глазу u->length=0 и u->keepalive=0 - у меня эффекта нет. Мне нужно закрыть апстрим из rev/wev handlers принудительно, чтобы сессия с пользователем осталась открыта. ЗаДестроить текущй апстрим. И видимо вернуть rev/wev handlers на парсер заголовка http запроса, чтобы процесс обработки запроса начался заново. Поковырявшись в upstream.c нашёл варианты по которым вызываются функции finalize upstream->read->eof=1 u->buffer.pos=u->buffer.last; u->pipe->upstream_done=1 ...и еще небольшую кучку переменных. Но эти варианты не отрабатывают как нужно. Сложилось впечатление что закрывать в любом случае нужно какой-то функцией, чтобы избежать вызова моих rev/wev. Какие есть еще варианты/схемы закрытия? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,269904,269977#msg-269977 From mdounin на mdounin.ru Fri Sep 30 14:38:44 2016 From: mdounin на mdounin.ru (Maxim Dounin) Date: Fri, 30 Sep 2016 17:38:44 +0300 Subject: =?UTF-8?Q?Re=3A_Upstream_force_to_close+client_keep_alive_=28API_=D0=A1?= =?UTF-8?Q?=D0=B8=29?= In-Reply-To: References: <20160928141456.GM73038@mdounin.ru> Message-ID: <20160930143844.GY73038@mdounin.ru> Hello! On Fri, Sep 30, 2016 at 02:53:41AM -0400, rba wrote: > В memcached_module более менее что подвернулось глазу u->length=0 и > u->keepalive=0 - у меня эффекта нет. Флаг u->keepalive - это про keepalive с бекендами. В отсутствие директивы keepalive в блоке upstream - эффекта и не должно быть, т.к. по умолчанию соединение с бекендом после каждого запроса закрывается. Поле u->length - указывает, сколько ещё байт ожидается от клиента в соединении. Если после вызова фильтра u->length равен 0 - значит, ответ закончился. Соответственно соединение будет закрыто. Нюанс: u->length используется для небуферизированного режима работы, для буферизированного - фильтры другие, и используется u->pipe->length. Наиболее простой пример модуля, умеющего работать в обоих режимах - scgi, src/http/modules/ngx_http_scgi_module.c. > Мне нужно закрыть апстрим из rev/wev handlers принудительно, чтобы сессия с > пользователем осталась открыта. Не нужно ничего специально закрывать. Соединение с бекендом nginx закроет сам, когда ответ закончится. -- Maxim Dounin http://nginx.org/