Re: Скрыть расширение .php из url
А какой сейчас конфиг, та часть которая php обрабатывает ? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,271281,271348#msg-271348 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: EPOLLEXCLUSIVE
On Sunday 04 December 2016 14:27:39 windos321 wrote: > Здравствуйте. > Использую следующее ПО: > nginx 1.11.6 > ubuntu 16.10 > glibc 2.24 > kernel 4.8.12-040812-generic > > С помощью команды: > (netstat -antp|grep ESTABLISHED|awk -F" " '{print $7}'|sort|uniq -c) > > наблюдаю за количеством соединений на каждый worker, при отключенном > accept_mutex, как я понимаю, должно работать EPOLLEXCLUSIVE и распределять > соединения равномерно, но соединения распределяются очень не равномерно, в > основном все ложится на 1 воркер (80% соединений) (всего их 6), если > включаю accept_mutex - все работает нормально, соединения распределяются > равномерно. > Почему не работает EPOLLEXCLUSIVE или я не понимаю как он должен работать в > данном случае? > [..] EPOLLEXCLUSIVE не для равномерности служит, а для борьбы с thundering herd. https://en.wikipedia.org/wiki/Thundering_herd_problem Если по каким-то причинам требуется равномерность, то существует опция reuseport у директивы listen. -- Валентин Бартенев ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
EPOLLEXCLUSIVE
Здравствуйте. Использую следующее ПО: nginx 1.11.6 ubuntu 16.10 glibc 2.24 kernel 4.8.12-040812-generic С помощью команды: (netstat -antp|grep ESTABLISHED|awk -F" " '{print $7}'|sort|uniq -c) наблюдаю за количеством соединений на каждый worker, при отключенном accept_mutex, как я понимаю, должно работать EPOLLEXCLUSIVE и распределять соединения равномерно, но соединения распределяются очень не равномерно, в основном все ложится на 1 воркер (80% соединений) (всего их 6), если включаю accept_mutex - все работает нормально, соединения распределяются равномерно. Почему не работает EPOLLEXCLUSIVE или я не понимаю как он должен работать в данном случае? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,271343,271343#msg-271343 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: "debug_connection" is ignored в готовых пакетах
04.12.2016 14:49, Валентин Бартенев пишет: > On Sunday 04 December 2016 14:38:15 Андрей Василишин wrote: >> Заметил, что в готовых пакетах, взятых отсюда >> http://nginx.org/ru/linux_packages.html пакеты почему-то собраны без >> --with-debug. С чем связана такая политика? > > Этот флаг добавляет накладных расходов в работу nginx, даже если debug > не включен в конфигурации. > > В пакете есть также отдельный nginx-debug, который собран с --with-debug. Спасибо. Как-то даже не обращал внимание, что оказывается рядом есть еще один бинарник ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: HACK NGINX+DAV
Вадим добрый день! > SELinux, AppArmor, ... Реально покраснел от стыда за свой косяк от Вашего мессаджа про selinux Спасибо огромное про напоминание, что доверять VPS-шаблонам вредно для кровоснабжения. Но эта тема уже не этого форума:) Posted at Nginx Forum: https://forum.nginx.org/read.php?21,271302,271340#msg-271340 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: "debug_connection" is ignored в готовых пакетах
On Sunday 04 December 2016 14:38:15 Андрей Василишин wrote: > Заметил, что в готовых пакетах, взятых отсюда > http://nginx.org/ru/linux_packages.html пакеты почему-то собраны без > --with-debug. С чем связана такая политика? Этот флаг добавляет накладных расходов в работу nginx, даже если debug не включен в конфигурации. В пакете есть также отдельный nginx-debug, который собран с --with-debug. -- Валентин Бартенев ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: "debug_connection" is ignored в готовых пакетах
В письме от воскресенье, 4 декабря 2016 г. 14:38:15 +07 пользователь Андрей Василишин написал: > Заметил, что в готовых пакетах, взятых отсюда > http://nginx.org/ru/linux_packages.html пакеты почему-то собраны без > --with-debug. С чем связана такая политика? Не то, чтобы я особый пользователь дебианов/шапок и их производных, но разве там не был отдельнй пакет nginx-debug (где бинарь NgX собран с --witi-debug) для этих целей? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: HACK NGINX+DAV
3 декабря 2016 г., 15:03 пользователь itcod написал: > Дмитрий добрый день! > > Предлагаю повторить это все на с нуля установленной системе и nginx > > без сторонних модулей > > Буду благодарен если сообщество подскажет где для этих тестов взять > бесплатную временную виртуалку с федорой. Без заморочек с инсталяциями оси > и > вы ведь где-то запускаете nginx. скомпилируйте без модулей и запустите там же, на отдельном порту. зачем отдельная виртуалка? > излишней настройкой, а то как обычно времени на админскую рутину нет > совсем:) > > Posted at Nginx Forum: https://forum.nginx.org/read. > php?21,271302,271311#msg-271311 > > ___ > 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
"debug_connection" is ignored в готовых пакетах
Заметил, что в готовых пакетах, взятых отсюда http://nginx.org/ru/linux_packages.html пакеты почему-то собраны без --with-debug. С чем связана такая политика? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: HACK NGINX+DAV
SELinux, AppArmor, ... ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: HACK NGINX+DAV
Геннадий Спасибо! > внутри этого каталога nginx имеет право удалять > и переименовывать любые файлы и каталоги Век живи век учись! Даже не предполагал, что это стандартное поведение оси. Почему-то всегда думалось, что правила безопасности оси, к правам на файлы и каталоги, гораздо жёстче. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,271302,271334#msg-271334 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: HACK NGINX+DAV
On Sunday 04 December 2016 11:01:42 Gena Makhomed wrote: > On 04.12.2016 9:08, itcod wrote: > > > Меня попросили подтвердить слова о баге который я описал в первом посте. > > Заснял процесс переименования и удаления папки владельца root, гипотетически > > не имея на это прав. > > Использовались WEBDAV команды MOVE и DELETE которые формировал BitKinex. > > Каталог TEST имеет владельца nginx:nginx и права 755, > следовательно внутри этого каталога nginx имеет право удалять > и переименовывать любые файлы и каталоги, даже с правами доступа root. > > Тот же самый трюк можно повторить и с помощью mc или bash, > если запустить его с правами nginx. > > > ps: не вошли в ролик тесты с командой COPY хотя там тоже таже проблема. > > В UNIX "файл" и "имя файла" - это две разные сущности. :) > > Для общего развития, рекомендую: https://habrahabr.ru/post/53048/ > Совершенно верно. Человек просто не владеет базовыми знаниями и нормальное поведение в данных условиях принимает за ошибку. Права доступа в *nix системах работают не так, как это представляется автору топика. В связи с этим рекомендую к прочтению: http://www.funtoo.org/Linux_Fundamentals,_Part_3 На хабре есть перевод: https://habrahabr.ru/post/109392/ -- Валентин Бартенев ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: HACK NGINX+DAV
___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: WebSocket и AJAX на одном location
сам сделал, спасибо за ответы Posted at Nginx Forum: https://forum.nginx.org/read.php?21,271287,271333#msg-271333 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: HACK NGINX+DAV
On 04.12.2016 9:08, itcod wrote: Меня попросили подтвердить слова о баге который я описал в первом посте. Заснял процесс переименования и удаления папки владельца root, гипотетически не имея на это прав. Использовались WEBDAV команды MOVE и DELETE которые формировал BitKinex. Каталог TEST имеет владельца nginx:nginx и права 755, следовательно внутри этого каталога nginx имеет право удалять и переименовывать любые файлы и каталоги, даже с правами доступа root. Тот же самый трюк можно повторить и с помощью mc или bash, если запустить его с правами nginx. ps: не вошли в ролик тесты с командой COPY хотя там тоже таже проблема. В UNIX "файл" и "имя файла" - это две разные сущности. :) Для общего развития, рекомендую: https://habrahabr.ru/post/53048/ -- Best regards, Gena ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: HACK NGINX+DAV
> При всех сторонних модулях вы даже не показали конфиг Туплю может Не видел необходимости при данной ошибке показывать конфиг. По моей логике считал - что бы я там не написал, это не должно было позволить воркерам и модулям выполнять команды webdav от рута. Возможно я не прав. Сорри! Вот конфиги. --- nginx.conf ### # # This is the main Nginx configuration file. # # More information about the configuration options is available on # * the English wiki - http://wiki.nginx.org/Main # * the Russian documentation - http://sysoev.ru/nginx/ # ### #-- # Main Module - directives that cover basic functionality # # http://wiki.nginx.org/NginxHttpMainModule # #-- user nginx; worker_processes 2; worker_rlimit_nofile 16384; error_log /var/log/nginx/error.log notice; pid/var/run/nginx.pid; #-- # Events Module # # http://wiki.nginx.org/NginxHttpEventsModule # #-- events { use epoll; worker_connections 1024; multi_accept on; } #-- # HTTP Core Module # # http://wiki.nginx.org/NginxHttpCoreModule # #-- http { client_body_temp_path /tmp/nginx-client-body; fastcgi_temp_path /tmp/nginx-fastcgi; uwsgi_temp_path /tmp/nginx-uwsgi; scgi_temp_path /tmp/nginx-scgi; proxy_cache_path /opt/nginx/cache levels=1:2 keys_zone=cache:30m max_size=10G; proxy_temp_path /opt/nginx/proxy 1 2; proxy_ignore_headers Expires Cache-Control; proxy_cache_use_stale error timeout invalid_header http_502; proxy_cache_bypass $cookie_session; proxy_no_cache $cookie_session; lua_package_cpath '/usr/lib64/?.so;/usr/lib64/lua/5.1/?.so;/usr/local/lib/lua/5.1/?.so'; lua_package_path '/usr/share/lua/5.1/?.lua;/usr/local/lib/lua/?.lua;/usr/share/lua/resty/?.lua;/usr/local/lib/lua/resty/?.lua;/usr/local/lib/lua/resty/core/?.lua;'; lua_shared_dict sha1 10M; lua_shared_dict a 10M; include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$host" "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; log_format inweb '$msec|$remote_addr|$remote_user|$time_local|$request|' '$status|$body_bytes_sent|$http_referer|' '$http_user_agent|$http_x_forwarded_for'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelayon; keepalive_timeout 65; keepalive_requests 1000; gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.0; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_static on; gzip_disable FireFox/([0-2]\.|3\.0); gzip_disable Chrome/2; gzip_disable Safari; gzip_disable MSIE[1-6].(?!.*SV1); limit_req_zone $binary_remote_addr zone=2client:10mrate=5r/s; limit_req_zone $binary_remote_addr zone=system:10m rate=10r/s; limit_req_zone $binary_remote_addr zone=update:10m rate=10r/s; limit_req_zone $binary_remote_addr zone=social:10m rate=5r/s; limit_req_zone $binary_remote_addr zone=com:10mrate=50r/s; limit_req_zone $binary_remote_addr zone=itcodcom:1mrate=10r/s; limit_req_zone $binary_remote_addr zone=itcod:100m rate=100r/s; map_hash_bucket_size 128; map $sent_http_content_type $expires { default off; application/pdf 42d; ~image/ max; } expires $expires; # # The default server # server { listen 80; server_name _; server_name_in_redirect off; location ~* \.(css|js|ico|atrib|vas|ini) { gzip_static on; gzip_disable FireFox/([0-2]\.|3\.0); gzip_disable Chrome/2; gzip_disable Safari; } error_page 415 = /empty; location = /empty { empty_gif; # Respond with empty image } location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 404 /404.html; location = /404.html { root