Использование env VARIABLE без дополнительных модулей?

2015-07-11 Пенетрантность lintiay
Добрый день!

Как извесно в конфиг можно прописать нечто эдакое:

env VARIABLE = VALUE;

причем NGINX, это успешно скушает, даже в отсутствие модулей LUA и PERL,
которых нету в стандартной сборке под Винды. Так вот не понятно как
достучаться до этой переменной в конфиге, т.е. ее использовать. Типа (без
LUA и PERL!):

set NEW_VARIABLE env{VARIABLE} ;

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

Возможно ли как нибудь эту переменную (TZ) прочитать/получить/присвоить
другой переменной?

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

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

Re: referer https-http

2015-07-11 Пенетрантность Nick
На этих uri нельзя использовать небезопасное соединение. :(

On 07/10/2015 02:11 PM, VovansystemS wrote:
 добрый день,

 Сайт имеет две версии  http и https.
 https  используется только для определенных uri, с которых запросы
 редиректятся на http.
 Соответственно на http не поступает оригинальный реферер (тот который
 приходит на https).
 Нужно его как-то получать в http запросах уже после редиректа.
 попробуйте использовать тег meta name=referrer
 content=unsafe-url, подробнее читайте тут:
 http://www.w3.org/TR/referrer-policy/
 ___
 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: referer https-http

2015-07-11 Пенетрантность VovansystemS
 На этих uri нельзя использовать небезопасное соединение. :(
я не предлагаю Вам использовать небезопасное соединение на этих uri, я
предлагаю Вам изменить политику передачи реферера браузером при
переходе с ресурса, доступного по протоколу https на протокол http,
путём добавления специального тега в начало страницы.

но теперь я прочитал ещё раз внимательно и понял, Вам нужно сохранить
и заново передать *оригинальный* реферер :) поэтому написанное выше
Вам не поможет

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

но наверное самый простой способ использовать proxy_pass
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Использование env VARIABLE без дополнительных модулей?

2015-07-11 Пенетрантность Vadim A. Misbakh-Soloviov
Вот, честно, советую вам вместо велосипедостроения на основе костылей и 
отстреливания ног всё-таки либо пересобрать NgX с нужными модулями (или 
посмотрите в сторону OpenResty, например), или не использовать Windows для 
того, для чего она не предназначена и развернуть NgX на нормальной 
операционной системе. Потому что ваш ход мыслей (учитывая предыдущий тред и 
ход мыслей в этом) ни к чему хорошему не приведут и то, что вы хотите — 
отстрелит вам ногу рано или поздно.

-- 
Best regards,
mva


signature.asc
Description: This is a digitally signed message part.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Высокий IO на серверах с nginx

2015-07-11 Пенетрантность Alexey Malov
Добрый день,
Второй день наблюдаю проблему с высоким IO на серверах с nginx при не очень
большой нагрузке.
Схема такая - 11 серверов с nginx и tomcat. Nginx на каждому сервере
принимает трафик от CloudFlare CDN, большую часть отдаёт из кеша, остальное
балансирует на томкаты (и ещё один статический файлик отдаёт сам).
Всё было замечательно до вчера, трафик в пике был до 40 мегабайтов в
секунду, 40к параллельных соединений и ~1500 запросов в секунду на каждом
из серверов.
Вчера же трафик подскочил раза в полтора (сбрасывали кеш на CloudFlare и
сами запросы тоже поменялись), резко выроз IO на сервере (раньше его вообще
практически не было, а стало около 15-20%) и всё начало тупить.
Изначально думали на диск, но отключение логов практически никак не
повлияло.
В dmesg стали вылезать сообщения про synflood, увеличили бэклоги как в
nginx, так и в sysctl, сообщения про synflood пропали, но проблема с IO
осталась.

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

Трафик с тех пор понизился даже ниже, чем был до проблемы, сейчас около
1100 запросов в секунду. Но IO осталось. Nginx даже иногда по нескольку
секунд отвечает на запросы к странице stub_status.
Пробовали разделять сервера с tomcat и nginx, IO оставалось на стороне
nginx.

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

Конфиги следующие:
nginx.conf:
user  nginx;
worker_processes  8;
worker_rlimit_nofile 512000;
worker_rlimit_core  500M;

error_log  /var/log/nginx/error.log;

pid/var/run/nginx.pid;

events {
worker_connections  256000;
}

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

ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
log_format  main  '$remote_addr - $remote_user [$time_local] $request
'
  '$status $body_bytes_sent $http_referer '
  '$http_user_agent $http_x_forwarded_for';
log_format upstream_balancing   '$remote_addr - $remote_user
[$time_local] '
'$request $status $bytes_sent '
'$http_referer $http_user_agent '
'$upstream_addr $upstream_response_time
$geoip_country_code/$http_cf_ipcountry $http_host
$upstream_cache_status '
'$http_cf_connecting_ip';
log_format ub_cloudflare   '$http_cf_connecting_ip - $remote_user
[$time_local] '
'$request $status $bytes_sent '
'$http_referer $http_user_agent '
'$upstream_addr $upstream_response_time
$geoip_country_code/$http_cf_ipcountry $http_host
$upstream_cache_status '
'$remote_addr $cookie___cfduid $cookie_uid';
access_log  /var/log/nginx/access.log  main;

sendfileon;

keepalive_timeout  65;

proxy_cache_methods GET;

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

}

