Quantcast
Channel: Nginx Forum - Nginx Mailing List - Russian
Viewing all 3102 articles
Browse latest View live

CVE-2014-3567 (1 reply)

$
0
0
Вышел очередной Security Advisory на OpenSSL:
https://www.openssl.org/news/secadv_20141015.txt

я правильно понимаю что с CVE-2014-3567 в nginx будет утечка памяти?

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

server для zope managment interface (4 replies)

$
0
0
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

nginx environment directives (no replies)

$
0
0
Добрый день,

Как в nginx можно сделать подобное -DOPENSSL_NO_HEARTBEATS флагу в apache2?
Попробовал вот так через env, не выходит.

nginx.conf:

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

env OPENSSL_NO_HEARTBEATS=1;



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

Как кешировать phpsessid (no replies)

$
0
0
Привет!

Плиз, подскажите как можно кешировать phpsessid? Сайт ставит много разных кукисов, по которым я могу кешировать или нет, и также он всем ставит phpsessid, даже незалогиненым.
Как не кешировать я знаю, как в кеше привязать ключ тоже :)

Спасибо!

Возможно ли скрыть Set-Cookies из HTTP-заголовков не ломая авторизацию? (2 replies)

$
0
0
Здравствуйте, господа. Настроена связка nginx + php-fpm. Возможно ли скрыть строки Set-Cookies из HTTP-заголовков от посторонних глаз так, чтобы не сломалась возможность авторизации на сайте? Пробовал добавлять в конфиг nginx строчку:

fastcgi_hide_header "Set-Cookie";

Строки Set-Cookies в HTTP-заголовках исчезают, однако при этом становится невозможной процедура авторизации на сайте. Возможно, я несколько параноидален, но как-то не хочется всем и вся "светить" данной информацией.

С уважением, Геннадий.

Ошибки php-fpm (connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream) (3 replies)

$
0
0
Доброго времени суток всем.
Появилась проблема с php-fpm на высоконагруженном сайте.
Через php-fpm настроен один единственный файл, остальной сайт через fcgid.
На данный файл идет по несколько запросов в секунду.
php-fpm конектится через сокет.
LA после 18 часов вечера (постепенный рост трафика в 2-3 раза) доходит до 40-50, днем 2-5 (хотя иногда и днем бывает уже 15-30)
Лог заваливается такими ошибками


2014/10/19 20:36:59 [error] 28352#0: *299209678 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28352#0: *299209681 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28356#0: *299194333 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28352#0: *299209689 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28359#0: *298980660 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28352#0: *299209700 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28352#0: *299209699 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28354#0: *299145235 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28354#0: *299162293 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28352#0: *299209664 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28353#0: *299209730 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28353#0: *299209733 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28359#0: *299195701 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28359#0: *299195704 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28353#0: *299209749 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
2014/10/19 20:36:59 [error] 28352#0: *299209590 connect() to unix:/tmp/php-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream

