Nginx перенаправляет на порт 80, а не должен. Как быть?

сервер apache прокси nginx ProxyPass

В общем, система Ниппель.

Есть основной домен 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 дабы сохранить аптайм сервера.

Надеюсь систему объяснил доходчиво. И надеюсь получить хоть какую то подсказку.

Примечание:
В общем, проблему решил другим путем. Спасибо.
Ответы:
надо изначально подходить ко всему этому с умом и поставить nginx для проксирования и, заодно, отдачи всей статики на запросы, а не экспериментировать с апачем, который загибается  раньше, чем nginx успевает разогреться.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.