Назад | Перейти на главную страницу

Медиа-сервер и веб-сервер - один и тот же IP-адрес, как это настроить?

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

mediaserver.mysite.com/test123.jpg

И веб-сервер

www.mysite.com

Мне интересно, как это может работать, если и медиа-сервер, и веб-сервер находятся за маршрутизатором? Т.е. доступен только один порт 80, поэтому к медиасерверу нельзя обращаться по HTTP.

Кроме того, пользователь должен иметь возможность звонить mediaserver.mysite.com/test123.jpg и просмотреть изображение

В идеале пользователь должен вызвать

www.mysite.com/media/test123.jpg 

Но в конечном итоге носитель обслуживается с другого сервера, который может находиться в совершенно другой сети, чем mysite.com

РЕДАКТИРОВАТЬ: я использую Django на Apache для веб-сервера и lighttpd для мультимедиа.

СПАСИБО!

Делается это регулярно. У нас есть десятки веб-сайтов, работающих на одном IP-адресе, и нередко запускаются сотни. Ваш веб-сервер проверит заголовок хоста запроса и будет обслуживать его соответствующим образом.

Есть два способа реализовать это, и они оба одинаковы, но для разных веб-серверов. Вы не указали, какой из них использовали, поэтому вот три наиболее распространенных:

IIS 5/6

Щелкните свой веб-сайт правой кнопкой мыши и выберите Свойства. Рядом с «IP-адресом» (на вкладке «Веб-сайт») нажмите «Дополнительно». Вы увидите там запись для порта 80 без имени заголовка хоста. Удалите эту запись.

Щелкните Добавить и в разделе TCP Port оставьте значение 80 (или 443 для SSL), а в поле Host Header Name введите имя веб-сайта (например, mediaserver.mysite.com, хотя example.com является зарезервированным именем именно для этого. цель, но неважно). Нажмите ОК и ОК, чтобы перейти к следующему экрану. И все готово. Теперь вы можете получить доступ к этому веб-сайту через mediaserver.mysite.com (и только через него он больше не будет прослушивать только IP-адрес).

IIS 7

То же, что и IIS 5/6, за исключением того, что вместо того, чтобы щелкнуть веб-сайт правой кнопкой мыши, вы просто выбираете его и в правом меню выбираете «Привязки»

Apache

Я не очень часто настраиваю apache, поэтому моя память очень нечеткая, но вы используете директиву VirtualHost на основе имени в своем httpd.conf. Из пример документации apache:

NameVirtualHost *

<VirtualHost *>
ServerName www.domain.tld
DocumentRoot /www/domain
</VirtualHost>

(Я рекомендую прочитать остальную часть этой страницы документации, если вы используете Apache).

Конечно, вам просто нужно настроить виртуальный хостинг на основе имен на своем веб-сервере, чтобы он знал, как различать разные имена («виртуальный хостинг на основе имен» плюс ваша ОС / веб-сервер в Google должны предоставить вам много помощи по тема).

К вашему сведению, если вы планируете использовать Lighttpd, я бы посоветовал вам пойти с Nginx вместо. Он новее с меньшим опытом, но быстрее и легче и уже превзошел Lighty по количеству сайтов, использующих его. Nginx также используется на некоторых действительно известных сайтах, таких как Wordpress, Github и Hulu. Я использую Nginx в качестве интерфейса и для обслуживания статических файлов для сайта с чрезвычайно высоким трафиком, и он отлично работает!

Что вам нужно сделать, так это настроить свой «маршрутизатор» в качестве прокси. Это должен быть полноценный HTTP-сервер, который принимает входящие запросы и проверяет, направляются ли они на www.mysite.com или mediaserver.mysite.com, и передает запросы либо веб-серверу, либо медиа-серверу на основе этого. (Он также может выполнять более детальные проверки, например, искать путь www.mysite.com/media и переписав это на mediaserver.mysite.com)

Если вы не можете запустить прокси-сервер HTTP на самом маршрутизаторе, вы, по крайней мере, должны иметь возможность настроить маршрутизатор для направления всего HTTP-трафика (через порт 80), который он получает, на одну конкретную машину, которая находится за ним, и который машина может быть вашим HTTP-прокси.

В зависимости от того, какую нагрузку производит ваш веб-сайт, вы можете сделать прокси таким же, как веб-сервер, или сделать прокси таким же, как и медиа-сервер, и таким образом вы можете обойтись всего двумя серверами, а не тремя. . Но опять же, это действительно зависит от того, какую нагрузку (и какую) вы возлагаете на эти системы.