NGINX 302 重定向/代理

NGINX 302 重定向/代理

我有一个在端口 8000 上运行的 icecast 服务器,但是当我使用 NGINX 设置代理时,我似乎无法让它看起来像原始服务器。

我想知道有没有办法让 NGINX 停留在 8000 端口,但允许来自 80 端口的流量

 server {
  listen 80;
  listen [::]:80;
  server_name example.com;

  gzip on;
  gzip_proxied any;
  gzip_comp_level 4;
  gzip_types text/css application/javascript image/svg+xml;

  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection 'upgrade';
  proxy_set_header Host $host;
  proxy_cache_bypass $http_upgrade;


 location / {
  proxy_pass http://127.0.0.1:8000/;
 }
}

我也尝试过

 server {
  listen 80;
  listen [::]:80;
  server_name onlineradio.example.com;

  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-Host $host;
  proxy_set_header X-Forwarded-Server $host;

 location / {
  proxy_set_header Accept-Encoding "";
  proxy_pass http://127.0.0.1:8000/;
  sub_filter_types application/xspf+xml audio/x-mpegurl audio/x-vclt text/css text/html text/xml;
  sub_filter ':8000/' '/';
  sub_filter '@localhost' '@onlineradio.example.com';
  sub_filter 'localhost' $host;
  sub_filter 'Mount Point ' $host;
 }
 }

但是当我尝试通过我的 Nodejs 应用程序连接到它时,使用包时它不会加载var icecast = require('icecast-stack')

我知道该插件会查找icy-metainticecast 流所具有的标头。

据我了解,我的 NGINX 需要传递该标头

我需要传递的标题是它们来自https://stream.radiomedia.com.au:8003/stream

Headers(16) °
  °String: 'Server: Icecast 2.4.4'é à
    key: 'Server',
    value: 'Icecast 2.4.4'
  è,
  °String: 'Connection: Close'é à key: 'Connection', value: 'Close' è,
  °String: 'Date: Tue, 08 Nov 2022 06:53:55 GMT'é à
    key: 'Date',
    value: 'Tue, 08 Nov 2022 06:53:55 GMT'
  è,
  °String: 'Content-Type: audio/mpeg'é à
    key: 'Content-Type',
    value: 'audio/mpeg'
  è,
  °String: 'Cache-Control: no-cache, no-store'é à
    key: 'Cache-Control',
    value: 'no-cache, no-store'
  è,
  °String: 'Expires: Mon, 26 Jul 1997 05:00:00 GMT'é à
    key: 'Expires',
    value: 'Mon, 26 Jul 1997 05:00:00 GMT'
  è,
  °String: 'Pragma: no-cache'é à key: 'Pragma', value: 'no-cache' è,
  °String: 'icy-br:128'é à key: 'icy-br', value: '128' è,
  °String: 'ice-audio-info: ice-samplerate=44100;ice-bitrate=128;ice-channels=2'é à
    key: 'ice-audio-info',
    value: 'ice-samplerate=44100;ice-bitrate=128;ice-channels=2'
  è,
  °String: 'icy-br:128'é à key: 'icy-br', value: '128' è,
  °String: 'icy-description:The Sound Of Indie'é à
    key: 'icy-description',
    value: 'The Sound Of Indie'
  è,
  °String: 'icy-genre:indie'é à key: 'icy-genre', value: 'indie' è,
  °String: 'icy-name:DRN1'é à key: 'icy-name', value: 'DRN1' è,
  °String: 'icy-pub:1'é à key: 'icy-pub', value: '1' è,
  °String: 'icy-url:http://DOMAIN GO HERE à
    key: 'icy-url',
    value: 'http://DOMAIN GO HERE.com'
  è,
  °String: 'icy-metaint:16000'é à key: 'icy-metaint', value: '16000' è,
  server: 'Icecast 2.4.4',
  Server: 'Icecast 2.4.4',
  connection: 'Close',
  Connection: 'Close',
  date: 'Tue, 08 Nov 2022 06:53:55 GMT',
  Date: 'Tue, 08 Nov 2022 06:53:55 GMT',
  'content-type': 'audio/mpeg',
  'Content-Type': 'audio/mpeg',
  'cache-control': 'no-cache, no-store',
  'Cache-Control': 'no-cache, no-store',
  expires: 'Mon, 26 Jul 1997 05:00:00 GMT',
  Expires: 'Mon, 26 Jul 1997 05:00:00 GMT',
  pragma: 'no-cache',
  Pragma: 'no-cache',
  'icy-br': '128',
  'ice-audio-info': 'ice-samplerate=44100;ice-bitrate=128;ice-channels=2',
  'icy-description': 'The Sound Of Indie',
  'icy-genre': 'indie',
  'icy-name': 'DOMAIN',
  'icy-pub': '1',
  'icy-url': 'http://DOMAIn GIO here.com',
  'icy-metaint': '16000'

答案1

曾经有关于此主题的先前问题

一般不建议使用反向代理 Icecast,因为很难覆盖所有基础并使一切正常运行。事情可能会以微妙和意想不到的方式中断。

话虽如此,有人将他们的 NginX 设置发布到 StackOverflow,但这又是非常不简单的。

更容易让 Icecast 监听端口 80 和 443。然而这需要专用的 IP 地址才能工作。

相关内容