在防火墙后运行的Ant Media Server的代理设置

问题描述

我有Ant Media Server社区版在现场服务器硬件上的KVM VM服务器上运行(现在进行测试),并希望为我们的小NPO员工提供有关Intranet的操作方法视频到防火墙内外。我们使用Nginx代理服务器通过许多不同的Web,聊天,Wiki,代码库等服务器和功能来执行此操作,该代理服务器管理每个服务器的Lets Encrypt证书,并提供对现场或在家中人员的访问权限。我们已经在路由器上正确设置了端口转发功能,并且一切正常。

当我以这种方式代理Ant Media Server时,可以很好地进入admin GUI(它直接出现在端口5080旁边的端口443上。但是流不能通过代理工作)-在内部还是外部防火墙-所有端口在媒体服务器和代理服务器中均打开。它显示了带有VOD链接的“流直播时将自动开始播放”消息的网页,然后只是停止-不启动播放器或流视频。通过端口5080直接访问时,VOD视频可以正确播放。

我意识到,也许您已采取措施确保人们无法执行我试图做的事情-绕开了不包含SSL功能的社区版许可功能。如果是这样,请让我知道。

我知道有一个功能可以直接在Ant Media Server上通过Lets Encrypt允许SSL。但是我无法将公共端口80转发到Ant Media Server,以允许进行Lets Encrypt证书更新-端口80已转发到我上面提到的专用代理/证书机器,这对我们来说做得很好。

否则,如果这应该可行,并且任何人都可以查看我的设置并告诉我有什么问题,那么这是我的proxy_pass设置:

---------------proxy_pass directive--------------------
server {
    listen 443 ssl http2;
    server_name  antmedia.my.org;
    add_header 'Access-Control-Allow-Origin' '*';
    location / {
        proxy_pass http://192.168.254.194:5080;
        proxy_redirect http://192.168.254.194:5080 https://antmedia.my.org;
    }
}

非常感谢!!我认为,Ant Media为Wowza争取他们的钱真是太酷了!

此docker-的Nginx.conf设置为stock / default-为反向代理角色进行了优化。这里只有列出的活动行:

    user abc;
    worker_processes 4;
    pid /run/Nginx.pid;
    include /etc/Nginx/modules/*.conf;
    
    events {
            worker_connections 768;
    }
    

    http {
            sendfile on;
            tcp_nopush on;
            tcp_nodelay on;
            keepalive_timeout 65;
            types_hash_max_size 2048;
            variables_hash_max_size 2048;
            large_client_header_buffers 4 16k;
            client_max_body_size 0;
            include /etc/Nginx/mime.types;
            default_type application/octet-stream;
            access_log /config/log/Nginx/access.log;
            error_log /config/log/Nginx/error.log;
            gzip on;
            gzip_disable "msie6";
            proxy_connect_timeout       600;
            proxy_send_timeout          600;
            proxy_read_timeout          600;
            send_timeout                600;
            include /etc/Nginx/conf.d/*.conf;
            include /config/Nginx/site-confs/*;
            lua_load_resty_core off;
    }

解决方法

您可以尝试以下吗?

server {
        listen 443 ssl;
        ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
        server_name yourdomain.com;

        location / {
            proxy_pass http://192.168.254.194:5080;
            proxy_http_version 1.1;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
        }
    }