Re: [PATCH] Configure: added new option --with-pcre-conf-opt=OPTIONS.

2013-12-11 Thread rand
 As you already have libpcre installed, you don't need nginx to 
 build it (and you don't need sources).  If nginx isn't able to 
 find the pcre itself, use something like this to tell where to 
 look for headers and library:
 
  ./configure --with-cc-opt=-I/usr/local/include \
  --with-ld-opt=-L/usr/local/lib64

That's easy enough, then.

I've built pcre, separately, with pcre-jit support enabled.  Is that
sufficient for nginx to use pcre-jit?  I suspect that it is, and that
--with-pcrejit is also simply a build-pcre-in-nginx flag?

Thanks

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


Re: [PATCH] Configure: added new option --with-pcre-conf-opt=OPTIONS.

2013-12-11 Thread rand
./configure --with-cc-opt=-I/usr/local/include \
--with-ld-opt=-L/usr/local/lib64

works as promised,

...
make
ldd objs/nginx | egrep -i pcre
libpcre.so.1 = /usr/local/lib64/libpcre.so.1
(0x7fc62c7e7000)

Thanks.

 That is, it's only applies when nginx is going to build PCRE library itself.

Clear.

 To actually activate JIT compilation, you'll also need to use 
 pcre_jit directive, see nginx.org/r/pcre_jit.
 
 Note that use of PCRE JIT may actually result in lower performance 
 (due to more memory used to compiled regular expressions, and less 
 effective CPU cache as a result), enabling it unconditionally may 
 not be a good idea.

Noted.

Thanks!

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


Re: [PATCH] Configure: added new option --with-pcre-conf-opt=OPTIONS.

2013-12-11 Thread rand
oops.  not quite ...

on systems where ld.so.conf does NOT point to the pcre path -- i.e, on
my production rather than dev boxes -- the RUNTIME link is incorrect,

ldd objs/nginx | egrep -i pcre
libpcre.so.1 = /usr/lib64/libpcre.so.1 (0x7fa719a0d000)

This can be remedied by rpath'ing,

--with-ld-opt=' ... -L/usr/local/lib64
-Wl,-rpath,/usr/local/lib64 -lpcre'

resulting correctly in

ldd objs/nginx | egrep -i pcre
libpcre.so.1 = /usr/local/lib64/libpcre.so.1
(0x7f961ada1000)

*IN*sensitive to local/runtime env

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


Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

2013-12-11 Thread mnsold
Подскажите, как можно организовать прокисрование http и https в одном
конфигурационном файле, если есть несколько веб-серверов порты у которых
отличаются от 80 и 443.
Опишу общий вариант, чтобы было понятнее о чем речь, думаю в организациях, у
которых множество сервисов, такое или очень похожее часто встречается.

Для упрощения пусть будут несколько веб-серверов
(apache,tomcat,glassfish,jbos ... и т.д.) на одном сервере (в жизни конечно
не васе прям так, но доля правды есть, да и заменить один хост на хост в
сети не так и сложно).

Пусть будет сервер в лок сети с установленым на нем ПО:
- nginx, порты http=80 https=443, он же проксирует все во нешний мир.
- apache, порты http=8080 https=8083
- glassfish, порты http=8181 https=8183

1. Каким образом нужно написать конфиг для проксирования, чтобы http и https
были в одном конфиге?
2. Каким образом нужно написать конфиг для проксирования, чтобы http и https
были в одном конфиге, при условии, что приложения на apache/glassfish
находятся не в корне веб сервера?
2й вариант наиболее интересен!

Несколько примеров:
-
Если проксирование идет от корня (вопрос 1), и порты отличны от 80 и 443,
есть способ и он работает, но я не уверен что это правильное решение, может
нужно по другому прописывать?:
в одном из location указать проксирование на apache
if ( $scheme = http ) {
  proxy_pass http://localhost:8080;
}
if ( $scheme = https ) {
  proxy_pass https://localhost:8083;
}
в другом location указать проксирование на glassfish
if ( $scheme = http ) {
  proxy_pass http://localhost:8181;
}
if ( $scheme = https ) {
  proxy_pass https://localhost:8183;
}

Но в этом варианте нельзя указать проксирование к контексту (вопрос 2),
например http://localhost:8080/app ,т.к. nginx пишет ошибку
nginx: [emerg] proxy_pass cannot have URI part in location given by
regular expression, or inside named location, or inside if statement, or
inside limit_except

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

-

Понимаю, что если сделать например так:
- apacheповесить на сетевой интерфейс 127.0.1.1, порты http=80
https=443
- glassfish повесить на сетевой интерфейс 127.0.1.2, порты http=80
https=443
то в location можно проксирование прописать следующим образом без
использования if
proxy_pass $scheme://127.0.1.1; | proxy_pass $scheme://127.0.1.1/app;
или
proxy_pass $scheme://127.0.1.2; | proxy_pass $scheme://127.0.1.2/app;

Но этот способ не очень применим, т.к. повлечет за собой очень много
изменений в сети.

-

Спасибо.

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

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

PHP ошибки в nginx error log

2013-12-11 Thread greenh
Добрый день
Имеется связка nginx/1.4.2+php5-fpm  (PHP 5.3.27)
Очень хочется при display_errors=off заставить php ошибки ложиться в nginx
error.log. Единственный кривой способ, который я смог использовать - это
через fastcgi_param указать error_log=nginx-error.log
Но при этом я получаю два разных формата записи в лог, что оченьнеудобно
для парсинга. И вообще как то криво
Подскажите плз, как это можно седлать по человечьи?

[global]
pid = run/php-fpm.pid
error_log = /var/log/php-fpm.log

[project]
security.limit_extensions = .php .html
listen = /home/project/run/socket
listen.backlog = -1
user = project
group = project
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 10
catch_workers_output = yes


[PHP]
date.timezone = Europe/Moscow
display_errors=Off
magic_quotes_gpc=Off
upload_max_filesize = 20M
post_max_size = 10M
error_log = /home/php_error.log
log_errors = on
fastcgi.logging = 1
max_execution_time = 600
max_input_time = 600
magic_quotes_gpc = Off
memory_limit = 256M
file_uploads = On
post_max_size = 20M
max_file_uploads = 20
extension=mcrypt.so
extension=/usr/local/lib/php/20090626/mcrypt.so
php_memory_limit = 200M
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

2013-12-11 Thread mnsold
Тут наверное я еще не совсем правильно выразился, нужно описать конфигурацию
не то чтобы в одном когфиге, а в одном блоке server {} и без повториний
location {} с разницей только http-https.

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

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

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

2013-12-11 Thread Maxim Dounin
Hello!

On Wed, Dec 11, 2013 at 10:23:50AM -0500, mnsold wrote:

 Тут наверное я еще не совсем правильно выразился, нужно описать конфигурацию
 не то чтобы в одном когфиге, а в одном блоке server {} и без повториний
 location {} с разницей только http-https.

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

Для того, чтобы избегать повторов - в nginx'е есть наследование 
конфигурации, а равно директива include.  Если этого нехватает - 
обычно правильнее взять в руки любимый шаблонизатор, а не пытаться 
то же самое сделать с помощью условных проверок в процессе 
обработки запросов.

-- 
Maxim Dounin
http://nginx.org/

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

Re: патч для отключения заголовков Connection: keep-alive (еще раз)

2013-12-11 Thread Илья Шипицин
11 декабря 2013 г., 20:41 пользователь Maxim Dounin
mdou...@mdounin.ru написал:
 Hello!

 On Wed, Dec 11, 2013 at 01:39:21AM +0600, Илья Шипицин wrote:

 11 декабря 2013 г., 0:43 пользователь Maxim Dounin mdou...@mdounin.ru 
 написал:
  Hello!
 
  On Tue, Dec 10, 2013 at 11:12:16PM +0600, Илья Шипицин wrote:
 
  10 декабря 2013 г., 22:37 пользователь Maxim Dounin
  mdou...@mdounin.ru написал:
   Hello!
  
   On Tue, Dec 10, 2013 at 09:22:02PM +0600, Илья Шипицин wrote:
  
   10 декабря 2013 г., 19:37 пользователь Maxim Dounin
   mdou...@mdounin.ru написал:
Hello!
   
On Tue, Dec 10, 2013 at 05:16:45PM +0600, Илья Шипицин wrote:
   
10 декабря 2013 г., 17:13 пользователь Maxim Dounin
mdou...@mdounin.ru написал:
 Hello!

 On Tue, Dec 10, 2013 at 09:13:16AM +0600, Илья Шипицин wrote:

 Добрый день!

 как-то уже писал на эту тему. дошли руки, выкатил патч в 
 продакшен.
 идея в том, что отправка заголовка Connection: keep-alive в
 большинстве случаев не нужна.

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


 желающие - приглашаются к тестированию.

 данное поведение подсмотрено у IIS, который по любым метрикам
 занимает десятки процентов рынка:
 http://news.netcraft.com/archives/2013/12/06/december-2013-web-server-survey.html
 - поэтому есть уверенность, что все обойдется без побочных 
 эффектов

 Илья, я вроде как сделал патч с таким поведением ещё в процессе
 прошлого обсуждения:

 http://mailman.nginx.org/pipermail/nginx-ru/2013-May/051059.html

 Странно видить попытки изобрести велосипед заново вместо того,
 чтобы заняться тестированием и последующим убеждением, что это
 надо закоммитить, тем более про тщательное тестирование было
 явно написано.  ;)
   
