Re: Скрыть расширение .php из url

2016-12-04 Пенетрантность IvanMiller
А какой сейчас конфиг, та часть которая 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

2016-12-04 Пенетрантность Валентин Бартенев
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

2016-12-04 Пенетрантность windos321
Здравствуйте. 
Использую следующее ПО:
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 в готовых пакетах

2016-12-04 Пенетрантность Андрей Василишин
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

2016-12-04 Пенетрантность itcod
Вадим добрый день!

> 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 в готовых пакетах

2016-12-04 Пенетрантность Валентин Бартенев
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 в готовых пакетах

2016-12-04 Пенетрантность Vadim A. Misbakh-Soloviov
В письме от воскресенье, 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

2016-12-04 Пенетрантность Илья Шипицин
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 в готовых пакетах

2016-12-04 Пенетрантность Андрей Василишин
Заметил, что в готовых пакетах, взятых отсюда
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

2016-12-04 Пенетрантность Vadim A. Misbakh-Soloviov
SELinux, AppArmor, ...

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: HACK NGINX+DAV

2016-12-04 Пенетрантность itcod
Геннадий Спасибо!

> внутри этого каталога 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

2016-12-04 Пенетрантность Валентин Бартенев
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

2016-12-04 Пенетрантность Валентин Бартенев

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: WebSocket и AJAX на одном location

2016-12-04 Пенетрантность jtiq
сам сделал, спасибо за ответы

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

2016-12-04 Пенетрантность Gena Makhomed

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

2016-12-04 Пенетрантность itcod
> При всех сторонних модулях вы даже не показали конфиг
Туплю может Не видел необходимости при данной ошибке показывать конфиг.

По моей логике считал - что бы я там не написал, это не должно было
позволить воркерам и модулям 
выполнять команды 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