Перенаправление сервера SHOUTcast на поддомен
Вот моя ситуация:
У меня есть сервер Linux от Scaleway, на котором размещен сервис SHOUTcast, на ip 1.2.3.4
порт 8000
Недавно я также арендовал домен myserv.com
так что я могу перенаправить сервер на.
Я изменил сервер имен на тот, который предоставлен https://dns.he.net/ и начал делать записи. Получил запись A, чтобы указать мой домен на IP-адрес, и он работает нормально. Я могу получить доступ к своему серверу, открыв myserv.com:8000
, но я бы хотел получить доступ к сервису SHOUTcast с поддоменом, а не добавлять порт. Скажем, если я открою sc.myserv.com
это будет доступ 1.2.3.4:8000
Я провел некоторый поиск и обнаружил, что мне нужно использовать записи SRV, но я полагаю, что я не настроил правильно, потому что это не работает. Что я делаю неправильно?
myserv.com. 86400 IN A 1.2.3.4
_shoutcast._tcp.sc.myserv.com. 86400 IN SRV 0 5 8000 myserv.com.
заранее спасибо
2 ответа
Понятия не имею об Apache, но если вы работаете с Nginx, это действительно просто.
Это всего лишь случай установки директивы прокси в конфигурации вашего сервера для направления всех запросов на ваш поддомен на сервер Shoutcast на вашем компьютере. Что-то вроде этого:
server {
server_name sc.myserv.com www.sc.myserv.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8000;
proxy_read_timeout 90;
proxy_redirect off;
proxy_buffering off;
tcp_nodelay on;
}
}
Если ваша статистика Shoutcast показывает IP-адрес вашего сервера вместо IP-адреса слушателя, то внутри блока сервера, но за пределами блока местоположения попробуйте добавить:
set_real_ip_from <YOUR_SERVER_IP>;
real_ip_header X-Real-IP;
real_ip_recursive on;
Вы также можете сопоставлять запросы, используя регулярное выражение, что, в свою очередь, делает полученные совпадения доступными в качестве переменных. Таким образом, директива о вашем местоположении становится:
location ~ /(.*) {
Теперь это будет захватывать все, что вы добавляете в свой прокси-адрес. Затем передать захваченный путь вдоль вашего proxy_pass становится:
proxy_pass http://127.0.0.1:8000/$1;
или для некоторых неуклюжих клиентов вы можете указать, что это mp3 в URL, например:
proxy_pass http://127.0.0.1:8000/$1/stream.mp3;
Вы не можете использовать записи SRV для этого. Там нет поддержки клиентов.
Если вы хотите получить доступ к вашей SHOUTcast/Icecast/HTTP/HTTP-подобной службе через порт по умолчанию 80, вам нужно использовать порт 80, а не 8000.