В общем, система Ниппель.
Есть основной домен www.domain.com. Картинки на него подгружаются с поддомена sub.domain.com. Это все нормально, но недавно прикрутил под это все - nginx, чтобы обслуживать картинки с поддоменов. Работает он на порте 81, по определенным соображениям не мог апач поставить за nginx-ом.
То есть все запросы, что приходят на поддомен, обслуживаются апачем, ибо порт по умолчанию - 80. Чтобы перенаправить трафик на порт 81, настроил проксирование, по совету знающих. Вот конфиги апача для поддоменов:
ProxyRequests off
ProxyPass /
http://sub.domain.com:81
ProxyPassReverse /
http://sub.domain.com:81
Так все работает, и перенаправление на nginx происходит как надо, отдает тоже nginx, и в логах все нормально, но это пока не больше одного одновременного запроса. Как только количество запросов растет - обслуживать запросы начинает апач.
Вот кусок логов.
IP.IP.IP.IP - - [19/Mar/2012:17:23:44 -0400] "GET /path/to/images/pic.jpg HTTP/1.1" 304 -
IP.IP.IP.IP - - [19/Mar/2012:17:23:52 -0400] "GET /path/to/images/pic.jpg HTTP/1.1" 304 -
IP.IP.IP.IP - - [19/Mar/2012:17:23:53 -0400] "GET /path/to/images/pic.jpg HTTP/1.1" 304 -
IP.IP.IP.IP - - [19/Mar/2012:17:23:53 -0400] "GET /path/to/images/pic.jpg HTTP/1.1" 200 41173
IP.IP.IP.IP - - [19/Mar/2012:17:23:53 -0400] "GET /path/to/images/pic.jpg HTTP/1.1" 200 41173
IP.IP.IP.IP - - [19/Mar/2012:17:23:53 -0400] "GET /path/to/images/pic.jpg HTTP/1.1" 200 41173
IP.IP.IP.IP - - [19/Mar/2012:17:23:53 -0400] "GET /path/to/images/pic.jpg HTTP/1.1" 200 41173
IP.IP.IP.IP - - [19/Mar/2012:17:23:53 -0400] "GET /path/to/images/pic.jpg HTTP/1.1" 200 41173
IP.IP.IP.IP - - [19/Mar/2012:17:23:53 -0400] "GET /path/to/images/pic.jpg HTTP/1.1" 200 41173
IP.IP.IP.IP - - [19/Mar/2012:17:23:53 -0400] "GET /path/to/images/pic.jpg HTTP/1.1" 200 41173
IP.IP.IP.IP - - [19/Mar/2012:17:23:53 -0400] "GET /path/to/images/pic.jpg HTTP/1.1" 200 41173
Первые два запроса происходили с промежутком в несколько секунд, ответ апача - 304, перенаправление на nginx.
Остальные запросы происходили без заметного промежутка во времени, ответ апача - 200, обслуживание запроса.
Из вариантов, что приходят в голову. Либо ProxyPass имеет некое ограничение на перенаправление запросов, при достижении которого он их перестает перенаправлять. Пытался делать так:
ProxyPass /
http://sub.domain.com:81 max=100
ProxyPassReverse /
http://sub.domain.com:81 max=100
Не помогло.
Либо же у nginx есть некое ограничение, при достижении которого он перестает брать новые запросы, и апач не может на него перенаправить, или nginx получает новые запросы и перенаправляет их обратно на порт 80 - апачу.
Кроме всей этой беды, в netstat сервера я вижу запросы к серверу со своего же IP адреса, и количество этих запросов стремительно растет, занимая всю оперативную память. Приходится отключать ProxyPass дабы сохранить аптайм сервера.
Надеюсь систему объяснил доходчиво. И надеюсь получить хоть какую то подсказку.
Примечание:
В общем, проблему решил другим путем. Спасибо.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.