это именно та тема и есть, сейчас дошли руки тщательно
протестировать. я запустил в продакшн.
   
Меня в первую очередь удивило, что вместо патча, нарисованного ещё
полгода назад, к письму о потестировать прилагается совсем
другой патч, с чуть-чуть другими условиями и стилистическими
проблемами.  Я бы всё-таки рекомендовал тестировать то, что потом
будем коммитить.
   
ждем пару месяцев (и, если проблем не всплывает, считаем, что все 
ок) ?
   
Я, честно говоря, пребывал в надежде, что патч уже полгода
тестируется. ;)
   
Но если нет - то, видимо, так и делаем.  Только просьба - взять
для тестирования патч в том виде, в каком его предполагается
коммитить, if any:
  
   без проблем. сегодня запущу в продакшн в таком виде
  
   не совсем понятно, зачем делать условие r-http_version  
   NGX_HTTP_VERSION_11
   для версии 0.9, насколько я понимаю, и в моем и в вашем случае будет 
   фигня
  
   Для 0.9 всё это не будет выполняться, т.к. будет отсечено
   проверкой
  
   if (r-http_version  NGX_HTTP_VERSION_10) {
   return NGX_OK;
   }
  
   в начале функции.  Принципиальной разницы между патчами нет,
   вопрос в основном стилистический (с учётом того, что между
   HTTP/1.0 и HTTP/1.1 других версий быть не может).
 
  тогда получается, что мой вариант лучше.
 
  для 0.9 по RFC не бывает keep-alive
  для 1.0 у меня сравнение по равенству
 
  Не согласен, т.к. важно не то, что в HTTP/1.0 нет keepalive'а по
  умолчанию, а то, что keepalive по умолчанию есть в HTTP/1.1 и
  выше, а в версиях до HTTP/1.1 его нужно явно включать.
 
  В условиях, когда у нас есть только HTTP/1.0 и HTTP/1.1, и никаких
  промежуточных версий быть не может - патчи эквивалентны, и
  различие только стилистическое.  Но если бы был ещё какой-нибудь
  HTTP/1.(1/2) - сравнение с HTTP/1.0 было бы неправильным.

 Максим, почему вы думаете, что разработчики RFC для HTTP/1.(1/2)
 заложат поведение, идентичное HTTP/1.0 ?
 ваш вариант это подразумевает. я не уверен, что будет именно так.

 Я уверен, что уже не будет.  Всмысле - никакой версии HTTP/1.(1/2)
 никогда не будет.  Вопрос, повторяю, стилистический.

если вопрос стилистический, давайте остановимся на моей версии. она
мне больше нравится


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

