Жуткие тормоза на новом VPS

1 2345 6
aleksey_php
На сайте с 17.03.2008
Offline
53
#31

Господа, а по каким причинам так нежелательно использовать nginx для отдачи статики? В статьях, которые я читал про связку nginx+apache - везде рекомендовано ставить nginx именно с целью разгрузить апач от обработки статики, т.к. nginx это делает быстрее и эффективнее.

Не уже ли обманывают? Пруфлинки приветствуются.

P
На сайте с 08.03.2007
Offline
250
#32
myhand:
Pilat, nginx совершенно точно не умеет keepalive к бакенду при проксировании

он же ясно говорит ему - HTTP/1.0 :) не замечали ?

а вот апач2 (mod_proxy) умеет :p

HTTP/1.0 к отсутствию keep-alive не имеет прямого отношения - он-то его поддерживает, имеет отсутствие "Connection: Keep-Alive", который не посылается nginx'ом.

M
На сайте с 16.09.2009
Offline
278
#33
aleksey_php:
Господа, а по каким причинам так нежелательно использовать nginx для отдачи статики? В статьях, которые я читал про связку nginx+apache - везде рекомендовано ставить nginx именно с целью разгрузить апач от обработки статики, т.к. nginx это делает быстрее и эффективнее.

это не для всякого сайта что-то существенное даст. а конфигурацию

может усложнить (см. выше примеры).

nginx ставят не столько для разгрузки от статики - скорее, чтобы снять

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

myhand добавил 05.11.2009 в 20:29

Pilat:
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--

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
P
На сайте с 08.03.2007
Offline
250
#34
myhand:

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 - не по умолчанию, но допустимо.

N
На сайте с 06.05.2007
Offline
419
#35

Pilat, но в nginx при соединениях к бекенду не работает все равно. что тут распинаться.

Кнопка вызова админа ()
M
На сайте с 16.09.2009
Offline
278
#36

да, тем не менее - nginx этого явно не требует. так что в нем персистентные

соединения с бакендом не делаются

A9
На сайте с 26.08.2008
Offline
38
#37

так что в итоге скажете насчет keep-alive? Стоит лы выставить какое-то время для него, отличающееся от дефолтной натсройки?

M
На сайте с 16.09.2009
Offline
278
#38
argo90:
так что в итоге скажете насчет keep-alive? Стоит лы выставить какое-то время для него, отличающееся от дефолтной натсройки?

дефолт 75 - IE закрывает через минуту. так что можно и уменьшить.

это зависит от ресурса, который хостите - от характера его посещаемости.

чем больше - тем лучше. но до определенных пределов. открытые соединения

кушают ресурсы - это нужно учитывать.

A9
На сайте с 26.08.2008
Offline
38
#39
myhand:
дефолт 75 - IE закрывает через минуту. так что можно и уменьшить.

это зависит от ресурса, который хостите - от характера его посещаемости.

чем больше - тем лучше. но до определенных пределов. открытые соединения
кушают ресурсы - это нужно учитывать.

Большое спасибо за информацию

Fire Sphere
На сайте с 22.03.2008
Offline
28
#40
myhand:
Какой же это прокси, если он у вас и статику отдает? :) В чем и вопрос - сравнивали вы такую конфигурацию с тем случаем, когда nginx просто проксирует запросы дальше?

Да. Но чисто номинально. Я сперва не мог никак составить рабочее правило, чтобы хоть часть запросов сгрузить с апача на nginx. Так вот особой пользы для сервера я не нашёл, плюс сам nginx начал занимать память. Но помоему в этой ситуации процессы апача плодились чуть ленивее чем без nginx.

myhand:
значит так. к 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;

}

---

Здесь есть три таймаута, но на мой взгляд они даже несколько больше чем надо. Поэтому я и в мыслях не держал что тут может быть ошибка...

Здесь (http://www.sape.ru/r.b5b0035ccd.php) можно неплохо заработать
1 2345 6

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий