Передача заголовков клиенту

2013-10-15 Пенетрантность Aleus Essentia
Добрый день!

Подскажите, можно ли указать NGINX'у сразу передавать заголовки клиенту, без
ожидания получения полностью всего заголовка?

У меня есть upstream-сервер, который после запроса от клиента в некоторых
случаях может долго отвечать, больше 5 минут. Поэтому для поддержания
соединения upstream отсылает незначащие строки заголовка раз в 10 секунд. Но
NGINX копит заголовок, пока не наткнётся на \n\n.

Как решить эту проблему?

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,243691,243691#msg-243691

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

Re: Передача заголовков клиенту

2013-10-15 Пенетрантность Danila Shtan
http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_buffering

?

Д.


2013/10/15 Aleus Essentia nginx-fo...@nginx.us

 Добрый день!

 Подскажите, можно ли указать NGINX'у сразу передавать заголовки клиенту,
 без
 ожидания получения полностью всего заголовка?

 У меня есть upstream-сервер, который после запроса от клиента в некоторых
 случаях может долго отвечать, больше 5 минут. Поэтому для поддержания
 соединения upstream отсылает незначащие строки заголовка раз в 10 секунд.
 Но
 NGINX копит заголовок, пока не наткнётся на \n\n.

 Как решить эту проблему?

 Posted at Nginx Forum:
 http://forum.nginx.org/read.php?21,243691,243691#msg-243691

 ___
 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

Re: Redirect

2013-10-15 Пенетрантность Craken
rewrite old_url new_url last; - не?

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,243543,243699#msg-243699

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

Re: Redirect

2013-10-15 Пенетрантность Gena Makhomed

On 14.10.2013 12:47, Cergoo wrote:


для меня тема редиректа ещё интересна, если кто может растолковать было бы
замечательно, а то я подозреваю, что возможно я просто не знаю как правильно
делать редирект без уведомления клиента.


никак. redirect всегда происходит с уведомлением клиента
подробнее - http://www.ietf.org/rfc/rfc2616.txt, п. 10.3.

если вопрос был про rewrite, то надо читать документацию,
http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

только надо быть осторожным с применением директивы if, потому что
в текущей реализации if имеются баги http://wiki.nginx.org/IfIsEvil

--
Best regards,
 Gena

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

WebDav на Windows

2013-10-15 Пенетрантность antarey
Здравствуйте. Помогите поднять webdav с помощью nginx на Windows.
Скачал  nginx/Windows-1.5.6
Согласно инстукций настроил вебдав
вот конф 

#user  nobody;
worker_processes  1;

error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pidlogs/nginx.pid;


events {
worker_connections  1024;
}