это как раз случай версий HTTP, их мало


 Если есть сомнения в правильности вышеприведённого абзаца - то
 можно заглянуть в src/event/ngx_event_opennsl.c, и попробовать
 переписать условия на OPENSSL_VERSION_NUMBER с помощью явного
 перечисления.

хорошо, если я буду править что-то связанное с OPENSSL, обязательно
буду иметь это в виду


 --
 Maxim Dounin
 http://nginx.org/

 ___
 nginx-ru mailing list
 nginx-ru@nginx.org
 

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

2013-12-11 Thread Andrey Oktyabrskiy

On 11.12.2013 19:41, mnsold wrote:

server {
listen 80;
...
include app - для http
...
}

server {
listen 443 ssl;
...
include apps - для https
...
}
в этом случае, location /app нужно описывать в 2х файлах
Так и держите location /app в файле location_app, в файлах app и apps 
пишите include location_app;


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

Re: патч для отключения заголовков Connection: keep-alive (еще раз)

2013-12-11 Thread Maxim Dounin
Hello!

On Wed, Dec 11, 2013 at 10:41:42PM +0600, Илья Шипицин wrote:

 11 декабря 2013 г., 20:41 пользователь Maxim Dounin
 mdou...@mdounin.ru написал:
  Hello!
 
  On Wed, Dec 11, 2013 at 01:39:21AM +0600, Илья Шипицин wrote:
 
  11 декабря 2013 г., 0:43 пользователь Maxim Dounin mdou...@mdounin.ru 
  написал:
   Hello!
  
   On Tue, Dec 10, 2013 at 11:12:16PM +0600, Илья Шипицин wrote:
  
   10 декабря 2013 г., 22:37 пользователь Maxim Dounin
   mdou...@mdounin.ru написал:
Hello!
   
On Tue, Dec 10, 2013 at 09:22:02PM +0600, Илья Шипицин wrote:
   
10 декабря 2013 г., 19:37 пользователь Maxim Dounin
mdou...@mdounin.ru написал:
 Hello!

 On Tue, Dec 10, 2013 at 05:16:45PM +0600, Илья Шипицин wrote:

 10 декабря 2013 г., 17:13 пользователь Maxim Dounin
 mdou...@mdounin.ru написал:
  Hello!
 
  On Tue, Dec 10, 2013 at 09:13:16AM +0600, Илья Шипицин wrote:
 
  Добрый день!
 
  как-то уже писал на эту тему. дошли руки, выкатил патч в 
  продакшен.
  идея в том, что отправка заголовка Connection: keep-alive в
  большинстве случаев не нужна.
 
  абонентская база - сотни тысяч пользователей, сотни миллионов 
  запросов
  в месяц. думаю, спустя месяц-два можно будет считать, что все
  протестировано во всех возможных ситуациях.
 
 
  желающие - приглашаются к тестированию.
 
  данное поведение подсмотрено у IIS, который по любым метрикам
  занимает десятки процентов рынка:
  http://news.netcraft.com/archives/2013/12/06/december-2013-web-server-survey.html
  - поэтому есть уверенность, что все обойдется без побочных 
  эффектов
 
  Илья, я вроде как сделал патч с таким поведением ещё в процессе
  прошлого обсуждения:
 
  http://mailman.nginx.org/pipermail/nginx-ru/2013-May/051059.html
 
  Странно видить попытки изобрести велосипед заново вместо того,
  чтобы заняться тестированием и последующим убеждением, что это
  надо закоммитить, тем более про тщательное тестирование было
  явно написано.  ;)

 это именно та тема и есть, сейчас дошли руки тщательно
 протестировать. я запустил в продакшн.

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

 ждем пару месяцев (и, если проблем не всплывает, считаем, что все 
 ок) ?

 Я, честно говоря, пребывал в надежде, что патч уже полгода
 тестируется. ;)

 Но если нет - то, видимо, так и делаем.  Только просьба - взять
 для тестирования патч в том виде, в каком его предполагается
 коммитить, if any:
   
без проблем. сегодня запущу в продакшн в таком виде
   
не совсем понятно, зачем делать условие r-http_version  
NGX_HTTP_VERSION_11
для версии 0.9, насколько я понимаю, и в моем и в вашем случае будет 
фигня
   
Для 0.9 всё это не будет выполняться, т.к. будет отсечено
проверкой
   
if (r-http_version  NGX_HTTP_VERSION_10) {
return NGX_OK;
}
   
в начале функции.  Принципиальной разницы между патчами нет,
вопрос в основном стилистический (с учётом того, что между
HTTP/1.0 и HTTP/1.1 других версий быть не может).
  
   тогда получается, что мой вариант лучше.
  
   для 0.9 по RFC не бывает keep-alive
   для 1.0 у меня сравнение по равенству
  
   Не согласен, т.к. важно не то, что в HTTP/1.0 нет keepalive'а по
   умолчанию, а то, что keepalive по умолчанию есть в HTTP/1.1 и
   выше, а в версиях до HTTP/1.1 его нужно явно включать.
  
   В условиях, когда у нас есть только HTTP/1.0 и HTTP/1.1, и никаких
   промежуточных версий быть не может - патчи эквивалентны, и
   различие только стилистическое.  Но если бы был ещё какой-нибудь
   HTTP/1.(1/2) - сравнение с HTTP/1.0 было бы неправильным.
 
  Максим, почему вы думаете, что разработчики RFC для HTTP/1.(1/2)
  заложат поведение, идентичное HTTP/1.0 ?
  ваш вариант это подразумевает. я не уверен, что будет именно так.
 
  Я уверен, что уже не будет.  Всмысле - никакой версии HTTP/1.(1/2)
  никогда не будет.  Вопрос, повторяю, стилистический.
 
 если вопрос стилистический, давайте остановимся на моей версии. она
 мне больше нравится

Да сколько угодно, я ж разве возражаю?  Только тогда патч не будет 
закоммичен из-за стилистических проблем.  ;)

  Речь о том, что когда что-то меняется, то важна именно версия, в
  которой это что-то поменялось.  Подход, предполагающий явное
  перечисление - работает только в условиях малого количества
  версий.  С ростом количества версий он становится непригодным к
  использованию.
 
 это как раз случай версий HTTP, их мало

