11.07.2015 Views

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

ПРИНТЕРЫ СЕГОДНЯ - Xakep Online

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

136SYN/ACK ХАКЕР 04/ 171/ 2013listen 80;server_name example.com;# Кешируемый адресlocation / {# Кеш включен по умолчаниюset $no_cache "";# Отключаем кеш для всех методов, кроме GET# и HEADif ($request_method !~ ^(GET|HEAD)$) {set $no_cache "1";}# В случае если клиент загружает контент на сайт# (no_cache = 1), делаем так, чтобы отдаваемые# ему данные не кешировались в течение двух# секунд и он смог увидеть результат загрузкиif ($no_cache = "1") {add_header Set-Cookie "_mcnc=1; Max-Age=2;Path=/";add_header X-Microcachable "0";}if ($http_cookie ~* "_mcnc") {set $no_cache "1";}}}# Включаем/отключаем кеш в зависимости# от состояния переменной no_cacheproxy_no_cache $no_cache;proxy_cache_bypass $no_cache;# Проксируем запросы на реальный серверproxy_pass http://appserver.example.ru;proxy_cache microcache;proxy_cache_key $scheme$host$request_method$request_uri;proxy_cache_valid 200 1s;# Защита от проблемы Thundering herdproxy_cache_use_stale updating;# Добавляем стандартные хедерыproxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;# Не кешируем файлы размером больше 1 Мбproxy_max_temp_file_size 1M;Особое место в этом конфиге занимает строка «proxy_cache_use_staleupdating;», без которой мы бы получили периодические всплески нагрузкина бэкенд-сервер из-за запросов, пришедших во время обновлениякеша. В остальном все стандартно и должно быть понятно без лишнихобъяснений.ПРИБЛИЖЕНИЕ ПРОКСИ К ЦАНесмотря на повсеместное глобальное увеличение скоростей интернета,физическая удаленность сервера от целевой аудитории все равно продолжаетиграть свою роль. Это значит, что, если русский сайт крутится на сервере,расположенном где-нибудь в Америке, скорость доступа к нему будетаприори ниже, чем с российского сервера с такой же шириной канала(естественно, если закрыть глаза на все остальные факторы). Другое дело,что размещать серверы за рубежом зачастую выгоднее, в том числе и в планеобслуживания. Поэтому для получения профита, в виде более высокихскоростей отдачи, придется идти на хитрость.В январском отчете компании Netcraft nginx вырвался на второе местоОдин из возможных вариантов: разместить основной производительныйсервер на Западе, а не слишком требовательный к ресурсам фронтенд, отдающийстатику, развернуть на территории России. Это позволит без серьезныхзатрат выиграть в скорости. Конфиг nginx для фронтенда в этом случаебудет простой и всем нам знакомой реализацией прокси:# vi /etc/nginx/sites-enabled/proxy# Храним кеш 30 дней в 100-гигабайтном хранилищеproxy_cache_path /var/cache/nginx levels=1:2keys_zone=static:32m inactive=30d max_size=100g;server {listen 80;server_name example.com;}# Собственно, наш проксиlocation ~* \.(jpg|jpeg|gif|png|ico|css|midi|wav|bmp|js|swf|flv|avi|djvu|mp3)$ {# Адрес бэкендаproxy_pass back.example.com:80;proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;proxy_buffer_size 16k;proxy_buffers 32 16k;proxy_cache static;proxy_cache_valid 30d;proxy_ignore_headers "Cache-Control" "Expires";proxy_cache_key "$uri$is_args$args";proxy_cache_lock on;}ВЫВОДЫСегодня с помощью nginx можно решить множество самых разных задач, многиеиз которых вообще не связаны с сервером и протоколом HTTP. Почтовыйпрокси, потоковое вещание и интерфейс Git — это только часть таких задач. zФизическая удаленность сервера от аудитории по-прежнему важна. Если русскийсайт крутится на сервере, расположенном в Америке, скорость доступак нему будет априори ниже, чем с российского сервера с такой же ширинойканала (естественно, если закрыть глаза на все остальные факторы)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!