http {
include   mime.types;
default_type  application/octet-stream;

#log_format  main  '$remote_addr - $remote_user [$time_local] $request
'
#  '$status $body_bytes_sent $http_referer '
#  '$http_user_agent $http_x_forwarded_for';

#access_log  logs/access.log  main;

sendfileon;
#tcp_nopush on;

#keepalive_timeout  0;
keepalive_timeout  65;

#gzip  on;

server {
listen   8080;
server_name  webdav;

charset utf-8;

#access_log  logs/host.access.log  main;

location / {
auth_basic   Закритий сайт;
auth_basic_user_file ./conf/htpasswd;
roothtml;
client_body_temp_path ./temp/client_body_temp;
dav_methods PUT DELETE MKCOL COPY MOVE;
create_full_put_path  on;
dav_access user:rw group:rw all:rw;

limit_except GET {
allow 127.0.0.1;
deny  all;
}
#root   html;
#index  index.html index.htm;

}

#error_page  404  /404.html;

# redirect server error pages to the static page /50x.html
#
##error_page   500 502 503 504  /50x.html;
##location = /50x.html {
##root   html;
##}

Если удаляю index.htm   получаю 403 ошибку. Подключить диск net use *
127.0.0.1:8080 не могу - сетевой ресурс не доступен
Что я делаю не так??? или надо перекомпилировать  ?? - если да то как сие
реализовать в винде?
И второй вопрос - как раздавать конкретным пользователям конкретные права на
конкретные папки?

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,243701,243701#msg-243701

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

Re: WebDav на Windows

2013-10-15 Пенетрантность antarey
И такой вопрос - как правильно прописать путь к папке webdav  - в винде ето
D:\myCloud а никсовский вариант как будет выглядеть?

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,243701,243702#msg-243702

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

Re: WebDav на Windows

2013-10-15 Пенетрантность Vadim Lazovskiy
Здравствуйте.

На данный момент Nginx поддерживает не все методы необходимые для
полноценной работы WebDav.
Но есть 3rd party модуль: https://github.com/arut/nginx-dav-ext-module
реализующий
методы OPTIONS и PROPFIND


15 октября 2013 г., 14:45 пользователь antarey nginx-fo...@nginx.usнаписал:

 Здравствуйте. Помогите поднять webdav с помощью nginx на Windows.
 Скачал  nginx/Windows-1.5.6
 Согласно инстукций настроил вебдав
 вот конф

 #user  nobody;
 worker_processes  1;

 error_log  logs/error.log;
 #error_log  logs/error.log  notice;
 #error_log  logs/error.log  info;

 #pidlogs/nginx.pid;


 events {
 worker_connections  1024;
 }


 http {
 include   mime.types;
 default_type  application/octet-stream;

 #log_format  main  '$remote_addr - $remote_user [$time_local]
 $request
 '
 #  '$status $body_bytes_sent $http_referer '
 #  '$http_user_agent $http_x_forwarded_for';

 #access_log  logs/access.log  main;

 sendfileon;
 #tcp_nopush on;

 #keepalive_timeout  0;
 keepalive_timeout  65;

 #gzip  on;

 server {
 listen   8080;
 server_name  webdav;

 charset utf-8;

 #access_log  logs/host.access.log  main;

 location / {
 auth_basic   Закритий сайт;
 auth_basic_user_file ./conf/htpasswd;
 roothtml;
 client_body_temp_path ./temp/client_body_temp;
 dav_methods PUT DELETE MKCOL COPY MOVE;
 create_full_put_path  on;
 dav_access user:rw group:rw all:rw;

 limit_except GET {
 allow 127.0.0.1;
 deny  all;
 }
 #root   html;
 #index  index.html index.htm;

 }

 #error_page  404  /404.html;

 # redirect server error pages to the static page /50x.html
 #
 ##error_page   500 502 503 504  /50x.html;
 ##location = /50x.html {
 ##root   html;
 ##}

 Если удаляю index.htm   получаю 403 ошибку. Подключить диск net use *
 127.0.0.1:8080 не могу - сетевой ресурс не доступен
 Что я делаю не так??? или надо перекомпилировать  ?? - если да то как сие
 реализовать в винде?
 И второй вопрос - как раздавать конкретным пользователям конкретные права
 на
 конкретные папки?

 Posted at Nginx Forum:
 http://forum.nginx.org/read.php?21,243701,243701#msg-243701

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




-- 
Best Regards,
Vadim Lazovskiy
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: WebDav на Windows

2013-10-15 Пенетрантность antarey
а как его прикрутить на винде?

./configure --with-http_dav_module --add-module=path-to-this-module 

Vadim Lazovskiy Wrote:
---
 Здравствуйте.
 
 На данный момент Nginx поддерживает не все методы необходимые для
 полноценной работы WebDav.
 Но есть 3rd party модуль: https://github.com/arut/nginx-dav-ext-module
 реализующий
 методы OPTIONS и PROPFIND
 
 
 15 октября 2013 г., 14:45 пользователь antarey
 nginx-fo...@nginx.usнаписал:
 
  Здравствуйте. Помогите поднять webdav с помощью nginx на Windows.
  Скачал  nginx/Windows-1.5.6
  Согласно инстукций настроил вебдав
  вот конф
 
  #user  nobody;
  worker_processes  1;
 
  error_log  logs/error.log;
  #error_log  logs/error.log  notice;
  #error_log  logs/error.log  info;
 
  #pidlogs/nginx.pid;
 
 
  events {
  worker_connections  1024;
  }
 
 
  http {
  include   mime.types;
  default_type  application/octet-stream;
 
  #log_format  main  '$remote_addr - $remote_user [$time_local]
  $request
  '
  #  '$status $body_bytes_sent $http_referer '
  #  '$http_user_agent $http_x_forwarded_for';
 
  #access_log  logs/access.log  main;
 
  sendfileon;
  #tcp_nopush on;
 
  #keepalive_timeout  0;
  keepalive_timeout  65;
 
  #gzip  on;
 
  server {
  listen   8080;
  server_name  webdav;
 
  charset utf-8;
 
  #access_log  logs/host.access.log  main;
 
  location / {
  auth_basic   Закритий сайт;
  auth_basic_user_file ./conf/htpasswd;
  roothtml;
  client_body_temp_path ./temp/client_body_temp;
  dav_methods PUT DELETE MKCOL COPY MOVE;
  create_full_put_path  on;
  dav_access user:rw group:rw all:rw;
 
  limit_except GET {
  allow 127.0.0.1;
  deny  all;
  }
  #root   html;
  #index  index.html index.htm;
 
  }
 
  #error_page  404  /404.html;
 
  # redirect server error pages to the static page /50x.html
  #
  ##error_page   500 502 503 504  /50x.html;
  ##location = /50x.html {
  ##root   html;
  ##}
 
  Если удаляю index.htm   получаю 403 ошибку. Подключить диск net use
 *
  127.0.0.1:8080 не могу - сетевой ресурс не доступен
  Что я делаю не так??? или надо перекомпилировать  ?? - если да то
 как сие
  реализовать в винде?
  И второй вопрос - как раздавать конкретным пользователям конкретные
 права
  на
  конкретные папки?
 
  Posted at Nginx Forum:
  http://forum.nginx.org/read.php?21,243701,243701#msg-243701
 
  ___
  nginx-ru mailing list
  nginx-ru@nginx.org
  http://mailman.nginx.org/mailman/listinfo/nginx-ru
 
 
 
 
 -- 
 Best Regards,
 Vadim Lazovskiy
 ___
 nginx-ru mailing list
 nginx-ru@nginx.org
 http://mailman.nginx.org/mailman/listinfo/nginx-ru

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,243701,243704#msg-243704

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

Re: NGinx + apache проверка работы

2013-10-15 Пенетрантность Craken
denis Wrote:
---
 У релоада есть большая проблема: он некорректно делает конфигтест, 
 поэтому если есть ошибки в конфиге, reload может сказать что всё ок, а
 
 restart говорит о реальных проблемах. И после такого релоада сначала
 всё 
 работает, но по мере обновления воркеров появляются отказы.

---

Очень часто видел такие проблемы у apache. С nginx'ом таких проблем не
наблюдалось, хотя для переконфигурации всегда использую именно reload.

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,243574,243706#msg-243706

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

Re: Передача заголовков клиенту

2013-10-15 Пенетрантность Maxim Dounin
Hello!

On Tue, Oct 15, 2013 at 01:59:52AM -0400, Aleus Essentia wrote:

 Добрый день!
 
 Подскажите, можно ли указать NGINX'у сразу передавать заголовки клиенту, без
 ожидания получения полностью всего заголовка?
 
 У меня есть upstream-сервер, который после запроса от клиента в некоторых
 случаях может долго отвечать, больше 5 минут. Поэтому для поддержания
 соединения upstream отсылает незначащие строки заголовка раз в 10 секунд. Но
 NGINX копит заголовок, пока не наткнётся на \n\n.
 
 Как решить эту проблему?

Никак.  Для отправки чего-либо клиенту nginx'у нужны все заголовки 
ответа - или в какой-то момент могло бы оказаться, что часть 
заголовков клиенту уже ушла, а в очередном заголовке нас попросили, 
например, сделать X-Accel-Redirect в другое место.  Не говоря уже 
про то, что чуть менее, чем любой фильтр не сможет даже начать 
работать с ответом, если не видит всех заголовков.

Чтобы подобных сюрпризов и сложностей не возникало - в nginx'е 
вообще нет возможности работать с отдельными заголовками.  
Отправляются только все заголовки целиком, никак иначе.

Или убирайте nginx, или меняйте логику работы бекенда.

-- 
Maxim Dounin
http://nginx.org/en/donation.html

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

allow/deny and return

2013-10-15 Пенетрантность Anton Yuzhaninov

В такой конфигурации:

location /closed {
  allow 10.1.1.1;
  deny all;
  return 200 secret\n;
}

allow/deny ни на что не влияют.

IMHO стоит написать об этом в документации, момент не очевидный с первого 
взгляда.

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

Re: allow/deny and return

2013-10-15 Пенетрантность Maxim Dounin
Hello!

On Tue, Oct 15, 2013 at 04:26:32PM +0400, Anton Yuzhaninov wrote:

 В такой конфигурации:
 
 location /closed {
   allow 10.1.1.1;
   deny all;
   return 200 secret\n;
 }
 
 allow/deny ни на что не влияют.
 
 IMHO стоит написать об этом в документации, момент не очевидный с первого 
 взгляда.

Если ты готов предолжить хороший способ написать об этом - мы с 
удовольствием.

Я, например, хорошего способа не знаю.  Потому что не с первого 
взгляда - момент в общем-то очевидный (у прочитавших документацию 
на модуль rewrite вопросов, как мне кажется, возникнуть не 
должно), а как это корректно рассказать не читавшим...

-- 
Maxim Dounin
http://nginx.org/en/donation.html

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

Re: allow/deny and return

2013-10-15 Пенетрантность Ruslan Ermilov
On Tue, Oct 15, 2013 at 04:45:28PM +0400, Maxim Dounin wrote:
 Hello!
 
 On Tue, Oct 15, 2013 at 04:26:32PM +0400, Anton Yuzhaninov wrote:
 
  В такой конфигурации:
  
  location /closed {
allow 10.1.1.1;
deny all;
return 200 secret\n;
  }
  
  allow/deny ни на что не влияют.
  
  IMHO стоит написать об этом в документации, момент не очевидный с первого 
  взгляда.
 
 Если ты готов предолжить хороший способ написать об этом - мы с 
 удовольствием.
 
 Я, например, хорошего способа не знаю.  Потому что не с первого 
 взгляда - момент в общем-то очевидный (у прочитавших документацию 
 на модуль rewrite вопросов, как мне кажется, возникнуть не 
 должно), а как это корректно рассказать не читавшим...

Пока про это у нас есть такое:

http://www.aosabook.org/en/nginx.html
Читать со слов Which brings us to the phases.

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

Re: allow/deny and return

2013-10-15 Пенетрантность Maxim Dounin
Hello!

On Tue, Oct 15, 2013 at 03:59:53PM +0300, Gena Makhomed wrote:

 On 15.10.2013 15:45, Maxim Dounin wrote:
 
 В такой конфигурации:
 
 location /closed {
allow 10.1.1.1;
deny all;
return 200 secret\n;
 }
 
 allow/deny ни на что не влияют.
 
 IMHO стоит написать об этом в документации, момент не очевидный с первого 
 взгляда.
 
 Если ты готов предолжить хороший способ написать об этом - мы с
 удовольствием.
 
 Я, например, хорошего способа не знаю.  Потому что не с первого
 взгляда - момент в общем-то очевидный (у прочитавших документацию
 на модуль rewrite вопросов, как мне кажется, возникнуть не
 должно), а как это корректно рассказать не читавшим...
 
 в документации http://nginx.org/en/docs/http/ngx_http_access_module.html
 ничего не написано о том, что директивы allow и deny работают не всегда.
 
 я прочитал http://nginx.org/en/docs/http/ngx_http_rewrite_module.html
 но так и не смог понять, почему allow и deny тут не будут работать.

Потому что директивы модуля rewrite - это фактически часть выбора 
конфигурации.  И именно от выбранной конфигурации зависит, что 
можно, а что - нельзя.

 это все похоже на BUG, потому что пользователи обычно подразумевают,
 что сначала работает access module и только потом - rewrite_module.
 
 по крайней мере, в UNIX и даже в WINDOWS все работает именно так:
 если доступа к файлу нет, никаких операций с ним сделать нельзя.

В Антоном конфиге нет файла.  Есть инструкция при выборе 
конфигурации для обработки запросов вернуть ответ с кодом 200.

(И да, я таки считаю, что возможность задавать тело ответа была 
добавлена в диркетиву return зря, не её это работа.  Надо было 
сделать отдельный модуль a la empty gif, подобных вопросов было бы 
меньше.  Но таки этот фарш уже поздно проворачивать назад.)

-- 
Maxim Dounin
http://nginx.org/en/donation.html

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

Problem with proxy_pass,

2013-10-15 Пенетрантность yevhen
Hi,

I am using latest nginx (1.4.3) on centos with next location configuration:

location ~^/3g {
auth_basic  Restricted;
auth_basic_user_file  htpasswd;
rewrite ^/3g/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:18001;
#   proxy_redirect off;
proxy_redirect  127.0.0.1:18001/ /3g/;
proxy_set_header SCRIPT_NAME /3g;
proxy_set_header X-Script-Name  /3g;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_connect_timeout   600;
proxy_send_timeout  600;
proxy_read_timeout  600;
send_timeout600;

}

127.0.0.1 - is reverse ssh tunnel to some hardware, with apache on it.

if I use location / - all works perfect, but with location /3g opening
http://SERVER_IP/3g - I see next in firebug:

http://SERVER_IP/cgi-bin/dlDevices.plx?Command=DeviceListDate=Tue

So somehow cgi-bin is not redirected to /3g location.

Please help.

Thank you
Yevhen

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,243720,243720#msg-243720

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

nginx -t Illegal instruction

2013-10-15 Пенетрантность Sergey Talchuk
Всем привет!

собрал nginx для своей системы без проблем (собирал на ней же). Только
похоже при запуске nginx -t не может определить тип процессора. К
сожалению, система находится на носителе доступном только для чтения.
Поэтому отдебажить системные библиотеки не представляется возможным.
Надеюсь на помощь.

Заранее спасибо.
Сергей

linux 2.4.28
uClibc
i486

==
$ nginx -V
nginx version: nginx/1.5.6
configure arguments: --prefix=/mnt/C/sys/share/nginx
--sbin-path=/mnt/C/sys/sbin/nginx
--conf-path=/mnt/C/sys/etc/nginx/nginx.conf --error-log-

path=/mnt/C/sys/var/nginx/log/error.log
--pid-path=/mnt/C/sys/var/nginx/run/nginx.pid
--lock-path=/mnt/C/sys/var/nginx/run/nginx.lock --http-log-

path=/mnt/C/sys/var/nginx/log/access.log
--http-client-body-temp-path=/mnt/C/sys/var/nginx/tmp/client_body_temp
--http-proxy-temp-

path=/mnt/C/sys/var/nginx/tmp/proxy_temp
--http-fastcgi-temp-path=/mnt/C/sys/var/nginx/tmp/fastcgi_temp
--without-http_charset_module --without-

http_gzip_module --without-http_ssi_module --without-http_userid_module
--without-http_access_module --without-http_auth_basic_module --without-

http_autoindex_module --without-http_geo_module --without-http_map_module
--without-http_referer_module --without-http_rewrite_module --without-

http_proxy_module --without-http_fastcgi_module
--without-http_memcached_module --without-http_limit_conn_module
--without-http_empty_gif_module

--without-http_browser_module --without-http_upstream_ip_hash_module
--without-mail_pop3_module --without-mail_imap_module --without-

mail_smtp_module --without-pcre --with-debug


===
CFLAGS=-g -O0 \
./configure \
--prefix=/mnt/C/sys/share/nginx \
--sbin-path=/mnt/C/sys/sbin/nginx \
--conf-path=/mnt/C/sys/etc/nginx/nginx.conf \
--error-log-path=/mnt/C/sys/var/nginx/log/error.log \
--pid-path=/mnt/C/sys/var/nginx/run/nginx.pid \
--lock-path=/mnt/C/sys/var/nginx/run/nginx.lock \
--http-log-path=/mnt/C/sys/var/nginx/log/access.log \
--http-client-body-temp-path=/mnt/C/sys/var/nginx/tmp/client_body_temp \
--http-proxy-temp-path=/mnt/C/sys/var/nginx/tmp/proxy_temp \
--http-fastcgi-temp-path=/mnt/C/sys/var/nginx/tmp/fastcgi_temp \
--without-http_charset_module \
--without-http_gzip_module \
--without-http_ssi_module \
--without-http_userid_module \
--without-http_access_module \
--without-http_auth_basic_module \
--without-http_autoindex_module \
--without-http_geo_module \
--without-http_map_module \
--without-http_referer_module \
--without-http_rewrite_module \
--without-http_proxy_module \
--without-http_fastcgi_module \
--without-http_memcached_module \
--without-http_limit_conn_module \
--without-http_empty_gif_module \
--without-http_browser_module \
--without-http_upstream_ip_hash_module \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module \
--without-pcre \
--with-debug

sed -i -e 's/#ifndef NGX_HAVE_GNU_CRYPT_R/#if 0/'
src/os/unix/ngx_linux_config.h

make


===
(gdb) run
Starting program: /tmp/mnt/C/sys/sbin/nginx

Program received signal SIGILL, Illegal instruction.
0x0805dca5 in ngx_cpuid (i=0, buf=0xb950) at src/core/ngx_cpuinfo.c:30
30  src/core/ngx_cpuinfo.c: No such file or directory.
in src/core/ngx_cpuinfo.c
(gdb) bt
#0  0x0805dca5 in ngx_cpuid (i=0, buf=0xb950) at
src/core/ngx_cpuinfo.c:30
#1  0x0805dbbb in ngx_cpuinfo () at src/core/ngx_cpuinfo.c:84
#2  0x0806e4f7 in ngx_os_init (log=0x80c27a8) at
src/os/unix/ngx_posix_init.c:60
#3  0x08049e21 in main (argc=1, argv=0xbb94) at src/core/nginx.c:312
#4  0x40100b49 in __uClibc_main () from /lib/libc.so.0
(gdb) backtrace full
#0  0x0805dca5 in ngx_cpuid (i=0, buf=0xb950) at
src/core/ngx_cpuinfo.c:30
No locals.
#1  0x0805dbbb in ngx_cpuinfo () at src/core/ngx_cpuinfo.c:84
vendor = (u_char *) 0x806e4d7 \203▒\020▒▒▒\f\b\203=▒▒\f\b
vbuf = {0, 0, 0, 0, 0}
cpu = {3221224340, 3221223832, 1073744062, 1073762344}
model = 3221224588
#2  0x0806e4f7 in ngx_os_init (log=0x80c27a8) at
src/os/unix/ngx_posix_init.c:60
n = 0
#3  0x08049e21 in main (argc=1, argv=0xbb94) at src/core/nginx.c:312
i = -1073743152
log = (ngx_log_t *) 0x80c27a8
cycle = (ngx_cycle_t *) 0xbc8c
init_cycle = {conf_ctx = 0x0, pool = 0x80cd080, log = 0x80c27a8,
new_log = {log_level = 0, file = 0x0, connection = 0, handler = 0, data =

0x0, action = 0x0, next = 0x0}, log_use_stderr = 0, files = 0x0,
free_connections = 0x0,
  free_connection_n = 0, reusable_connections_queue = {prev = 0x0, next =
0x0}, listening = {elts = 0x0, nelts = 0, size = 0, nalloc = 0, pool =

0x0}, paths = {elts = 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0},
open_files = {
last = 0x0, part = {elts = 0x0, nelts = 0, next = 0x0}, size = 0,
nalloc = 0, pool = 0x0}, shared_memory = {last = 0x0, part = {elts = 0x0,

nelts = 0, next = 0x0}, size = 0, nalloc = 0, pool = 0x0}, connection_n =
0, files_n = 0,
  connections = 0x0, read_events = 0x0, write_events = 0x0, old_cycle =
0x0, 

Re: nginx -t Illegal instruction

2013-10-15 Пенетрантность Maxim Dounin
Hello!

On Tue, Oct 15, 2013 at 06:14:21PM +0300, Sergey Talchuk wrote:

 Всем привет!
 
 собрал nginx для своей системы без проблем (собирал на ней же). Только
 похоже при запуске nginx -t не может определить тип процессора. К
 сожалению, система находится на носителе доступном только для чтения.
 Поэтому отдебажить системные библиотеки не представляется возможным.
 Надеюсь на помощь.

[...]

 Program received signal SIGILL, Illegal instruction.
 0x0805dca5 in ngx_cpuid (i=0, buf=0xb950) at src/core/ngx_cpuinfo.c:30
 30  src/core/ngx_cpuinfo.c: No such file or directory.
 in src/core/ngx_cpuinfo.c
 (gdb) bt
 #0  0x0805dca5 in ngx_cpuid (i=0, buf=0xb950) at
 src/core/ngx_cpuinfo.c:30
 #1  0x0805dbbb in ngx_cpuinfo () at src/core/ngx_cpuinfo.c:84
 #2  0x0806e4f7 in ngx_os_init (log=0x80c27a8) at
 src/os/unix/ngx_posix_init.c:60

[...]

 cat /proc/cpuinfo
 processor   : 0
 vendor_id   : CyrixInstead
 cpu family  : 4
 model   : 1
 model name  : Cx486SLC
 stepping: unknown
 fdiv_bug: no
 hlt_bug : no
 f00f_bug: no
 coma_bug: no
 fpu : no
 fpu_exception   : no
 cpuid level : -1
 wp  : yes
 flags   :
 bogomips: 44.33

Ваш процессор настолько старый, что не поддерживает инструкцию 
cpuid.  Quick and dirty workaround - добавить return в самом 
начале функции ngx_cpuinfo() в src/core/ngx_cpuinfo.c:

diff --git a/src/core/ngx_cpuinfo.c b/src/core/ngx_cpuinfo.c
--- a/src/core/ngx_cpuinfo.c
+++ b/src/core/ngx_cpuinfo.c
@@ -75,6 +75,8 @@ ngx_cpuinfo(void)
 u_char*vendor;
 uint32_t   vbuf[5], cpu[4], model;
 
+return;
+
 vbuf[0] = 0;
 vbuf[1] = 0;
 vbuf[2] = 0;


-- 
Maxim Dounin
http://nginx.org/en/donation.html

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

Re: allow/deny and return

2013-10-15 Пенетрантность Gena Makhomed

On 15.10.2013 16:45, Maxim Dounin wrote:


В такой конфигурации:

location /closed {
   allow 10.1.1.1;
   deny all;
   return 200 secret\n;
}

allow/deny ни на что не влияют.

...

я прочитал http://nginx.org/en/docs/http/ngx_http_rewrite_module.html
но так и не смог понять, почему allow и deny тут не будут работать.



Потому что директивы модуля rewrite - это фактически часть выбора
конфигурации.  И именно от выбранной конфигурации зависит, что
можно, а что - нельзя.


вот дословно что сейчас написано в документации:

The ngx_http_rewrite_module module is used to change URIs using regular
expressions, return redirects, and conditionally select configurations.

conditionally select configurations - это только evil директива if.
остальные директивы, кроме rewrite, являются unconditional. разве нет?


это все похоже на BUG, потому что пользователи обычно подразумевают,
что сначала работает access module и только потом - rewrite_module.

по крайней мере, в UNIX и даже в WINDOWS все работает именно так:
если доступа к файлу нет, никаких операций с ним сделать нельзя.



В Антоном конфиге нет файла.  Есть инструкция при выборе
конфигурации для обработки запросов вернуть ответ с кодом 200.


файла нет. но есть location /closed и есть директивы задания доступа
кому allow, а кому deny. то что return срабатывает раньше deny - это
будет совершенно неожиданно для более чем 99% пользователей nginx...


(И да, я таки считаю, что возможность задавать тело ответа была
добавлена в диркетиву return зря, не её это работа.  Надо было
сделать отдельный модуль a la empty gif, подобных вопросов было бы
меньше.  Но таки этот фарш уже поздно проворачивать назад.)


почему поздно? и сейчас можно сделать отдельный модуль return, который
будет срабатывать как content handler возвращая код статуса и урл/текст

return code [text];
return code URL;
return URL;

а из модуля rewrite директиву return тогда можно будет вообще убрать.
в этом случае - вообще ничего не изменится, кроме того, что директивы
из access module отработают раньше, чем return, как это и должно быть.

P.S. есть такая книга Безумно просто. Вдохновляющие примеры Apple
http://www.mann-ivanov-ferber.ru/books/paperbook/bezumno-prosto/
см. Отрывки из книги, [PDF] Введение. Посох Простоты 113 КБ.

из рецензии:

«Простота всегда в моде», — говорит автор книги Кен Сигал. «Бизнес 
тенденции приходят и уходят, но простота остается всегда. Предпочтение 
простоте заложено в нашей ДНК и это вряд ли изменится в течение 
нескольких миллиардов лет.


Организации, которые понимают это могут превратить простоту в 
конкурентное преимущество. Поэтому, что это просто жизненный факт: при 
наличие выбора, человек всегда выберет более простой путь. Внутри 
огранизации простота экономит время и деньги, создает лучшие условия 
работы и поднимает боевой дух. Совсем не плохо для концепции, которая не 
стоит ни копейки».


--
Best regards,
 Gena

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

Re: allow/deny and return

2013-10-15 Пенетрантность Maxim Dounin
Hello!

On Tue, Oct 15, 2013 at 07:14:22PM +0300, Gena Makhomed wrote:

 On 15.10.2013 16:45, Maxim Dounin wrote:
 
 В такой конфигурации:
 
 location /closed {
allow 10.1.1.1;
deny all;
return 200 secret\n;
 }
 
 allow/deny ни на что не влияют.
 ...
 я прочитал http://nginx.org/en/docs/http/ngx_http_rewrite_module.html
 но так и не смог понять, почему allow и deny тут не будут работать.
 
 Потому что директивы модуля rewrite - это фактически часть выбора
 конфигурации.  И именно от выбранной конфигурации зависит, что
 можно, а что - нельзя.
 
 вот дословно что сейчас написано в документации:
 
 The ngx_http_rewrite_module module is used to change URIs using regular
 expressions, return redirects, and conditionally select configurations.
 
 conditionally select configurations - это только evil директива if.
 остальные директивы, кроме rewrite, являются unconditional. разве нет?

Все директивы модуля rewrite - это в той или иной степени выбор 
конфигурации, даже если они unconditional.  E.g., банальный set:

set $file .htpasswd;
auth_basic_user_file /path/to/$file;

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

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

 это все похоже на BUG, потому что пользователи обычно подразумевают,
 что сначала работает access module и только потом - rewrite_module.
 
 по крайней мере, в UNIX и даже в WINDOWS все работает именно так:
 если доступа к файлу нет, никаких операций с ним сделать нельзя.
 
 В Антоном конфиге нет файла.  Есть инструкция при выборе
 конфигурации для обработки запросов вернуть ответ с кодом 200.
 
 файла нет. но есть location /closed и есть директивы задания доступа
 кому allow, а кому deny. то что return срабатывает раньше deny - это
 будет совершенно неожиданно для более чем 99% пользователей nginx...

С якобы багом разобрались - отлично.  Возвращаемся к исходному 
разговору - если есть идеи, как _хорошо_ объяснить пользователям, 
почему так - you are welcome. 

 (И да, я таки считаю, что возможность задавать тело ответа была
 добавлена в диркетиву return зря, не её это работа.  Надо было
 сделать отдельный модуль a la empty gif, подобных вопросов было бы
 меньше.  Но таки этот фарш уже поздно проворачивать назад.)
 
 почему поздно? и сейчас можно сделать отдельный модуль return, который
 будет срабатывать как content handler возвращая код статуса и урл/текст
 
 return code [text];
 return code URL;
 return URL;
 
 а из модуля rewrite директиву return тогда можно будет вообще убрать.
 в этом случае - вообще ничего не изменится, кроме того, что директивы
 из access module отработают раньше, чем return, как это и должно быть.

Потому что семантика директивы return - в общем случае другая.  В 
частности, сломается вот такой вполне типичный конфиг:

if ($evil) {
return 403;
}

rewrite ^/something/(.*) /something/else/$1;

Аналогичный конфиг, кстати, рассматривается в подробностях тут:

http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#internals

-- 
Maxim Dounin
http://nginx.org/en/donation.html

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

Re: nginx -t Illegal instruction

2013-10-15 Пенетрантность Sergey Kandaurov
On Oct 15, 2013, at 7:39 PM, Maxim Dounin mdou...@mdounin.ru wrote:
 Hello!
 
 On Tue, Oct 15, 2013 at 06:14:21PM +0300, Sergey Talchuk wrote:
 
 Всем привет!
 
 собрал nginx для своей системы без проблем (собирал на ней же). Только
 похоже при запуске nginx -t не может определить тип процессора. К
 сожалению, система находится на носителе доступном только для чтения.
 Поэтому отдебажить системные библиотеки не представляется возможным.
 Надеюсь на помощь.
 
 [...]
 
 Program received signal SIGILL, Illegal instruction.
 0x0805dca5 in ngx_cpuid (i=0, buf=0xb950) at src/core/ngx_cpuinfo.c:30
 30  src/core/ngx_cpuinfo.c: No such file or directory.
in src/core/ngx_cpuinfo.c
 (gdb) bt
 #0  0x0805dca5 in ngx_cpuid (i=0, buf=0xb950) at
 src/core/ngx_cpuinfo.c:30
 #1  0x0805dbbb in ngx_cpuinfo () at src/core/ngx_cpuinfo.c:84
 #2  0x0806e4f7 in ngx_os_init (log=0x80c27a8) at
 src/os/unix/ngx_posix_init.c:60
 
 [...]
 
 cat /proc/cpuinfo
 processor   : 0
 vendor_id   : CyrixInstead
 cpu family  : 4
 model   : 1
 model name  : Cx486SLC
 stepping: unknown
 fdiv_bug: no
 hlt_bug : no
 f00f_bug: no
 coma_bug: no
 fpu : no
 fpu_exception   : no
 cpuid level : -1
 wp  : yes
 flags   :
 bogomips: 44.33
 
 Ваш процессор настолько старый, что не поддерживает инструкцию 
 cpuid.  Quick and dirty workaround - добавить return в самом 
 начале функции ngx_cpuinfo() в src/core/ngx_cpuinfo.c:
 
 diff --git a/src/core/ngx_cpuinfo.c b/src/core/ngx_cpuinfo.c
 --- a/src/core/ngx_cpuinfo.c
 +++ b/src/core/ngx_cpuinfo.c
 @@ -75,6 +75,8 @@ ngx_cpuinfo(void)
 u_char*vendor;
 uint32_t   vbuf[5], cpu[4], model;
 
 +return;
 +
 vbuf[0] = 0;
 vbuf[1] = 0;
 vbuf[2] = 0;
 


Или что-то такое может работать:

diff -r 5483d9e77b32 src/core/ngx_cpuinfo.c
--- a/src/core/ngx_cpuinfo.cWed Oct 02 15:07:17 2013 +0400
+++ b/src/core/ngx_cpuinfo.cTue Oct 15 21:03:53 2013 +0400
@@ -20,6 +20,20 @@ static ngx_inline void ngx_cpuid(uint32_
 static ngx_inline void
 ngx_cpuid(uint32_t i, uint32_t *buf)
 {
+uint32_t cpu_vendor[4];
+
+__asm__ (
+
+movl   $0x4778654e, (%0);   // store vendor string
+movl   $0x72446e65, 4(%0);
+movl   $0x6e657669, 8(%0);
+movl   $0, 12(%0);
+
+: : D (cpu_vendor) );
+
+if (ngx_strcmp(cpu_vendor, CyrixInstead) == 0) {
+return;
+}
 
 /*
  * we could not use %ebx as output parameter if gcc builds PIC,

-- 
Sergey Kandaurov
pluk...@nginx.com



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

Re: nginx -t Illegal instruction

2013-10-15 Пенетрантность Gena Makhomed

On 15.10.2013 20:06, Sergey Kandaurov wrote:


diff -r 5483d9e77b32 src/core/ngx_cpuinfo.c
--- a/src/core/ngx_cpuinfo.cWed Oct 02 15:07:17 2013 +0400
+++ b/src/core/ngx_cpuinfo.cTue Oct 15 21:03:53 2013 +0400
@@ -20,6 +20,20 @@ static ngx_inline void ngx_cpuid(uint32_
  static ngx_inline void
  ngx_cpuid(uint32_t i, uint32_t *buf)
  {
+uint32_t cpu_vendor[4];
+
+__asm__ (
+
+movl   $0x4778654e, (%0);   // store vendor string
+movl   $0x72446e65, 4(%0);
+movl   $0x6e657669, 8(%0);
+movl   $0, 12(%0);
+
+: : D (cpu_vendor) );
+
+if (ngx_strcmp(cpu_vendor, CyrixInstead) == 0) {
+return;
+}


есть лучший вариант - стандартный и документированный способ
проверить, поддерживает __i386__ процессор команду cpuid или нет:

http://wiki.osdev.org/CPUID

такой патч был бы более универсальным и более полезным.
вопросы про 486 процессор без cpuid периодически возникают.

--
Best regards,
 Gena

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

Re: WebDav на Windows

2013-10-15 Пенетрантность Илья Шипицин
инструкция по компиляции на win32 вызывает вопросы у всех, кто с ней
сталкивается :-)

там фишка в том, что используется bash от mingw и С-компилятор от
Microsoft. чтобы configure нашла компилятор в путях, надо поправить
переменные. можно, например, сделать по-ленивому.

ставите компилятор от Microsoft, в Пуск появляется Visual Studio
Command Prompt, запускаете сначала этот ярлык, он прописывает пути,
потом из него запускаете msys, а из него уже configure




15 октября 2013 г., 19:00 пользователь antarey nginx-fo...@nginx.us написал:
 нашел инструкцию - http://nginx.org/en/docs/howto_build_on_win32.html - но
 честно говоря не совсем понял что за чем.
 все что у меня получилось - скачать исходники, все остальное - ничего не
 понятно
 1.Start MSYS bash. - bash.exe зачем?
 2. Create a build and lib directories, and unpack zlib, PCRE and OpenSSL
 libraries sources into lib directory:
 mkdir objs
 mkdir objs/lib
 cd objs/lib
 tar -xzf ../../pcre-8.32.tar.gz
 tar -xzf ../../zlib-1.2.7.tar.gz
 tar -xzf ../../openssl-1.0.1e.tar.gz

 в каком каталоге создавать ети каталоги? в каталоге c:\Program
 Files\Mercurial\nginx\   ?
 3. Run configure script: с помощью чего запускать етот скрипт, чем выполнять
 и тд.
 на https://github.com/arut/nginx-dav-ext-module написано
 Requirements:   libexpat-dev - что ето, где взять, куда кидать,как юзать?

 Posted at Nginx Forum: 
 http://forum.nginx.org/read.php?21,243701,243712#msg-243712

 ___
 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

Re: nginx -t Illegal instruction

2013-10-15 Пенетрантность Gena Makhomed

On 15.10.2013 21:01, Igor Sysoev wrote:

 вопросы про 486 процессор без cpuid периодически возникают.


Что-то я не припоминаю в рассылке периодических вопросов
про процессоры двадцатилетней давности.


я визуально помню, что были сообщения про Illegal Instruction
при запуске nginx, сейчас порылся в архиве рассылки... причина
Illegal Instruction там была другая, падал он не из-за cpuid:

http://forum.nginx.org/read.php?21,35305,35305


On 15.10.2013 21:07, Maxim Dounin wrote:

 вопросы про 486 процессор без cpuid периодически возникают.

 Я так других случаев подобных вопросов - не помню ни одного, и
 поиском тоже не находится.  Если покажешь пальцем - будет хорошо.

именно про cpuid и 386/486 процессор не покажу. не смог сейчас найти.
но подозреваю, что попытки запустить nginx на 386/486 были и раньше.

 Пока что мне кажется, что более продуктивным будет не заниматься
 некро^Wархеологией.

скорее всего да. не буду спорить с разработчиками nginx, вам виднее.
хотя у меня до сих пор дома стоит комп с CPU 386DX 40 MHz, 4 MB RAM.
- просто рука не поднимается выбросить, он ведь полностью рабочий...

--
Best regards,
 Gena

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

Re: WebDav на Windows

2013-10-15 Пенетрантность antarey
Нда намутили ребята по полной, а нельзя блин скомпилировать со всеми
модулями и в конфе указывать что включать а что нет ?
Попробую, спасибо
Илья Шипицин Wrote:
---
 инструкция по компиляции на win32 вызывает вопросы у всех, кто с ней
 сталкивается :-)
 
 там фишка в том, что используется bash от mingw и С-компилятор от
 Microsoft. чтобы configure нашла компилятор в путях, надо поправить
 переменные. можно, например, сделать по-ленивому.
 
 ставите компилятор от Microsoft, в Пуск появляется Visual Studio
 Command Prompt, запускаете сначала этот ярлык, он прописывает пути,
 потом из него запускаете msys, а из него уже configure
 
 
 
 
 15 октября 2013 г., 19:00 пользователь antarey nginx-fo...@nginx.us
 написал:
  нашел инструкцию -
 http://nginx.org/en/docs/howto_build_on_win32.html - но
  честно говоря не совсем понял что за чем.
  все что у меня получилось - скачать исходники, все остальное -
 ничего не
  понятно
  1.Start MSYS bash. - bash.exe зачем?
  2. Create a build and lib directories, and unpack zlib, PCRE and
 OpenSSL
  libraries sources into lib directory:
  mkdir objs
  mkdir objs/lib
  cd objs/lib
  tar -xzf ../../pcre-8.32.tar.gz
  tar -xzf ../../zlib-1.2.7.tar.gz
  tar -xzf ../../openssl-1.0.1e.tar.gz
 
  в каком каталоге создавать ети каталоги? в каталоге c:\Program
  Files\Mercurial\nginx\   ?
  3. Run configure script: с помощью чего запускать етот скрипт, чем
 выполнять
  и тд.
  на https://github.com/arut/nginx-dav-ext-module написано
  Requirements:   libexpat-dev - что ето, где взять, куда кидать,как
 юзать?
 
  Posted at Nginx Forum:
 http://forum.nginx.org/read.php?21,243701,243712#msg-243712
 
  ___
  nginx-ru mailing list
  nginx-ru@nginx.org
  http://mailman.nginx.org/mailman/listinfo/nginx-ru
 ___
 nginx-ru mailing list
 nginx-ru@nginx.org
 http://mailman.nginx.org/mailman/listinfo/nginx-ru

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,243701,243739#msg-243739

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