Версий HTTP - потенциально бесконечное количество.  В nginx'е уже 
сейчас используются проверки r-http_version, нормально 
скалирующиеся 

Re: патч для отключения заголовков Connection: keep-alive (еще раз)

2013-12-11 Thread Илья Шипицин
12 декабря 2013 г., 0:04 пользователь Maxim Dounin mdou...@mdounin.ru написал:
 Hello!

 On Wed, Dec 11, 2013 at 10:41:42PM +0600, Илья Шипицин wrote:

 11 декабря 2013 г., 20:41 пользователь Maxim Dounin
 mdou...@mdounin.ru написал:
  Hello!
 
  On Wed, Dec 11, 2013 at 01:39:21AM +0600, Илья Шипицин wrote:
 
  11 декабря 2013 г., 0:43 пользователь Maxim Dounin mdou...@mdounin.ru 
  написал:
   Hello!
  
   On Tue, Dec 10, 2013 at 11:12:16PM +0600, Илья Шипицин wrote:
  
   10 декабря 2013 г., 22:37 пользователь Maxim Dounin
   mdou...@mdounin.ru написал:
Hello!
   
On Tue, Dec 10, 2013 at 09:22:02PM +0600, Илья Шипицин wrote:
   
10 декабря 2013 г., 19:37 пользователь Maxim Dounin
mdou...@mdounin.ru написал:
 Hello!

 On Tue, Dec 10, 2013 at 05:16:45PM +0600, Илья Шипицин wrote:

 10 декабря 2013 г., 17:13 пользователь Maxim Dounin
 mdou...@mdounin.ru написал:
  Hello!
 
  On Tue, Dec 10, 2013 at 09:13:16AM +0600, Илья Шипицин wrote:
 
  Добрый день!
 
  как-то уже писал на эту тему. дошли руки, выкатил патч в 
  продакшен.
  идея в том, что отправка заголовка Connection: keep-alive в
  большинстве случаев не нужна.
 
  абонентская база - сотни тысяч пользователей, сотни миллионов 
  запросов
  в месяц. думаю, спустя месяц-два можно будет считать, что все
  протестировано во всех возможных ситуациях.
 
 
  желающие - приглашаются к тестированию.
 
  данное поведение подсмотрено у IIS, который по любым 
  метрикам
  занимает десятки процентов рынка:
  http://news.netcraft.com/archives/2013/12/06/december-2013-web-server-survey.html
  - поэтому есть уверенность, что все обойдется без побочных 
  эффектов
 
  Илья, я вроде как сделал патч с таким поведением ещё в процессе
  прошлого обсуждения:
 
  http://mailman.nginx.org/pipermail/nginx-ru/2013-May/051059.html
 
  Странно видить попытки изобрести велосипед заново вместо того,
  чтобы заняться тестированием и последующим убеждением, что это
  надо закоммитить, тем более про тщательное тестирование было
  явно написано.  ;)

 это именно та тема и есть, сейчас дошли руки тщательно
 протестировать. я запустил в продакшн.

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

 ждем пару месяцев (и, если проблем не всплывает, считаем, что 
 все ок) ?

 Я, честно говоря, пребывал в надежде, что патч уже полгода
 тестируется. ;)

 Но если нет - то, видимо, так и делаем.  Только просьба - взять
 для тестирования патч в том виде, в каком его предполагается
 коммитить, if any:
   
без проблем. сегодня запущу в продакшн в таком виде
   
не совсем понятно, зачем делать условие r-http_version  
NGX_HTTP_VERSION_11
для версии 0.9, насколько я понимаю, и в моем и в вашем случае 
будет фигня
   
Для 0.9 всё это не будет выполняться, т.к. будет отсечено
проверкой
   
if (r-http_version  NGX_HTTP_VERSION_10) {
return NGX_OK;
}
   
в начале функции.  Принципиальной разницы между патчами нет,
вопрос в основном стилистический (с учётом того, что между
HTTP/1.0 и HTTP/1.1 других версий быть не может).
  
   тогда получается, что мой вариант лучше.
  
   для 0.9 по RFC не бывает keep-alive
   для 1.0 у меня сравнение по равенству
  
   Не согласен, т.к. важно не то, что в HTTP/1.0 нет keepalive'а по
   умолчанию, а то, что keepalive по умолчанию есть в HTTP/1.1 и
   выше, а в версиях до HTTP/1.1 его нужно явно включать.
  
   В условиях, когда у нас есть только HTTP/1.0 и HTTP/1.1, и никаких
   промежуточных версий быть не может - патчи эквивалентны, и
   различие только стилистическое.  Но если бы был ещё какой-нибудь
   HTTP/1.(1/2) - сравнение с HTTP/1.0 было бы неправильным.
 
  Максим, почему вы думаете, что разработчики RFC для HTTP/1.(1/2)
  заложат поведение, идентичное HTTP/1.0 ?
  ваш вариант это подразумевает. я не уверен, что будет именно так.
 
  Я уверен, что уже не будет.  Всмысле - никакой версии HTTP/1.(1/2)
  никогда не будет.  Вопрос, повторяю, стилистический.

 если вопрос стилистический, давайте остановимся на моей версии. она
 мне больше нравится

 Да сколько угодно, я ж разве возражаю?  Только тогда патч не будет
 закоммичен из-за стилистических проблем.  ;)

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


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

 это как раз случай 

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

2013-12-11 Thread Maxim Dounin
Hello!

On Wed, Dec 11, 2013 at 11:58:34AM -0500, mnsold wrote:

[...]

 Согласитесь, N количество блоков  server {} и N количество блоков location
 {} проще изменить, меньше вероятности допустить ошибки и понимать легче, чем
 N*2 количество блоков  server {} и N*2 количество блоков location {}
 сделанных отдельно для http и для https.

Не соглашусь.  Проще менять то, что само по себе просто.  А 
вероятность допустить ошибку - гораздо выше при редактировании 
сложного конфига.  Количество - не так важно, и принципиального 
значения не имеет.

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