virtual host:
server {
listen   1.1.1.1:80;
listen   1.1.1.1:443 ssl;
ssl_certificate /etc/nginx/ssl/cert.crt;
ssl_certificate_key /etc/nginx/ssl/key.key;
server_name  example.com;
proxy_set_header clientCountryCode $http_cf_ipcountry ;
proxy_ignore_headers Set-Cookie;
proxy_hide_header Set-Cookie;
proxy_next_upstream error timeout http_500;

location / {
deny all;
}
location /manager {
proxy_pass http://127.0.0.1:5885;
}
location /crossdomain.xml {
root /tomcat/static_xml;
expires 31d;
}
location ~ ^(/display.htm)$ {
proxy_pass http://127.0.0.1:5885/banners/$1$is_args$args;
proxy_cache exe_cache;
proxy_cache_valid 2h;

expires 24h;
}
location ~ ^(/secure.jsp)$ {
proxy_pass http://127.0.0.1:5885/banners/mojo/$1$is_args$args;
proxy_cache exe_cache;
proxy_cache_valid 2h;
expires 12h;

}
location ~ ^(/hela.jsp)$ {
proxy_pass http://127.0.0.1:5885/banners/hela$1$is_args$args;
proxy_cache exe_cache;
proxy_cache_valid 2h;
expires 12h;

}
location ~ ^(/hela.exe)$ {
proxy_pass http://127.0.0.1:5885/banners/hela$1$is_args$args;
proxy_cache exe_cache;
proxy_cache_valid 24h;

}
location /wl/ba.jsp {
proxy_pass http://127.0.0.1:5885/banners/wl/ba.jsp;
#proxy_cache_key proxy_cache_key;
proxy_cache exe_cache;
proxy_cache_valid 200 48h;
expires 1w;
}
location /wl/po.jsp {
proxy_pass http://127.0.0.1:5885/banners/wl/po.jsp;
proxy_cache exe_cache;
proxy_cache_valid 200 48h;
expires 1w;
}
location /tg.jsp {
proxy_pass http://127.0.0.1:5885/banners/ba/tg.jsp;
#proxy_cache_key proxy_cache_key;
proxy_cache_key
$http_host$scheme$proxy_host$uri$is_args$arg_ger$arg_cst$arg__v$arg_t;
  

Re: Высокий IO на серверах с nginx

2015-07-11 Пенетрантность Alexey Malov
11 июля 2015 г., 17:09 пользователь Alexey Malov scukon...@gmail.com
написал:

 Добрый день,
 Второй день наблюдаю проблему с высоким IO на серверах с nginx при не
 очень большой нагрузке.
 Схема такая - 11 серверов с nginx и tomcat. Nginx на каждому сервере
 принимает трафик от CloudFlare CDN, большую часть отдаёт из кеша, остальное
 балансирует на томкаты (и ещё один статический файлик отдаёт сам).
 Всё было замечательно до вчера, трафик в пике был до 40 мегабайтов в
 секунду, 40к параллельных соединений и ~1500 запросов в секунду на каждом
 из серверов.
 Вчера же трафик подскочил раза в полтора (сбрасывали кеш на CloudFlare и
 сами запросы тоже поменялись), резко выроз IO на сервере (раньше его вообще
 практически не было, а стало около 15-20%) и всё начало тупить.
 Изначально думали на диск, но отключение логов практически никак не
 повлияло.
 В dmesg стали вылезать сообщения про synflood, увеличили бэклоги как в
 nginx, так и в sysctl, сообщения про synflood пропали, но проблема с IO
 осталась.

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

 Трафик с тех пор понизился даже ниже, чем был до проблемы, сейчас около
 1100 запросов в секунду. Но IO осталось. Nginx даже иногда по нескольку
 секунд отвечает на запросы к странице stub_status.
 Пробовали разделять сервера с tomcat и nginx, IO оставалось на стороне
 nginx.

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

 Конфиги следующие:
 nginx.conf:
 user  nginx;
 worker_processes  8;
 worker_rlimit_nofile 512000;
 worker_rlimit_core  500M;

 error_log  /var/log/nginx/error.log;

 pid/var/run/nginx.pid;

 events {
 worker_connections  256000;
 }

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

 ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
 log_format  main  '$remote_addr - $remote_user [$time_local]
 $request '
   '$status $body_bytes_sent $http_referer '
   '$http_user_agent $http_x_forwarded_for';
 log_format upstream_balancing   '$remote_addr - $remote_user
 [$time_local] '
 '$request $status $bytes_sent '
 '$http_referer $http_user_agent '
 '$upstream_addr $upstream_response_time
 $geoip_country_code/$http_cf_ipcountry $http_host
 $upstream_cache_status '
 '$http_cf_connecting_ip';
 log_format ub_cloudflare   '$http_cf_connecting_ip - $remote_user
 [$time_local] '
 '$request $status $bytes_sent '
 '$http_referer $http_user_agent '
 '$upstream_addr $upstream_response_time
 $geoip_country_code/$http_cf_ipcountry $http_host
 $upstream_cache_status '
 '$remote_addr $cookie___cfduid $cookie_uid';
 access_log  /var/log/nginx/access.log  main;

 sendfileon;

 keepalive_timeout  65;

 proxy_cache_methods GET;

 include /etc/nginx/conf.d/*.conf;
 include /etc/nginx/sites-enabled/*;

 }

 virtual host:
 server {
 listen   1.1.1.1:80;
 listen   1.1.1.1:443 ssl;
 ssl_certificate /etc/nginx/ssl/cert.crt;
 ssl_certificate_key /etc/nginx/ssl/key.key;
 server_name  example.com;
 proxy_set_header clientCountryCode $http_cf_ipcountry ;
 proxy_ignore_headers Set-Cookie;
 proxy_hide_header Set-Cookie;
 proxy_next_upstream error timeout http_500;

 location / {
 deny all;
 }
 location /manager {
 proxy_pass http://127.0.0.1:5885;
 }
 location /crossdomain.xml {
 root /tomcat/static_xml;
 expires 31d;
 }
 location ~ ^(/display.htm)$ {
 proxy_pass http://127.0.0.1:5885/banners/$1$is_args$args;
 proxy_cache exe_cache;
 proxy_cache_valid 2h;

 expires 24h;
 }
 location ~ ^(/secure.jsp)$ {
 proxy_pass http://127.0.0.1:5885/banners/mojo/$1$is_args$args;
 proxy_cache exe_cache;
 proxy_cache_valid 2h;
 expires 12h;

 }
 location ~ ^(/hela.jsp)$ {
 proxy_pass http://127.0.0.1:5885/banners/hela$1$is_args$args;
 proxy_cache exe_cache;
 proxy_cache_valid 2h;
 expires 12h;

 }
 location ~ ^(/hela.exe)$ {
 proxy_pass http://127.0.0.1:5885/banners/hela$1$is_args$args;
 proxy_cache exe_cache;
 proxy_cache_valid 24h;

 }
 location /wl/ba.jsp {
 proxy_pass http://127.0.0.1:5885/banners/wl/ba.jsp;
 #proxy_cache_key proxy_cache_key;
 proxy_cache exe_cache;
 proxy_cache_valid 200 48h;
 expires 1w;
 }
 location /wl/po.jsp {
 proxy_pass http://127.0.0.1:5885/banners/wl/po.jsp;
 proxy_cache exe_cache;
 proxy_cache_valid 200 48h;
 expires 1w;
 }
 location 

Re: Высокий IO на серверах с nginx

2015-07-11 Пенетрантность Alexey Malov
Как выяснилось, IO было дисковое, перенос cache в RAM всё излечил. Странно
только, почему раньше работало. Сейчас вариантов URL стало даже меньше. И
трафик опустился.

11 июля 2015 г., 17:57 пользователь Alexey Malov scukon...@gmail.com
написал:



 11 июля 2015 г., 17:09 пользователь Alexey Malov scukon...@gmail.com
 написал:

 Добрый день,
 Второй день наблюдаю проблему с высоким IO на серверах с nginx при не
 очень большой нагрузке.
 Схема такая - 11 серверов с nginx и tomcat. Nginx на каждому сервере
 принимает трафик от CloudFlare CDN, большую часть отдаёт из кеша, остальное
 балансирует на томкаты (и ещё один статический файлик отдаёт сам).
 Всё было замечательно до вчера, трафик в пике был до 40 мегабайтов в
 секунду, 40к параллельных соединений и ~1500 запросов в секунду на каждом
 из серверов.
 Вчера же трафик подскочил раза в полтора (сбрасывали кеш на CloudFlare и
 сами запросы тоже поменялись), резко выроз IO на сервере (раньше его вообще
 практически не было, а стало около 15-20%) и всё начало тупить.
 Изначально думали на диск, но отключение логов практически никак не
 повлияло.
 В dmesg стали вылезать сообщения про synflood, увеличили бэклоги как в
 nginx, так и в sysctl, сообщения про synflood пропали, но проблема с IO
 осталась.

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

 Трафик с тех пор понизился даже ниже, чем был до проблемы, сейчас около
 1100 запросов в секунду. Но IO осталось. Nginx даже иногда по нескольку
 секунд отвечает на запросы к странице stub_status.
 Пробовали разделять сервера с tomcat и nginx, IO оставалось на стороне
 nginx.

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

 Конфиги следующие:
 nginx.conf:
 user  nginx;
 worker_processes  8;
 worker_rlimit_nofile 512000;
 worker_rlimit_core  500M;

 error_log  /var/log/nginx/error.log;

 pid/var/run/nginx.pid;

 events {
 worker_connections  256000;
 }

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

 ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
 log_format  main  '$remote_addr - $remote_user [$time_local]
 $request '
   '$status $body_bytes_sent $http_referer '
   '$http_user_agent $http_x_forwarded_for';
 log_format upstream_balancing   '$remote_addr - $remote_user
 [$time_local] '
 '$request $status $bytes_sent '
 '$http_referer $http_user_agent '
 '$upstream_addr $upstream_response_time
 $geoip_country_code/$http_cf_ipcountry $http_host
 $upstream_cache_status '
 '$http_cf_connecting_ip';
 log_format ub_cloudflare   '$http_cf_connecting_ip - $remote_user
 [$time_local] '
 '$request $status $bytes_sent '
 '$http_referer $http_user_agent '
 '$upstream_addr $upstream_response_time
 $geoip_country_code/$http_cf_ipcountry $http_host
 $upstream_cache_status '
 '$remote_addr $cookie___cfduid $cookie_uid';
 access_log  /var/log/nginx/access.log  main;

 sendfileon;

 keepalive_timeout  65;

 proxy_cache_methods GET;

 include /etc/nginx/conf.d/*.conf;
 include /etc/nginx/sites-enabled/*;

 }

 virtual host:
 server {
 listen   1.1.1.1:80;
 listen   1.1.1.1:443 ssl;
 ssl_certificate /etc/nginx/ssl/cert.crt;
 ssl_certificate_key /etc/nginx/ssl/key.key;
 server_name  example.com;
 proxy_set_header clientCountryCode $http_cf_ipcountry ;
 proxy_ignore_headers Set-Cookie;
 proxy_hide_header Set-Cookie;
 proxy_next_upstream error timeout http_500;

 location / {
 deny all;
 }
 location /manager {
 proxy_pass http://127.0.0.1:5885;
 }
 location /crossdomain.xml {
 root /tomcat/static_xml;
 expires 31d;
 }
 location ~ ^(/display.htm)$ {
 proxy_pass http://127.0.0.1:5885/banners/$1$is_args$args;
 proxy_cache exe_cache;
 proxy_cache_valid 2h;

 expires 24h;
 }
 location ~ ^(/secure.jsp)$ {
 proxy_pass http://127.0.0.1:5885/banners/mojo/$1$is_args$args;
 proxy_cache exe_cache;
 proxy_cache_valid 2h;
 expires 12h;

 }
 location ~ ^(/hela.jsp)$ {
 proxy_pass http://127.0.0.1:5885/banners/hela$1$is_args$args;
 proxy_cache exe_cache;
 proxy_cache_valid 2h;
 expires 12h;

 }
 location ~ ^(/hela.exe)$ {
 proxy_pass http://127.0.0.1:5885/banners/hela$1$is_args$args;
 proxy_cache exe_cache;
 proxy_cache_valid 24h;

 }
 location /wl/ba.jsp {
 proxy_pass http://127.0.0.1:5885/banners/wl/ba.jsp;
 #proxy_cache_key proxy_cache_key;
 proxy_cache exe_cache;