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

FFserver и Apache на одном порту

Я только что установил новую установку apache и ffserver на свой выделенный сервер. Все работает нормально, и я могу воспроизвести свой фильм во флеш-плеере (потому что я кодирую свой поток в H264 / AAC), обслуживаемом моим apache. Но flashplayer проигрывает поток на порту ffserver'а (8090 для меня). Некоторые люди находятся за брандмауэром и не могут играть вживую, потому что 8090 заблокирован для нас. Как я могу использовать только порт 80?

Заранее спасибо и извините за плохой английский!

Рассмотрите возможность использования обратного прокси, такого как nginx. Переместите apache на порт 8080, пусть ffserver будет на 8090 и настройте nginx на 80.

Затем настройте nginx для прокси-запросов для местоположения / видео, например, на 127.0.0.1:8090, а все остальное - на 127.0.0.1:8080. это поможет вам.

Теперь клиенты подключаются только по 80 порту.

Только одна служба может прослушивать заданную комбинацию IP-адреса и порта одновременно.

У вас, вероятно, есть два варианта:

  1. Привяжите ffmpeg на порту 80 к другому IP-адресу и настройте отдельное имя хоста.
  2. Сделайте так, чтобы Apache перенаправлял запросы прозрачно, используя mod_proxy.

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

Если вы хотите сделать это с помощью mod_rewrite для определенного URL-адреса под тем же именем хоста ... Например, если у вас есть www.yourhost.com в качестве apache и все, что находится в / video, поступающее с ffserver, вы можете сделать:

RewriteEngine на

RewriteRule ^ / video / $ 1 http://127.0.0.1:8900/$ 1 [P, L]

ProxyPassReverse / http://127.0.0.1:8900

Если вы хотите сохранить его на том же оборудовании, но не заботитесь о том, разрешаются ли они с одним и тем же именем, вы также можете настроить виртуальный сетевой интерфейс на другом IP-адресе, чтобы eth0 был apache, работающим на 192.168.1.1, и ffserver. на eth0: 1 с IP-адресом 192.168.1.2. Тогда каждый из них может иметь собственное имя в DNS, и, поскольку это разные интерфейсы, у вас может быть 2 службы, работающие на порту 80 в одном и том же устройстве.

http://ffmpeg.org/sample.html

Похоже, вы установили порт в файле конфигурации и перезапустили сервер ff?

Я не знаком с этим, но это должно быть простое решение.

У вас может быть только одно приложение, прослушивающее данный порт, поэтому кратко - невозможно иметь оба на порту 80. Однако есть способы обойти это и, возможно, http://httpd.apache.org/docs/2.2/mod/mod_proxy.html даст вам несколько идей. В основном найдите способ прохождения трафика ffserver через apache.