http://nginx.org/en/docs/faq/variables_in_config.html

-- 
Maxim Dounin
http://nginx.org/

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

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

2013-12-11 Thread Gena Makhomed

On 11.12.2013 18:58, mnsold wrote:


Но вопрос в том, как проксировать одно приложение по http и https в одном
блоке server {} и одном блоке location {} (без дублей), учитавая, что
приложение на бэкэенде может быть доступно как в корне так и по контекстному
пути, а порты отличаются от 80 и 443.

Согласитесь, N количество блоков  server {} и N количество блоков location
{} проще изменить, меньше вероятности допустить ошибки и понимать легче, чем
N*2 количество блоков  server {} и N*2 количество блоков location {}
сделанных отдельно для http и для https.


конфиг nginx - это примерно то же самое, что и ассемблер.

здесь нет макросов, и если нужны макроподстановки, условная компиляция
и другие возможности макроассемблера, их надо будет реализовать 
самостоятельно с помощью m4, python, ruby, perl, awk, sed, и т.п.


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



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

h   http://habrahabr.ru/Хабрахабр
gt  http://translate.google.com.ua/ Google Translate
yt  http://youtube.com/ YouTube

(всего - несколько десятков таких записей)

а на выходе транслятора получается конфигурационный файл nginx,
готовый для включения с помощью директивы include, такого вида:

#
# this is auto-generated file, do not edit manually
# config source file: /etc/nginx/conf/redirect.conf
#

server {
server_name h;
server_name h.example.com;
rewrite  ^  http://habrahabr.ru/  redirect;
}

server {
server_name gt;
server_name gt.example.com;
rewrite  ^  http://translate.google.com.ua/  redirect;
}

server {
server_name yt;
server_name yt.example.com;
rewrite  ^  http://youtube.com/  redirect;
}

и страничка /etc/nginx/site/t/index.html
где перечислены все видимые shortcut`ы.

- это используется на сервере, куда указывает * запись в DNS
для домена example.com, чтобы вручную не набирать полный адрес,
а только shortcut`ы h, gt, yt и т.п. это быстро и удобно.

