Re: Map работа в нескольких vhosts

2014-07-22 Пенетрантность No1
Добавлено в http секций: 
map_hash_max_size 4096;
map_hash_bucket_size 8192;

map $uri $new {
include redirect.conf;
}

В секций vhost'a 1 :
if ($new) {
   return 301 $new;
}
На vhost 2 так же + добавленно удаление слеша rewrite ^(.+)/$ $1 permanent;
На 1 работает все как надо,те ссылки /news/ /news ведут к /new_news
На 2 не работает,если добавить к uri / ,поэтому пришлось удалять /.

Вид redirect.conf :
/news /new_news;
/news_1 /new_news_1;

Правильное поведение или должно все таки на всех vhost's работать одинаково?

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

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

proxy read timeout и upstream

2014-07-22 Пенетрантность kay
Как настроить nginx считать proxy_read_timeout на все upstream'ы сразу.

Т.е. если все upstream'ы отвечают дольше 5-х секунд, а proxy_read_timeout
установлен в 4 секунды, то nginx не должен ходить на каждый upstream и
опрашивать их.

Таким образом, если у нас имеется 3 upstream'а, которые на запрос отвечают
по 5 секунд, то nginx один запрос будет обрабатывать 15 секунд и в
результате вернет ошибку. Мне хотелось бы, чтобы nginx вернул ошибку сразу
по истечении 4-х секунд.

Вариант уменьшить proxy_read_timeout  до значения
необходимый_таймаут/количество_серверов не рассматривается, т.к.
перезапросы будут проходить слишком часто.

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

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

Re: proxy read timeout и upstream

2014-07-22 Пенетрантность Maxim Dounin
Hello!

On Tue, Jul 22, 2014 at 07:41:22AM -0400, kay wrote:

 И чем мне это поможет? Если я уберу из proxy_next_upstream timeout, то nginx
 даже и не попытается отправить запрос на следующий upstream.

Это решает исходную задачу настроить nginx считать 
proxy_read_timeout на все upstream'ы сразу.  Повторные попытки 
при необходимости можно сконфигурировать через error_page 504, см. 
http://nginx.org/r/error_page/ru.

Ходить на несколько upstream-серверов по proxy_next_upstream и 
при этом отслеживать некий суммарный таймаут nginx сейчас не 
умеет.  Так что следует выбрать что-то одно.

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

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

Re: Чистка кэша nginx.

2014-07-22 Пенетрантность Budulianin
Правильно чистить с помощью PURGE-запросов:
http://nginx.org/r/proxy_cache_purge/ru

В доке написано, что он платный, это проблема.

Если вы хотите управлять кэшем из приложения и вам хватало proxy_store,
то надо было его и использовать. Непонятно почему отказались

Ещё ничего не использовалось, я просто исследовал, что есть в nginx для
кэширования. 
И попробовал uwsgi_store сначала.

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

Потому что хорошо не будет, ибо кеш есть не
только на фронтенде, а также и на прокси-серверах и
непосредственно у пользователей.
От nginx будет уходить только Cache-Control и в нём будет небольшое время
ревалидации, на nginx больше. Поэтому если я захочу актуализировать кэш у
всех пользователей, то мне нужно будет почистить кэш nginx и всё. Логика
такая.

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

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

.htaccess to nginx

2014-07-22 Пенетрантность Kradllit
Здравствуйте. Необходимо перенести сайт с Apache на NGINX, но после переноса
на NGINX не открываются страницы. 
В файле .htaccess находится правило:

RewriteEngine on
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

С помощью онлайн конвертора
http://www.anilcetin.com/convert-apache-htaccess-to-nginx/ 
Получил такой выход:

if ($1 !~ ^(index.php|resources|robots.txt)){
set $rule_0 1$rule_0;
}
if (!-f $request_filename){
set $rule_0 2$rule_0;
}
if (!-d $request_filename){
set $rule_0 3$rule_0;
}
if ($rule_0 = 321){
rewrite ^/(.*)$ /index.php/$1 last;
}


Но при обновлении конфигурации получаю ошибку:
nginx: [emerg] unknown 1 variable

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

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