Re[2]: Nginx + проигрывание mp3 с сайта

Andrew Kopeyko kaa at zvuki.ru
Mon Nov 13 12:46:40 MSK 2006


On Mon, 13 Nov 2006, Pavel V. wrote:

> Здравствуйте, Andrew.
>
> Вы писали 13 ноября 2006 г., 14:26:16:
>
>> On Sun, 12 Nov 2006, Pavel V. wrote:
>
>>> Здравствуйте, nginx-ru.
>>>
>>>              Пытаюсь раздавать mp3 контент с помощью Nginx.
>>>    При прослушивании с помощью апача (Apache-2.0.59/mpm_worker) проигрывание идет "ровно".
>>>    При попытке перевести нагрузку на нгинкс (nginx-0.4.0) с помощью iptables-DNAT
>
>> Опишите, пожалуйста, по-подробнее - как вы разделяете запрос на *.mp3 к
>> Апачу и запрос к nginx
>> В вашем *.m3u файле ссылка ведёт куда? на 80-й порт? или на 8080 ?
>
>        Два веб-сервера, апач и nginx висят на портах 8080 и 8081. В
>        m3u ссылка на файл на 8080 порт.

А почему ссылку сразу на 8081 не делаете?

>        Перевод нагрузки с апача на
>        nginx осуществляется добавлением правила
>
>        iptables -t nat -I PREROUTING -p tcp --dport 8080 -j DNAT  --to-destination my_ip:8081

Насколько я вижу, это правило _весь_ трафик перекинет на порт 8081


Правильно ли я понимаю, что снаружи доступен только порт 8080 ? и 
недоступен 8081 ?


Однако, весело у вас устроено
- приходящие извне пакеты на порт 8080 перенаправляются на порт 8081
- слушающий там nginx отдаёт статику и остальное проксирует на порт 8080
- iptables не трогает эти пакеты, ибо они идут с localhost
- на порту 8080 слушает Апач 
- исходящие пакеты проделывают аналогичный непрямой путь, только в
   обратном направлении

Думаю, причина "заиканий" в хаотических задержках, вносимых iptables с 
включённым NAT.



Я бы сделал так :
- nginx слушает на порту 8080 и
   - отдаёт статику и *.mp3
   - остальное проксирует на порт 8081
- Апач слушает на порту 8081 и отдаёт html и *.m3u

Т.е. "поменял бы портами" Апач и nginx и выбросил бы излишний iptables.

Конфигурация nginx примерно такая:

     server {
         listen       83.172.16.22:8080;
         server_name  hostname.domain;

         location ~* \.(avi|mp3|mov|ogg|gif|jpg|css|js)$ {
             root   /web/hostname/htdocs/music_new;
         }

         location / {
             proxy_pass http://127.0.0.1:8081/;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Host $host;
         }
     }


-- 
Best regards,
Andrew Kopeyko <kaa at zvuki.ru>
http://www.zvuki.ru/ sysadmin






More information about the nginx-ru mailing list