Раньше все было норм, появилось хз после чего, возможно после правки некоторых конфигов.
Подскажите в чем проблема? Конфиги какие нужно скину, сервер мониторю Munin`ом, графики тоже могу скинуть

Статика с поддомена (6 replies)

$
0
0
Здравствуйте , пробую сделать раздачу статики с поддомена , не получаеться в чем может быть ошибка ? Спасибо
в sites-available создал
static.mysite
server {

server_name static.mysite.ru;

location / {
root /home/www/public/images;

}
}

mysite

server {
set $mysite_root /home/www/mysite/public;
listen mysite.ru;
server_name mysite.ru;
root $mysite_root;
}

nginx-1.7.7 (2 replies)

$
0
0
Изменения в nginx 1.7.7 28.10.2014

*) Изменение: теперь nginx учитывает при кэшировании строку "Vary" в
заголовке ответа бэкенда.

*) Добавление: директивы proxy_force_ranges, fastcgi_force_ranges,
scgi_force_ranges и uwsgi_force_ranges.

*) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate,
scgi_limit_rate и uwsgi_limit_rate.

*) Добавление: параметр Vary директив proxy_ignore_headers,
fastcgi_ignore_headers, scgi_ignore_headers и uwsgi_ignore_headers.

*) Исправление: последняя часть ответа, полученного от бэкенда при
небуферизированном проксировании, могла не отправляться клиенту, если
использовались директивы gzip или gunzip.

*) Исправление: в директиве proxy_cache_revalidate.
Спасибо Piotr Sikora.

*) Исправление: в обработке ошибок.
Спасибо Yichun Zhang и Даниилу Бондареву.

*) Исправление: в директивах proxy_next_upstream_tries и
proxy_next_upstream_timeout.
Спасибо Feng Gu.

*) Исправление: nginx/Windows не собирался с MinGW-w64 gcc.
Спасибо Kouhei Sutou.


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

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

Корректная работа с tomcat deploy (7 replies)

$
0
0
Привет всем,

Каким образом можно корректно работать с tomcat-upstream, который
используется для java-приложения, deploy которого занимает несколько минут?

Среда:
На входе стоит nginx proxy, в котором настроено n апстримов в режиме
round-robin с max_fail=1. За ним - n серверов приложений, на которых
работает Apache Tomcat, в котором работает java-приложение.

Если падает один из серверов приложений - все прекрасно, nginx стучится к
нему, получает 500/502 и выкидывает апстрим из списка доступных на заданное
время и рероутит запрос на другой апстрим. Пользователь проблемы не видит.
Но это если упало совсем. Если не упало, а зависло или ушло в re-deploy
(либо мы сами стартовали re-deploy) - возникает проблема.

Проблема:
Деплой java-приложения в случае краша или обновления занимает несколько
минут (в особо злом случае - до десяти). Томкат, сволочь, в это время
принимает входящие соединения на свой порт, но не обслуживает их, а вешает
на холд до момента завершения деплоя приложения. Nginx принимает коннект от
пользователя, маршрутизирует запрос к апстриму, и... ждет 3-5 минут пока
бэкэнд не поднимется.
В итоге пользователь видит белый экран или частично загрузившуюся страницу
(как повезет раунд-робином), хотя в живых есть куча других апстримов,
которые могли бы обслужить его запрос.

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

Меня может что-то спасти?


--
With best regards,
differentlocal (www.differentlocal.ru | differentlocal@gmail.com),
System administrator.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Запросы с поддомена на другой сервер. (1 reply)

$
0
0
Суть вопроса такова. У меня есть домен напр. myproject.ru. "Боевая" часть сайта (myproject.ru) лежит у одного хостера. Бета будет лежать у другого и само собой хочется что бы запросы на beta.myproject.ru шли на другой сервер где они уже могла бы обрабатываться. Вопрос в том как это реализовать в настройках nginx ? Более того на сервере который обрабатывает бету так же крутится еще один сайт.

аналог htaccess правила (no replies)

$
0
0
Подскажите, как можно с эмитировать вот такое htaccess правило:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-z0-9-_]+\/)(.*)$ /$1index.php?req=$2&module=$1 [QSA,L]

тобишь если есть шлем все запросы в папку, остальное передаем в переменной $req
Например запрос: /catalog/section_1/section_2/section_3/?aa=11&bb=22

В папке /catalog/ получаем:

Array
(
[req] => section_1/section_2/section_3/
[module] => catalog
[aa] => 11
[bb] => 22
)

Fwd: ngx_http_image_filter_module - resize увеличение изображений (2 replies)

$
0
0
---------- Forwarded message ----------
From: An <an07d5@gmail.com>
Date: 2014-10-29 12:49 GMT+04:00
Subject: ngx_http_image_filter_module - resize увеличение изображений
To: nginx-ru@nginx.org


Очень удобно, если фильтр может увеличивать изображения. Предлагаю внести
следующие изменения.

an@an-pc:~/Desktop$ cat ngx_http_image_filter_module.diff

# HG changeset patch
# User Anton Shefer <an07d5@gmail.com>
# Date 1414566573 -14400
# Wed Oct 29 11:09:33 2014 +0400
# Node ID a499f7c603f2322950698da88213aa53fb81ad46
# Parent 87ada3ba1392fadaf4d9193b5d345c248be32f77
Image filter resize - Increase images

diff -r 87ada3ba1392 -r a499f7c603f2
src/http/modules/ngx_http_image_filter_module.c
--- a/src/http/modules/ngx_http_image_filter_module.c Mon Oct 27
14:25:56 2014 -0700
+++ b/src/http/modules/ngx_http_image_filter_module.c Wed Oct 29
11:09:33 2014 +0400
@@ -546,7 +546,8 @@
&& ctx->width <= ctx->max_width
&& ctx->height <= ctx->max_height
&& ctx->angle == 0
- && !ctx->force)
+ && !ctx->force
+ && conf->filter != NGX_HTTP_IMAGE_RESIZE)
{
return ngx_http_image_asis(r, ctx);
}
@@ -773,7 +774,8 @@
if (!ctx->force
&& ctx->angle == 0
&& (ngx_uint_t) sx <= ctx->max_width
- && (ngx_uint_t) sy <= ctx->max_height)
+ && (ngx_uint_t) sy <= ctx->max_height
+ && conf->filter != NGX_HTTP_IMAGE_RESIZE)
{
gdImageDestroy(src);
return ngx_http_image_asis(r, ctx);
@@ -809,15 +811,19 @@

if (conf->filter == NGX_HTTP_IMAGE_RESIZE) {

- if ((ngx_uint_t) dx > ctx->max_width) {
+
+ if ((int)ctx->max_width > 0 && (int)ctx->max_height > 0) {
dy = dy * ctx->max_width / dx;
- dy = dy ? dy : 1;
dx = ctx->max_width;
- }
-
- if ((ngx_uint_t) dy > ctx->max_height) {
+ if (dy > (int)ctx->max_height) {
+ dx = dx * ctx->max_height / dy;
+ dy = ctx->max_height;
+ }
+ } else if ((int)ctx->max_width > 0) {
+ dy = dy * ctx->max_width / dx;
+ dx = ctx->max_width;
+ } else if ((int)ctx->max_height > 0) {
dx = dx * ctx->max_height / dy;
- dx = dx ? dx : 1;
dy = ctx->max_height;
}
# HG changeset patch
# User Anton Shefer <an07d5@gmail.com>
# Date 1414566573 -14400
# Wed Oct 29 11:09:33 2014 +0400
# Node ID a499f7c603f2322950698da88213aa53fb81ad46
# Parent 87ada3ba1392fadaf4d9193b5d345c248be32f77
Image filter resize - Increase images

diff -r 87ada3ba1392 -r a499f7c603f2 src/http/modules/ngx_http_image_filter_module.c
--- a/src/http/modules/ngx_http_image_filter_module.c Mon Oct 27 14:25:56 2014 -0700
+++ b/src/http/modules/ngx_http_image_filter_module.c Wed Oct 29 11:09:33 2014 +0400
@@ -546,7 +546,8 @@
&& ctx->width <= ctx->max_width
&& ctx->height <= ctx->max_height
&& ctx->angle == 0
- && !ctx->force)
+ && !ctx->force
+ && conf->filter != NGX_HTTP_IMAGE_RESIZE)
{
return ngx_http_image_asis(r, ctx);
}
@@ -773,7 +774,8 @@
if (!ctx->force
&& ctx->angle == 0
&& (ngx_uint_t) sx <= ctx->max_width
- && (ngx_uint_t) sy <= ctx->max_height)
+ && (ngx_uint_t) sy <= ctx->max_height
+ && conf->filter != NGX_HTTP_IMAGE_RESIZE)
{
gdImageDestroy(src);
return ngx_http_image_asis(r, ctx);
@@ -809,15 +811,19 @@

if (conf->filter == NGX_HTTP_IMAGE_RESIZE) {

- if ((ngx_uint_t) dx > ctx->max_width) {
+
+ if ((int)ctx->max_width > 0 && (int)ctx->max_height > 0) {
dy = dy * ctx->max_width / dx;
- dy = dy ? dy : 1;
dx = ctx->max_width;
- }
-
- if ((ngx_uint_t) dy > ctx->max_height) {
+ if (dy > (int)ctx->max_height) {
+ dx = dx * ctx->max_height / dy;
+ dy = ctx->max_height;
+ }
+ } else if ((int)ctx->max_width > 0) {
+ dy = dy * ctx->max_width / dx;
+ dx = ctx->max_width;
+ } else if ((int)ctx->max_height > 0) {
dx = dx * ctx->max_height / dy;
- dx = dx ? dx : 1;
dy = ctx->max_height;
}

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

nginx как https редиректор (3 replies)

$
0
0
Возможно настроить nginx как редиректор 443 порта (без разбора) в зависимости от URL на определенный сервер (группу серверов)? По сути использование nginx для балансировки нагрузки между несколькими указанными серверами.

Появление странной записи в логах (4 replies)

$
0
0
При обращении к http://host.domain.tld в логах появляется запись

1.1.1.1 - - [31/Oct/2014:13:03:17 +0300] "GET / HTTP/1.1" 200 31 "-" 0.003 0.003 -"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36" "-" "host.domain.tld" "http"

а через несколько секунд вторая:

1.1.1.1 - - [31/Oct/2014:13:02:04 +0300] "-" 400 0 "-" - 0.000 -"-" "-" "host.domain.tld" "http"
Второго запроса не делаю, но запись появляеися.
Почему появляется вторая запись да еще с таким странным значением $request?

Log format:

log_format host_log_format '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'$upstream_response_time $request_time '
'$request_body'
'"$http_user_agent" "$http_x_forwarded_for" "$host" "$scheme"';
Vhost:
server {
listen 80 default_server;
server_name host.domain.tld;
access_log /var/log/host.domain.tld.nginx.access.log host_log_format;
gzip off;

location /storage/ {
root /www/static-host/;
expires 24h;
}

location / {
proxy_pass http://host;
proxy_read_timeout 60s;
proxy_next_upstream error timeout http_500 http_404;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

server {
listen *:443 default_server;
server_name host.domain.tld;
access_log /var/log/host.domain.tld.nginx.access.log host_log_format;

location /storage/ {
root /www/static-host/;
expires 24h;
}


ssl on;
ssl_certificate /etc/nginx/cert/crt.crt;
ssl_certificate_key /etc/nginx/cert/crt.key;

location / {
proxy_pass http://host;
proxy_read_timeout 60s;
proxy_next_upstream error timeout http_500 http_404;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}

Как не кешировать определенные элементы на CMS DLE ? (no replies)

$
0
0
Проблема заключается в том что кешируется страница регистрации, обратной связи для гостей.
А также не возможно авторизация через соц.сети в версии DLE 10.3
Я так понимаю можно как-то реализовать через ssi
Но не выходит, пробовал прописать включить ssi on; в локейшине
Прописывал блок капчу в блок
<!--# block name="antibot" -->
код что ниже
<!--# endblock -->
Но кеширует хоть убей

Капчу вызывает шаблон регистрации
[sec_code]
<div class="line">
<div class="seccode">{reg_code}</div>
<div class="seccode">
<span class="title-input">Введите код:<span class="impot">*</span></span>
<input type="text" name="sec_code" class="f_input" />
</div>
</div>
[/sec_code]

server {
listen *:80;
server_name lnb.satsis.info;
proxy_temp_path /etc/nginx/temp;
limit_conn perip 19;
limit_conn perserver 100;

location @nocached {
proxy_pass http://127.0.0.1:8080;
proxy_redirect http://lnb.satsis.info:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
ssi on;
proxy_pass http://127.0.0.1:8080;
proxy_redirect http://lnb.satsis.info:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
if ($cookie_dle_user_id) { return 412; }
if ($cookie_dle_password) { return 412; }
if ($request_method = POST ) {
return 412;
}
error_page 412 = @nocached;
proxy_cache one;
proxy_cache_key "$request_method|$is_args|$host|$request_uri";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Cache-Control" "Expires" "Set-Cookie";
proxy_cache_valid 200 302 304 15m;
proxy_cache_valid 301 1h;
proxy_cache_valid 503 4s;
proxy_cache_valid any 1m;
proxy_cache_use_stale http_502 http_503 http_504;
}
location ~ (admin.php|index.php?action=logout|index.php?do=register) {
proxy_pass http://127.0.0.1:8080;
proxy_redirect http://lnb.satsis.info:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|r$
root /home/www/lnb/;
expires 1y;
#access_log /etc/nginx/logs/satsis.info.access.log;
error_page 404 = @fallback;
}
location @fallback {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}

ip_hash (no replies)

$
0
0
Добрый день!

Пытаюсь сделать балансировщик нагрузки.
Не работает опция ip_hash почему-то, которая предполагает попадание пользователя на какой-то один определенный сервер из списка.
Каждый раз попадаю на новый сервер по стандартному round-robin алгоритму (перебор всех имеющихся серверов по кругу).
У кого-нибудь есть мысли, почему?

Спасибо,
Сергей


upstream qrack {
ip_hash;

server 144...;
server 207...;
server 64...;
}

server {
location / {
proxy_pass http://qrack;
...

sticky route и ASP.NET_SessionId (no replies)

$
0
0
Здравствуйте!

Прошу помощи в настройке конфига.

Есть два IIS, перед ними балансировщиком стоит Nginx-plus, во всех примерах маршрут выбирается по JSESSIONID
при указании ASP.NET_SessionId вместо JSESSIONID перестает "держать" на одном и том-же IIS.

upstream backend {
#ip_hash;
#hash consistent;

server 192.168.11.2 weight=2 max_fails=3 fail_timeout=120;
server 192.168.11.3 weight=2 max_fails=3 fail_timeout=120;

sticky learn create=$upstream_cookie_ASP.NET_SessionId lookup=$cookie_ASP.NET_SessionId zone=client_sessions:1m;
}

Как сделать чтоб использовалась кука "ASP.NET_SessionId" не нашел рабочих примеров нигде :(

Отрерайтить поддомены в страницы (no replies)

$
0
0
Здравствуйте.

Для группы сайтов отрерайтить поддомены в страницы.

Есть группа сайтов вида:
sub1.site1.ru
sub2.site1.ru
subn.site1.ru
sub1.site2.ru
sub2.site2.ru
subn.site2.ru

Физически они лежат на сервере соотвественно в каталогах:
/var/www/sites/sub1.site1.ru
/var/www/sites/sub2.site1.ru
/var/www/sites/subn.site1.ru
/var/www/sites/sub1.site2.ru
/var/www/sites/sub2.site2.ru
/var/www/sites/subn.site2.ru

Так как сайтов такого рода много для них применяется общий конфиг вида:
server {
listen 80;
server_name *.site1.ru, *.site2.ru;

....

if ( $host ~ ^(www\.)?(.+)$ ) {
set $domain $2;
}

location / {
root /var/www/sites/$domain;
index index.html;
}

...

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

Задача такая:
заставить http-запрос вида http://stranica-1.sub1.site1.ru показывать файл sub1.site1.ru/stranica-1.html, лежащий в соотвествующем каталоге + html-расширение - то есть например:
http://page-345.sub2.site1.ru показывает файл /var/www/sites/sub2.site1.ru/page-345.html
http://page-123.subn.site1.ru показывает файл /var/www/sites/subn.site1.ru/page-123.html
http://page-456.sub2.site2.ru показывает файл /var/www/sites/sub2.site2.ru/page-456.html

Помогите написать правильный реврайт - никак не могу сообразить как это сделать все в одном конфиге для всех сайтов.

Bad Request (4 replies)

$
0
0
CentOS 6.5
nginx 1.6.0
apache 2.2.15

Периодически клиенты получают
400 Bad Request
Request Header Or Cookie Too Large.
Я не смог найти в логах подобную ошибку.
Мы воспроизвели эту ошибку путём генерации большой куки. Итого: 400 Bad
Request.
Однако, в логах по IP клиента я вижу "upstream sent too big header while
reading response header from upstream".
Это так и задумано?
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: sticky route и ASP.NET SessionId (no replies)

$
0
0
On 02.11.2014 00:45, iskander wrote:
> Есть два IIS, перед ними балансировщиком стоит Nginx-plus, во всех примерах
> маршрут выбирается по JSESSIONID
> при указании ASP.NET_SessionId вместо JSESSIONID перестает "держать" на
> одном и том-же IIS.
>
> upstream backend {
> ... <skip> ...
> sticky learn create=$upstream_cookie_ASP.NET_SessionId
> lookup=$cookie_ASP.NET_SessionId zone=client_sessions:1m;
> }
>
> Как сделать чтоб использовалась кука "ASP.NET_SessionId" не нашел рабочих
> примеров нигде :(
"Эта директива доступна как часть коммерческой подписки" (c)

Если имя куки не обязано быть именно ASP.NET_SessionId, вполне себе
работает как-то так:

# случайный выбор бакенда
upstream rndbackend {
server 192.168.169.170;
server 192.168.169.171;
}

# выбор бакенда на основании куки backend
map $cookie_backend $sticky_backend {
default BAD_GATEWAY;
~(?<IP>[0-9.]+$) $IP;
}

server {
listen 80;

# если приехала кука, выбираем бакенд согласно её значению
location / {
proxy_pass http://$sticky_backend;
error_page 502 = @random_backend;
}

# если куки нет, выбираем бакенд случайно и выставляем куку
location @random_backend (
proxy_pass http://rndbackend;
add_header Set-Cookie "backend=$upstream_addr; path=/";
}


Писал по памяти, могут быть ошибки, но принцип понятен.

Не так удобно, конечно, как "sticky learn ...", но когда нет возможности
купить коммерческую подписку, вполне сойдёт такой костылик.

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Viewing all 3102 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>