- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева

Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Господа, а по каким причинам так нежелательно использовать nginx для отдачи статики? В статьях, которые я читал про связку nginx+apache - везде рекомендовано ставить nginx именно с целью разгрузить апач от обработки статики, т.к. nginx это делает быстрее и эффективнее.
Не уже ли обманывают? Пруфлинки приветствуются.
Pilat, nginx совершенно точно не умеет keepalive к бакенду при проксировании
он же ясно говорит ему - HTTP/1.0 :) не замечали ?
а вот апач2 (mod_proxy) умеет :p
HTTP/1.0 к отсутствию keep-alive не имеет прямого отношения - он-то его поддерживает, имеет отсутствие "Connection: Keep-Alive", который не посылается nginx'ом.
Господа, а по каким причинам так нежелательно использовать nginx для отдачи статики? В статьях, которые я читал про связку nginx+apache - везде рекомендовано ставить nginx именно с целью разгрузить апач от обработки статики, т.к. nginx это делает быстрее и эффективнее.
это не для всякого сайта что-то существенное даст. а конфигурацию
может усложнить (см. выше примеры).
nginx ставят не столько для разгрузки от статики - скорее, чтобы снять
с апача медленных клиентов и высвободить ресурсы (память, например).
myhand добавил 05.11.2009 в 20:29
HTTP/1.0 к отсутствию keep-alive не имеет прямого отношения - он-то его поддерживает, имеет отсутствие "Connection: Keep-Alive", который не посылается nginx'ом.
http://www2.research.att.com/~bala/papers/h0vh1.html
-->8--
Persistent Connections: HTTP/1.0, in its documented form, made
no provision for persistent connections. Some HTTP/1.0 implementations, however, use a Keep-Alive header (described in [Fie95]) to request that a connection persist. This design did not interoperate with intermediate proxies.
-->8--
http://www2.research.att.com/~bala/papers/h0vh1.html
-->8--
Persistent Connections: HTTP/1.0, in its documented form, made
no provision for persistent connections. Some HTTP/1.0 implementations, however, use a Keep-Alive header (described in [Fie95]) to request that a connection persist. This design did not interoperate with intermediate proxies.
-->8--
Нееет!
http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.6.2
Some clients and servers might wish to be compatible with some previous implementations of persistent connections in HTTP/1.0 clients and servers. Persistent connections in HTTP/1.0 are explicitly negotiated as they are not the default behavior. HTTP/1.0 experimental implementations of persistent connections are faulty, and the new facilities in HTTP/1.1 are designed to rectify these problems. The problem was that some existing 1.0 clients may be sending Keep-Alive to a proxy server that doesn't understand Connection, which would then erroneously forward it to the next inbound server, which would establish the Keep-Alive connection and result in a hung HTTP/1.0 proxy waiting for the close on the response. The result is that HTTP/1.0 clients must be prevented from using Keep-Alive when talking to proxies.
However, talking to proxies is the most important use of persistent connections, so that prohibition is clearly unacceptable. Therefore, we need some other mechanism for indicating a persistent connection is desired, which is safe to use even when talking to an old proxy that ignores Connection. Persistent connections are the default for HTTP/1.1 messages; we introduce a new keyword (Connection: close) for declaring non-persistence. See section 14.10.
The original HTTP/1.0 form of persistent connections (the Connection: Keep-Alive and Keep-Alive header) is documented in RFC 2068. [33]
проще говоря, в http/1.1 это по умолчанию, в http/1.0 - не по умолчанию, но допустимо.
Pilat, но в nginx при соединениях к бекенду не работает все равно. что тут распинаться.
да, тем не менее - nginx этого явно не требует. так что в нем персистентные
соединения с бакендом не делаются
так что в итоге скажете насчет keep-alive? Стоит лы выставить какое-то время для него, отличающееся от дефолтной натсройки?
так что в итоге скажете насчет keep-alive? Стоит лы выставить какое-то время для него, отличающееся от дефолтной натсройки?
дефолт 75 - IE закрывает через минуту. так что можно и уменьшить.
это зависит от ресурса, который хостите - от характера его посещаемости.
чем больше - тем лучше. но до определенных пределов. открытые соединения
кушают ресурсы - это нужно учитывать.
дефолт 75 - IE закрывает через минуту. так что можно и уменьшить.
это зависит от ресурса, который хостите - от характера его посещаемости.
чем больше - тем лучше. но до определенных пределов. открытые соединения
кушают ресурсы - это нужно учитывать.
Большое спасибо за информацию
Какой же это прокси, если он у вас и статику отдает? :) В чем и вопрос - сравнивали вы такую конфигурацию с тем случаем, когда nginx просто проксирует запросы дальше?
Да. Но чисто номинально. Я сперва не мог никак составить рабочее правило, чтобы хоть часть запросов сгрузить с апача на nginx. Так вот особой пользы для сервера я не нашёл, плюс сам nginx начал занимать память. Но помоему в этой ситуации процессы апача плодились чуть ленивее чем без nginx.
значит так. к keepalive_timeout указанная ошибка отношения _не_имеет_ копать в сторону настроек http_proxy_module
естественно, ваша ошибка хуже - ибо вы теряете клиенты не получают содержательного ответа от сервера :D
Это неприятно. Собственно с настройкой этого модуля я совсем не разбирался - использовал хрестоматийный конфиг :), который встречается много где в рунете. Это который
---
location / {
proxy_pass http://127.0.0.1:8080/;
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;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 1m;
}
---
Здесь есть три таймаута, но на мой взгляд они даже несколько больше чем надо. Поэтому я и в мыслях не держал что тут может быть ошибка...