Redirect
В Апаче и IIS есть модуль Redirect который маршрутизирует запросы пришедшие на сервер, в NGINX есть только модуль проксирования, почему отсутсвует просто модуль редиректа?, ведь зачастую в проксировании(то есть пропускании через себя и запросов и ответов) необходимости нет. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243543,243543#msg-243543 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Redirect
Но ведь есть return: http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html#return 09.10.2013, 13:24, Cergoo nginx-fo...@nginx.us: В Апаче и IIS есть модуль Redirect который маршрутизирует запросы пришедшие на сервер, в NGINX есть только модуль проксирования, почему отсутсвует просто модуль редиректа?, ведь зачастую в проксировании(то есть пропускании через себя и запросов и ответов) необходимости нет. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243543,243543#msg-243543 ___ 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
nginx + http redis module кеширование статического контента.
Добрый день. Предо мной стоит задача кэширования статического контента прямо в Redis. Для взаимодействия с Redis -ом использую модуль http_redis_module (http://wiki.nginx.org/HttpRedis). Проблема в том что строчка set $redis_key $uri?$args; у меня не работает (OS-mac os-x), то есть когда проверяю, то в redis-cli нет ключа с значением $uri?$args. Что делать?. Вот мой конфиг worker_processes 1; pid nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfileon; keepalive_timeout 65; server { listen 80; server_name localhost; error_log /var/log/nginx-error.log debug; access_log /var/log/nginx_access.log; location / { root /Users/my_comp/nginx/nginx_2/temp_content/; set $redis_db 1; set $redis_key $uri?$args; redis_pass 127.0.0.1:6379; error_page 404 502 504 = @fallback; } location @fallback { proxy_pass http://127.0.0.1:6379; } } } Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243545,243545#msg-243545 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Redirect
--Но ведь есть return: --http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html#return Сколь понимаю это посылает клиенту ответ с предписанием перейти по другому url. модуль редирект не извещает клиента, он пересылает запрос на новый адрес(но не подменяет адрес клиента на свой то есть не перехватывает ответы) и http сервер сам отсылает ответ клиенту минуя редиректора. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243543,243547#msg-243547 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Redirect
Вы об этом?https://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirect 09.10.2013, 14:02, "Cergoo" nginx-fo...@nginx.us:--Но ведь есть return:--http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html#returnСколь понимаю это посылает клиенту ответ с предписанием перейти по другомуurl.модуль "редирект" не извещает клиента, он пересылает запрос на новыйадрес(но не подменяет адрес клиента на свой то есть не перехватывает ответы)и http сервер сам отсылает ответ клиенту минуя редиректора.Posted at Nginx Forum: http://forum.nginx.org/read.php?21,243543,243547#msg-243547___nginx-ru mailing listnginx-ru@nginx.orghttp://mailman.nginx.org/mailman/listinfo/nginx-ru___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: правильная настройка прокси на несколько сайтов.
Hello! On Wed, Oct 09, 2013 at 11:53:15AM +0400, Vladimir Skubriev wrote: Есть сервер с настроенным apache и несклькими Virtualhosts внутри ЛВС: [...] proxy_pass http://backendredminedev; [...] Проблема в том, что если я попытаюсь откуда нибудь из Интернет зайти на https://redmine.examplelab.com, то я почему то попадаю на git и вылазит окно авторизации. Веб морда редмаин почему то ни когда не открывается. Когда вы пишете proxy_pass http://backendredminedev; - на бекенд уходит заголовок Host: backendredminedev. Если на бекенде при этом используются виртуальные сервера - то нужно либо прописать нужное имя в алиасы, либо, наоборот, обучить nginx использовать нужное имя в запросе (обычно это делается с помощью proxy_set_header Host $host; в конфиге nginx'а). Иначе бекенд не сможет правильно выбрать виртуальный сервер - он же ничего не знает про backendredminedev. Ссылки по теме: http://nginx.org/r/proxy_pass http://nginx.org/r/proxy_set_header Что нужно почитать перед тем, как браться настраивать веб сервер? Просто обычно делаешь все по каким нибудь статьям в Интернет. Спору нет к результату приходишь. Но ясности понимания работы HTTP это не привносит. Если хочется полноценного понимания - я бы рекомендовал ознакомиться со стандартом, RFC 2616: http://tools.ietf.org/html/rfc2616 Но это может быть немного сложно на начальном этапе, возможно имеет смысл поискать что-нибудь более популярное - например, начать со статьи в Bикипедии: http://en.wikipedia.org/wiki/HTTP Более приятных популярных источников не подскажу, sorry. Общий совет - осторожнее с русскоязычными документами - они в заметном проценте случаев оставляют желать. Что же касается nginx'а, то в первую очередь имеет смысл ознакомиться вот с этими тремя статьями: http://nginx.org/ru/docs/http/request_processing.html http://nginx.org/ru/docs/http/server_names.html http://nginx.org/ru/docs/http/configuring_https_servers.html -- Maxim Dounin http://nginx.org/en/donation.html ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: nginx + http redis module кеширование статического контента.
Hello! On Wed, Oct 09, 2013 at 05:49:18AM -0400, Neutrino_9 wrote: Добрый день. Предо мной стоит задача кэширования статического контента прямо в Redis. Для взаимодействия с Redis -ом использую модуль http_redis_module (http://wiki.nginx.org/HttpRedis). Проблема в том что строчка set $redis_key $uri?$args; у меня не работает (OS-mac os-x), то есть когда проверяю, то в redis-cli нет ключа с значением $uri?$args. Что делать?. Вот мой конфиг А вы соответсвующий ключ в Redis кладёте? Модуль этого не делает, он позволяет только забрать оттуда ответ. -- Maxim Dounin http://nginx.org/en/donation.html ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: правильная настройка прокси на несколько сайтов.
On Wed, 9 Oct 2013, Maxim Dounin wrote: Есть сервер с настроенным apache и несклькими Virtualhosts внутри ЛВС: [snip] Если хочется полноценного понимания - я бы рекомендовал ознакомиться со стандартом, RFC 2616: [snip all the rest] Макс, не могу удержаться, хотя clearly OT: ты демонстрируешь какое-то невероятное количество терпения и мудрости в ответах. No sarcasm. Much kudos. Спасибо за вашу работу. -- Sincerely, D.Marck [DM5020, MCK-RIPE, DM3-RIPN] [ FreeBSD committer: ma...@freebsd.org ] *** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- ma...@rinet.ru *** ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Оптимизация для отдачи статики
Имеются тормоза с отдачей графики - в один поток файлы отдаются влегкую, при скачивании больших файлов складывается канал у клиента :) А вот с отдачей мелких файлов (99% файлов являются картинками с развернутой иерархией директорий) пачкой наблюдаются жесткие тормоза. Раздел с файлами - ramfs, синхронизируется скриптами с SSD-накопителем по мере появления изменений на последнем. Конфиг: user nobody; worker_processes 8; worker_rlimit_nofile 8192; worker_priority -5; timer_resolution 100ms; error_log /var/log/nginx/error.log warn; events { worker_connections 8192; use epoll; } http { includemime.types; default_type application/octet-stream; server_tokens off; ignore_invalid_headers on; if_modified_since before; reset_timedout_connection on; underscores_in_headers on; sendfile on; sendfile_max_chunk 128k; keepalive_requests 1000; keepalive_timeout 30; keepalive_disable msie6; tcp_nopush on; tcp_nodelay on; send_timeout 30; connection_pool_size 256; client_header_buffer_size 256k; large_client_header_buffers 4 256k; client_max_body_size 200M; client_body_buffer_size 256k; client_header_timeout 30; client_body_timeout 30; request_pool_size 32k; postpone_output 1460; access_log off; output_buffers 128 512k; open_file_cache max=20 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 1; open_file_cache_errors off; ssl_session_timeout 5m; ssl_prefer_server_ciphers on; ssl_session_cache builtin:1000 shared:SSL:10m; server { listen 0.0.0.0:80 rcvbuf=16834 sndbuf=16384 backlog=32000 default; server_name cdn.image.kg; access_log off; location / { root /var/www/ramdrive; expires max; add_header Cache-Control public; try_files $uri $uri/ /notfound.png; } } # SSL server { listen 0.0.0.0:443 ssl default_server rcvbuf=16384 sndbuf=16384 backlog=32000 ; server_name cdn.image.kg; access_log off; ssl on; ssl_certificate /etc/nginx/ssl/cdn.image.kg.crt; ssl_certificate_key /etc/nginx/ssl/cdn.image.kg.key; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers RC4:HIGH:!aNULL:!MD5:!kEDH; location / { root /var/www/ramdrive; expires max; add_header Cache-Control public; try_files $uri $uri/ /notfound.png; } } } И еще в логах очень много такого: 2013/10/10 06:10:51 [alert] 26609#0: *13726 pread() read only 24709 of 24711 from /var/www/ramdrive/6/2/45/125/WD63s4ds84de254.jpg while sending response to client, client: IP, server: cdn.image.kg, request: GET /6/2/45/125/WD63s4ds84de254.jpg?code=4532ew3 HTTP/1.1, host: cdn.image.kg, referrer: https://cdn.image.kg/view.php; ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Оптимизация для отдачи статики
А вот с отдачей мелких файлов (99% файлов являются картинками с развернутой иерархией директорий) пачкой наблюдаются жесткие тормоза. Жесткие тормоза - это как именно выражается? Мало rps? Мала утилизация канала? Высока нагрузка на CPU? Раздел с файлами - ramfs, синхронизируется скриптами с SSD-накопителем по мере появления изменений на последнем. А что именно заставило вас создать конфигурацию с рамдрайвом? С чем не справился кеш ФС? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Оптимизация для отдачи статики
Тормоза проявляются в том, что при пакетнойзагрузке файлов они не отдаются разом, во много потоков, а встают в очередь. При одновременном старте 850 запросов, последний из них обрабатывался в течении 28 секунд. Это при среднем размере картинок в 30-50кбайт! Сеть при этом (по мнению atop) нагружается не более чем на 1%, CPU максимум на 15%. Природа возникновения рамдрайва такова - физически накопитель проживает в соседнем стойле, в SAN. К машине с nginx (KVM-guest) цепляется посредством iscsi. Помимо нас к тому же SAN, возможно по тому же каналу, цепляются и остальные жители хостовой машины. Использование рамдрайва позволяет при сохранении высокой скорости чтения избежать зависимости от возможных лагов в сети, кратковременного извлечения винта из стораджа (например в случае замены). 10.10.2013 10:37, Daniel Podolsky пишет: А вот с отдачей мелких файлов (99% файлов являются картинками с развернутой иерархией директорий) пачкой наблюдаются жесткие тормоза. Жесткие тормоза - это как именно выражается? Мало rps? Мала утилизация канала? Высока нагрузка на CPU? Раздел с файлами - ramfs, синхронизируется скриптами с SSD-накопителем по мере появления изменений на последнем. А что именно заставило вас создать конфигурацию с рамдрайвом? С чем не справился кеш ФС? ___ 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