поскольку меня об этом уже спрашивали в прошлый раз -
в аттаче сам конфиг / генератор конфига redirect.conf
и пример его использования в скрипте reload`а nginx.

--
Best regards,
 Gena
#!/bin/bash

nginx -v

/etc/nginx/conf/redirect.conf

service nginx reload

# for pid in $(pgrep nginx); do cat /proc/$pid/limits; done

# for pid in $(pgrep nginx); do grep open /proc/$pid/limits ; done

#!/usr/bin/python
# encoding: utf-8

raw_config = 

yt  http://youtube.com/ YouTube
h   http://habrahabr.ru 
Хабрахабр
dw  http://www.freedrweb.com/   
антивирус Dr.Web CureIt!

t   --- СЃРїРёСЃРѕРє 
всех сокращений

gt  http://translate.google.com.ua/ Google Translate

y   http://www.ya.ru/   ya.ru
yy  http://www.yandex.ru/   yandex.ru

gmail   https://mail.google.com/--- Gmail
kp  http://www.kp.ru/   --- kp.ru

ripehttp://www.ripe.net/--- ripe 
vt  http://www.virustotal.com/ru/   --- VirusTotal



# 
---

conf_header = 
#
# this is auto-generated file, do not edit manually 
# config source file: $config_filename
#

conf_record = 

server {
server_name $name;
server_name $name.example.com;
rewrite  ^  $url  redirect;
}


conf_footer = 


# 
---

html_header = !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01//EN 
http://www.w3.org/TR/html4/strict.dtd;
htmlheadtitleredirect service/title
style type=text/css
a { text-decoration:none; display: block; }
a:link { color: black; }
a:visited { color: black; }
table { border: #00 1px solid; border-collapse: collapse; margin: 0 0 0 0; 
padding 0 0 0 0; } 
tr { margin: 0 0 0 0; padding 0 0 0 0; } 
td { margin: 0 0 0 0; padding 0 0 0 0; } 

table.left { margin-left: 64px; margin-right:auto; }
tr.ff { background-color: #ff; }
tr.ee { background-color: #ee; }
td.name { text-align: right; font-size: x-large; font-family: Courier New; 
font-weight: bold; padding-left: 10px; padding-right: 10px; }
td.desc { text-align: left; font-size: large; font-family: Arial; 
padding-right: 10px; }
div.footer { float: right; }
/style
/headbodytable class=left cellpadding=0 

Re: Проксирование http и https в одном конигурационном файле, на порты отличные от 80 и 443

2013-12-11 Thread mnsold
Maxim Dounin Wrote:
---
  Согласитесь, N количество блоков  server {} и N количество блоков
 location
  {} проще изменить, меньше вероятности допустить ошибки и понимать
 легче, чем
  N*2 количество блоков  server {} и N*2 количество блоков location {}
  сделанных отдельно для http и для https.
 
 Не соглашусь.  Проще менять то, что само по себе просто.  А 
 вероятность допустить ошибку - гораздо выше при редактировании 
 сложного конфига.  Количество - не так важно, и принципиального 
 значения не имеет.
 
 Ну и не следует забывать, что все эти попытки сокращения 
 конфигурации обычно выливаются в множество лишней работы при 
 обработке запросов.  На всякий случай я оставлю эту ссылку здесь:
 
 http://nginx.org/en/docs/faq/variables_in_config.html


Я с вами тоже тут не соглашусь, т.к. конфиг вида:
server {
listen 80;
listen 443 ssl;
...
include app;
...
}

файл app:
location / {
...
proxy_pass $schema://upstream:;
...
}
Очень простой и то, что вы написали А вероятность допустить ошибку -
гораздо выше при редактировании сложного конфига тут несколько не уместно,
т.к. вы правильно написали чуть выше само по себе просто и эти слова очень
подходят для данной конфигурации. 

Не ясна тогда возможность указывать в директивы в одном блоке server {}
server {
listen 80;
listen 443 ssl;
С ваших слов получается - если удается заставить проксировать по схеме
http-http + https-http то можно использовать такую конструкцию, в
остальном - ее использовать не правильно, и нужно плодить блоки server{} и
location{}.
Я не утверждаю, что именно так вы сказали, это лишь вывод который сделал я
на основе ваших наводок.

И конфиг выше уж точно проще чем этот конфиг (как минимум с точки зрения
внесения правок, минимизации ошибок, да и не только этого):

server {
listen 80;
...
include app;
...
}

файл app:
location / {
...
proxy_pass http://upstream:;
...
}

server {
listen 443 ssl;
...
include apps;
...
}

файл apps:
location / {
...
proxy_pass https://upstream:;
...
}
Даже с точки зрения множество лишней работы при обработке запросов в
данном случае:
1сервер+1локейшен(в одном файле)+одна доп. переменная $schema может быть
проще в обработке чем 2сервера+2локейшена(в 2х файлах) и в место одной
переменной статика в виде http и https.
Это только мысли в слух, они ничем не подтверждены, таких тестов я пока не
делал и в серьез их сейчас конечно воспринимать не нужно, но и отказываться
от них еще рано.

Максим, вы не подумайте что я вас не понимаю, прекрасно понимаю, но хотелось
бы найти решение для вопроса который я озвучивал ранее и был бы признателен
за помощь:
как проксировать одно приложение по http и https в одном блоке server {} и
одном блоке location {} (без дублей), учитавая, что приложение на бэкэенде
может быть доступно как в корне так и по контекстному пути, а порты
отличаются от 80 и 443.

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

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

Re: Upstrea/ Keepalive strange behaviour

2013-12-11 Thread David DONCHEZ
Hello Maxim,

 
 As per HTTP specification, persistent connection can be closed by 
 the server at any time, and clients should handle this.   That is, 
 that's more or less normal, and nginx is expected to handle this 
 fine by using another upstream server if this happens.
 

Thanks for your reply. I suspected that this behavior was normal but
it's good to have a confirmation from your side.

-- 
David Donchez - Lead Engineer, Research  Engineering
SmartJog | T: +33 1 5868 6190
27 Blvd Hippolyte Marquès, 94200 Ivry-sur-Seine, France
www.smartjog.com | a TDF Group company
___
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

$_SERVER['QUERY_STRING'] plus-signs and whitespace

2013-12-11 Thread basti
Hello,
I have the following Problem with Nginx 1.2.1-2.2
running on 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux

A String like $_SERVER['QUERY_STRING'] = test=1+2 will get $_GET['test']
= 1 2
I have found the following:

|$_GET||[||q||] = ||strtr||(||$_GET||[||q||], ||+||, || ||);|
at
http://www.dmuth.org/node/1268/how-get-rid-annoying-plus-signs-drupal-under-nginx

Is there a way to do this, in nginx config?

Regards,
basti
___
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Re: $_SERVER['QUERY_STRING'] plus-signs and whitespace

2013-12-11 Thread smallfish
'+' in url equla ' ' (base64). if value has '+', you must encode it.

example:
$a = 1+1;
echo urlencode($a);

the correct url is: http://x.com/?test=1%2B1;

--
smallfish http://chenxiaoyu.org


On Wed, Dec 11, 2013 at 6:19 PM, basti black.flederm...@arcor.de wrote:

  Hello,
 I have the following Problem with Nginx 1.2.1-2.2
 running on 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux

 A String like $_SERVER['QUERY_STRING'] = test=1+2 will get $_GET['test']
 = 1 2
 I have found the following:

  $_GET[q] = strtr($_GET[q], +,  );
  at
 http://www.dmuth.org/node/1268/how-get-rid-annoying-plus-signs-drupal-under-nginx

 Is there a way to do this, in nginx config?

 Regards,
 basti

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

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

Re: Nginx Deployments in Practice

2013-12-11 Thread Brian Akins
I build packages using omnibus - https://github.com/bakins/omnibus-nginx
___
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Re: Subdomains no longer work

2013-12-11 Thread Peleke
Thanks for the DNS hint, my provider must have done something wrong, now it
is fixed, great!

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?2,244807,245415#msg-245415

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


Re: Nginx Deployments in Practice

2013-12-11 Thread Jeffrey Walton
2013/12/11 Brian Akins br...@akins.org:
 I build packages using omnibus - https://github.com/bakins/omnibus-nginx

Thanks Brian. It appears omnibus-nginx does not contain the nginx
sources. Is it safe to assume you provide them?

What version of nginx do you currently use? Do you have any custom
code that might create conflicts when stable changes from 1.4.4 to X
(would X be 1.4.6 or 1.6)?

Jeff

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


Re: [Patch] possible mutex starvation issue affects all nginx Linux versions.

2013-12-11 Thread itpp2012
From the patch author:

Hi Maxim,
I apologize for my late reply: I just had now time to sort this out.

The short answer to your remarks is: 
the first patch is partially correct, just incomplete, and could be easily
completed with the addition of a call to ngx_disable_accept_events(...)
addressing the issue of 2 workers accepting connections at the same time.
The second one is windows only and as correct and atomical as the unix only
ngx_unlock_mutexes(), addressing the very same issue that one is for (which
btw showed up during my tests) but being just one line long.

The long answer follows and, well, is quite long.


So before everything else, and  for the sake of clarity:

accept mutex patching has been performed on codebase derived by nginx 1.5.6
after properly re-enabling it (the accept_mutex) removing the following
disable lines in ngx_event.c

#if (NGX_WIN32)

/*
 * disable accept mutex on win32 as it may cause deadlock if
 * grabbed by a process which can't accept connections
 */

ngx_use_accept_mutex = 0;

#endif

Thus submitted patch lines are not useless and are part of a larger patch
included in Catepillar 1.5.7.1.
The latter (Caterpillar) fully works distributing correctly the workload to
any number of configured process workers (not just one of the configured
number of them).

Now getting to specific proposed patches:

A) about the added line ngx_accept_mutex_held=0 in ngx_event.c

 259 if (ngx_accept_mutex_held) {
 --+ ngx_accept_mutex_held=0;
 260 ngx_shmtx_unlock(ngx_accept_mutex);
 261 }

that is not wrong, it's just incomplete.
In fact, first of all, it pairs with the similar one in 

src/event/ngx_event_accept.c, line 402 

which was patched in Caterpillar and that you too found later in your in
1.5.7.
The problem with this one (line 402) was that when ngx_accept_mutex_held's
process *local* variable and the accept_mutex *global* to all nginx
processes (being it allocated in shared memory) got out of synch.
This resulted (as it has been showed in tests) in more than a worker process
locally 'thinking' to have the ownership of the accept_mutex at the same
time.
The latter interfers in the call of their respective
ngx_disable_accept_events(...) in turn leading, because of nasty time
synching, to no worker being able to enabling them anymore and amounting to
all workers (so the whole server) unable to handle any further connection.

The line above, between 259 and 260, tried to fix this too, but, there, a
call to ngx_disable_accept_events(...) is missing.
In fact to be completely correct and not resulting in partially incorrect
behaviour as you correctly pointed out, such a call must be added too.
This can be done moving that 'if' completely patched code  

if (ngx_accept_mutex_held) {
ngx_disable_accept_events(cycle);
ngx_accept_mutex_held=0;
ngx_shmtx_unlock(ngx_accept_mutex);
}

to ngx_event_accept.c (being ngx_disable_accept_events(...) internal
linkage) in a dedicated function, for example 

void ngx_release_accept_mutex(ngx_cycle_t *cycle){ /* the if above */ }

which then gets called at 259 in ngx_event.c instead of the 'if' itself.
BTW to make the patch complete the 'if', in ngx_trylock_accept_mutex, where
ngx_disable_accept_events() is called should be removed since substituted by
that ngx_release_accept_mutex() call.

All of this is to avoid a partial incorrect behaviour that the 'if', as it
is now, 

 259 if (ngx_accept_mutex_held) {
 260 ngx_shmtx_unlock(ngx_accept_mutex);
 261 }

causes at the end of an iteration when the accept mutex was held:
the mutex is released in the 'if' above but the
ngx_disable_accept_events(...) won't be called until the next iteration with
ngx_trylock_accept_mutex(...).
Thus in the meanwhile another worker could succeed to acquire the accept
mutex, via ngx_trylock_accept_mutex(...), and start to accept connections as
well ( ngx_enable_accept_events() is called in ngx_trylock_accept_mutex when
mutex is acquired successfully).
This means that 2 workers at the same time can accept connections and this
goes against the reason of an accept mutex itself reasonably not being not
that the intended behaviour.


B) About the second proposed patch:
the 3 lines 

if(*ngx_accept_mutex.lock==ngx_processes[n].pid) {
*ngx_accept_mutex.lock=0;
}

make a patch to prevent server's accept_mutex deadlock when its owning
worker process dies unexpectedly (program crash while processing a
request/answer or task manager's  abrupt termination).
This is a scenario that occurred several times while testing and, when
showing up, lead to server's workers unable to accept any further
connection.

Given that, unlike in the unix version with its ngx_unlock_mutexes(), this
scenario is not addressed in the windows version and, as said, the above
lines are meant to fix it.
They are correct and thread-safe (the operation is atomic) *in the mentioned
specific scenario in which they are meant to be executed* because:


1) they are 

Hg checkout missing config and friends

2013-12-11 Thread Jeffrey Walton
I performed a checkout to the latest stable:

  $ hg clone http://hg.nginx.org/nginx -u release-1.4.4

I tried to run config, and it appears to be missing:

  $ ./config
  -bash: ./config: No such file or directory
  $ nginx-release-1.4.4$ ls
  autoconfcontribdocsmiscsrc

The file is present in the tarball on the website.

How does one get all the files for release-1.4.4?

(Forgive me if I only need to copy the one file. Its not readily
apparent to me what I should do at this point).

Thanks in advance.

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


Re: OpenSSL Locks

2013-12-11 Thread Jeffrey Walton
On Wed, Dec 11, 2013 at 10:25 AM, Maxim Dounin mdou...@mdounin.ru wrote:
 Hello!

 On Wed, Dec 11, 2013 at 05:55:16AM -0500, Jeffrey Walton wrote:

 I need to do some additional processing with OpenSSL in a custom
 module. I noticed ngingx does not set any locks in ngx_ssl_init (from
 ngx_event_openssl.c).

 A few questions:

 1) Should lock installation be guarded on NGX_THREADS or something else?

 2) Where is most appropirate to initialize the locks: ngx_init_threads
 or ngx_ssl_init (or somewhere else)?

 3) Is the project interested in a patch? (Per
 http://nginx.org/en/docs/contributing_changes.html, thanks Maxim).

 There are basically no threads support in nginx (it was
 experimental and broken for a long time with the exception of some
 win32-related stuff), so it's not clear why you need locks at all.
Thanks Maxim. The source code is full of:

#if (NGX_THREADS)
  ...
#endif

I thought they were needed. My bad.

Jeff

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


Re: Hg checkout missing config and friends

2013-12-11 Thread Piotr Sikora
Hey,

   $ ./config
   -bash: ./config: No such file or directory

./auto/configure

Best regards,
Piotr Sikora

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


Re: [Patch] possible mutex starvation issue affects all nginx Linux versions.

2013-12-11 Thread Maxim Dounin
Hello!

On Wed, Dec 11, 2013 at 07:57:32AM -0500, itpp2012 wrote:

[...]

 A) about the added line ngx_accept_mutex_held=0 in ngx_event.c

[...]

 The line above, between 259 and 260, tried to fix this too, but, there, a
 call to ngx_disable_accept_events(...) is missing.
 In fact to be completely correct and not resulting in partially incorrect
 behaviour as you correctly pointed out, such a call must be added too.

This is wrong as well.  There is no reason to disable accept 
events till we are sure that we wasn't able to re-aquire accept 
mutex before going into the kernel to wait for events.  It's just 
waste of resources.

You are misunderstanding the code, probably becase the 
ngx_accept_mutex_held variable has somewhat misleading name.  It 
is not expected to mean we have the accept mutex locked, it means 
we had the accept mutex locked on previous iteration, we have to 
disable accept events if we won't be able to re-aquire it.

There is no need to fix it, it's not broken.

[...]

 B) About the second proposed patch:

[...]

 Hopefully at this point it should be clear enough that releasing the
 accept_mutex directly with
 
 *ngx_accept_mutex.lock=0;
 
 is as much safe as calling ngx_shmtx_force_unlock(), the choice of which one
 I just deem cosmetic (they're functionally equivalent): my choice then went
 for the more performant, straight variable assignment.

Even considering the code currently there for win32 version, there 
is no guarantee that reading *ngx_accept_mutex.lock is atomic.  
While usually it is, in theory it can be non-atomic, and the code 
will start doing wrong things due to the if() check unexpectedly 
succeeding.

 NOt wanting to make this post longer than it is I conclude just mentioning
 that, as of now, the accept mutex is the only mutex living in shared memory
 so unlocking other possibly shared mutexes is as well unrequired.

That's not true.  Something like

$ grep -r shmtx_lock src/

will give you an idea where shared memory mutexes are used in 
nginx.

While it's tricky to get all of this working on modern Windows 
versions with ASLR, the accept mutex is certainly not the only 
shared memory mutex used in nginx.

As I already wrote, I don't object adding an unlock here, but I 
would like to see the code which is correct and in-line with the 
unix version of the code.

-- 
Maxim Dounin
http://nginx.org/

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


Re: Imap proxy

2013-12-11 Thread volga629
Hello Maxim,
Usually is normal setup of EOip tunnels though  transport ipsec (transparent
lan). And from security prospective the most bigger threat is coming from
inside. Outside intrusion possible, but it match more complicated.
I confirm that plain 143 proxy working good. I just wonder about this
message. 

2013/12/05 00:05:40 [error] 20003#0: *1 auth http server 127.0.0.1:80 did
not send server or port while in http auth state, client: 10.12.130.102,
server: 0.0.0.0:993, login: testuser1

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?2,245255,245442#msg-245442

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


Re: alias

2013-12-11 Thread Matthew Ngaha
 On Tue, Dec 10, 2013 at 10:17:25PM +, Matthew Ngaha wrote:

 The problem i've been having after looking in the error logs,is that
 it's still trying to find /admin/ in the default html root.

 That suggests that the configuration you are editing, and the
 configuration that nginx is using, are not the same.

 You can test by adding the following line:

 location = /test/ {return 200 This is a test\n;}

 just after the server_name line and reloading nginx.

 If curl -i http://localhost/test/; does not show you This is a test,
 then that's your problem.

I think that's the problem also. After doing that, curl returns 404
Not Found aswell. I then changed root from html to something else just
to test it was using a different configuration file. I changed it on
both:

/usr/local/nginx-1.4.3/conf/nginx.conf
/usr/local/nginx/conf-1.4.3/nginx.conf.default

but localhost still returns the main nginx welcome index page and not
the index.html in my test root dir that was in /var/www/testing

I ran the linux command locate and here's its output..

:~$ locate nginx.conf
/home/matthew/src/nginx-1.4.3/conf/nginx.conf
/usr/local/nginx-1.4.3/conf/.nginx.conf.swp
/usr/local/nginx-1.4.3/conf/nginx.conf
/usr/local/nginx-1.4.3/conf/nginx.conf.default
/usr/local/nginx-1.4.3/conf/nginx.conf~

I wasn't aware of the 1st result returned so i also edited this conf
file. But still no luck. I have no idea where to look for the file or
how to pick a default one for nginx to always use:(

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


Re: alias

2013-12-11 Thread Francis Daly
On Wed, Dec 11, 2013 at 08:20:51PM +, Matthew Ngaha wrote:
  On Tue, Dec 10, 2013 at 10:17:25PM +, Matthew Ngaha wrote:

  That suggests that the configuration you are editing, and the
  configuration that nginx is using, are not the same.

 /home/matthew/src/nginx-1.4.3/conf/nginx.conf
 /usr/local/nginx-1.4.3/conf/.nginx.conf.swp
 /usr/local/nginx-1.4.3/conf/nginx.conf
 /usr/local/nginx-1.4.3/conf/nginx.conf.default
 /usr/local/nginx-1.4.3/conf/nginx.conf~
 
 I wasn't aware of the 1st result returned so i also edited this conf
 file. But still no luck. I have no idea where to look for the file or
 how to pick a default one for nginx to always use:(

That's something you'll have to find.

ps with arguments may let you see which nginx binary is running,
and it might show you which config file it is reading (if it not the
compiled-in default).

Until you can reliably stop and start nginx, configuration changes
are pointless.

(Just changing the config file will do nothing, until you tell nginx to
read the changed config file.)

Good luck with it,

f
-- 
Francis Dalyfran...@daoine.org

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


Re: Nginx Deployments in Practice

2013-12-11 Thread 54chen
Omnibus seems use AgentZh's ngx tar.gz. See
https://github.com/bakins/omnibus-nginx/blob/master/config/software/nginx.rb


2013/12/11 Jeffrey Walton noloa...@gmail.com

 2013/12/11 Brian Akins br...@akins.org:
  I build packages using omnibus - https://github.com/bakins/omnibus-nginx
 
 Thanks Brian. It appears omnibus-nginx does not contain the nginx
 sources. Is it safe to assume you provide them?

 What version of nginx do you currently use? Do you have any custom
 code that might create conflicts when stable changes from 1.4.4 to X
 (would X be 1.4.6 or 1.6)?

 Jeff

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




-- 
-
http://www.54chen.com 坚持科学 分享技术
http://twitter.com/54chen
___
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Re: Nginx Deployments in Practice

2013-12-11 Thread Yichun Zhang (agentzh)
Hello!

On Wed, Dec 11, 2013 at 5:55 PM, 54chen wrote:
 Omnibus seems use AgentZh's ngx tar.gz.

Just a side note: please never never put capital letters into my nick
because I hate that. If you really want to capitalize names, please
use my first name, Yichun, instead. Thank you for the cooperation.

Best regards,
-agentzh

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