Nginx keep-alive + свой сервер

[Удален]
1962

Здравствуйте, есть свой "сервер" на Эрланге который слушает 80 порт и ждет соединений, после коннекта клиента, отсылает запрос в заголовках на keep-alive(этого требует игра), все хорошо работает, так как сервер очень специфичный он может обрабатывать только жестко вписанные в него параметры, всякие: картинки, и другие файлы он обработать не сможет, хочу поручить это Nginx, как это правильно настроить:

вся статика Nginx, все остальное Мой сервер.

При этом, чтобы Nginx небыл как прокси к моему серверу, как такое реализовать ?

Кстити, сервер на Эрланге, может перенаправлять все 404 ошибки в Nginx если это нужно будет.

Как я вижу:

Мой сервер - 80 порт, Nginx 81

Когда разрешенные запросы обрабатывает мой сервер, все неизвестные 404 перекидываем в Nginx, здесь как-то необычно, как прокси у меня всегда был Nginx, а при таком раскладе мой сервер - это прокси.

Спасибо!

V
На сайте с 25.07.2006
Offline
128
#1

Странный вопрос. Это ведь ВАШ сервер. Вам лучше знать, как это реализовать...

Хотя по мне так наиболее разумно не заморачиваться со всякими проксированиями, а просто поставить рядом два сервера - каждый пусть отдает свой контент. Вы ведь всегда можете на страницах указать явным образом полный URL, включая номер порта, например http://domain.com:81/picture.jpg

Или на разных портах или на разных ip, если есть возможность.

Приватный linux-администратор
zexis
На сайте с 09.08.2005
Offline
388
#2

На чем у вас написан ваш сервер?

На чем у вас написан клиент?

Я писал чат на флеше, а сервер в виде демона на c++.

Демон работает на порту 2000.

Картинки в чат грузятся с сервера nginx на 80-м порту.

[Удален]
#3

Свой сервер на Erlang'e(erlang.org), клиент - браузер, для игры нужен keep-alive.

Как я предполагаю:

Мой сервер на Эрланге в интернет смотрит через 80 порт, но дело в том, что запросы(картинки, стили, js и т.д) он обработает как 404 ошибку, вот это нужно как-то перенаправлять(как заголовком ?) на Nginx.

Насчет прописать явно путь к картинкам как site:81/XXXXX.jpg - не вариант, используется bootstrap много гемора.

Andreyka
На сайте с 19.02.2005
Offline
822
#4

nginx не умеет проксировать с кипаливом, значит перед вашим сервером его не поставить.

вешайте его на соседний IP, в качестве поддомена img.mydomain.com и пропишите все картинки по этому url.

А это весь эрлагн такой черезжопный или только этот сервер?

Не стоит плодить сущности без необходимости
N
На сайте с 06.05.2007
Offline
419
#5
neotach:
Мой сервер на Эрланге в интернет смотрит через 80 порт, но дело в том, что запросы(картинки, стили, js и т.д) он обработает как 404 ошибку, вот это нужно как-то перенаправлять(как заголовком ?) на Nginx.

очень просто : надо это взять и написать. никто за вас писать код прокси не будет. На что вы вообще надеетесь? nginx в данном случае keep-alive поддерживает.

Andreyka:
А это весь эрлагн такой черезжопный или только этот сервер?

Весь. Он притягивает определенный тип программистов, которые думают что используя эрланг смогут быстро решать некоторые задачи. По факту оказывается, что ценится не быстро написанное, а работоспособное и широко оттестированное. Но на это же куча времени нужна на любом языке, что никак не привлекает таких программистов. Вот и сейчас мы видим как ТС ищет какой-нибудь фокус, вместо того чтобы просто написать.

Честно говоря, мне не совсем почему тут именно keep-alive важен. Есть и другие эффективные фронтенд-сервера, которые таки поддерживают keep-alive при обращении к бекенду - squid,lighttpd. Но, скорее всего, построить логику игры на основе наличия подключения не получится. Есть же еще конторские прокси и вообще http он весь "пакетный". Надеяться на постоянные соединения не нужно.

Кнопка вызова админа ()
[Удален]
#6
netwind:

Весь. Он притягивает определенный тип программистов, которые думают что используя эрланг смогут быстро решать некоторые задачи. По факту оказывается, что ценится не быстро написанное, а работоспособное и широко оттестированное. Но на это же куча времени нужна на любом языке, что никак не привлекает таких программистов. Вот и сейчас мы видим как ТС ищет какой-нибудь фокус, вместо того чтобы просто написать.

Бред не пишите, где звязь между быстро написанное и неработоспособное, всегда ли быстро написанное по факту неработоспособное ?

Правильно я понял, если Вам и Вашему другу поручили написать сервер на С++, он написал его быстрее значит он неработоспособный, а Ваш который Вы писали дольше работоспособный ?

Да, и я уверен, используя Эрланг можно решить некоторые(!) задачи быстрее.

Насчет моей задачи:

Не проблема реализовать полноценный сервер с отдачей статики на Эрланге(такие уже есть), но мне не нужны монстры с огромным функционалом, у меня специфическая задача - с 2-3 функциями, и одна из функций это отдача статики, которую я думаю лучше поручить другому ПО, которое лучше справится с этой задачей нежели мой вариант, например мы можем поручить Апачу отдвать статику, но лучше(эффективней), чтобы это делал какой-нибудь Nginx.

Буду использовать такой вариант:

Сервер на Эрланге - фронтэнд, 80 порт

Nginx - бэкэнд для отдачи статики, 81 порт

Когда на сервер на Эрланге приходит неизвестный запрос, мы передаем его заголовком (303 редиректом на 81 порт) на Nginx, он уже решает, статика ли это или действительно некорректный(404) запрос.

---------- Добавлено 13.06.2012 в 15:27 ----------

Andreyka:
nginx не умеет проксировать с кипаливом, значит перед вашим сервером его не поставить.
вешайте его на соседний IP, в качестве поддомена img.mydomain.com и пропишите все картинки по этому url.

А это весь эрлагн такой черезжопный или только этот сервер?

Нет, не то, не другое, сервер очень специфичный, ему не нужен некоторый функционал.

N
На сайте с 06.05.2007
Offline
419
#7
neotach:
Правильно я понял, если Вам и Вашему другу поручили написать сервер на С++, он написал его быстрее значит он неработоспособный, а Ваш который Вы писали дольше работоспособный ?

Зачастую так и есть. Быстро написал - значит недотестировал.

Вот фирмы пишут, а я эксплуатирую и сравниваю.

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

81 порт может не открыться в офисах. Перенаправляйте на другое имя хоста и другой IP.

При этом картинки будут грузиться медленнее раза эдак в два. Лучше всего писать внутренний прокси. А это опять нудятина. Беда просто.

M
На сайте с 16.09.2009
Offline
278
#8
netwind:
Перенаправляйте на другое имя хоста и другой IP.
При этом картинки будут грузиться медленнее раза эдак в два.

Эк вы лихо - что сразу не в 10? Резолвинг что-ли посчитали? :)

Лучшие собаководы, наоборот, советуют раскидать статику по нескольким хостам. Что в данном случае вполне прозрачно делается.

А почему шеф настаивает на делании через ***пу? - Повесить nginx перед энтим "сервером" и не париться. Если работа сервера не нарушает спецификацию HTTP - не вижу проблем. Nginx умеет поддерживать keepalive с бакендом с 1.1.какой-то версии.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
[Удален]
#9

Статику на поддомен, поддомену другой IP и на него вешать Nginx.

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