nginx+srs,使用http2.0解决浏览器同源限制问题
nginx+srs,使用http2.0解决浏览器同源限制问题
1. 浏览器同源限制
由于历史的原因,浏览器对同源HTTP/1.x连接的并发个数有限制,典型值是6,如chrome,由于项目的需求,需要在浏览器端同时打开超过6路的视频流(视频流由SRS进行推送),因为此限制,导致前端无法在同一源(srs服务器)上请求超过5路以上的视频,常用的解决方案为域名分片,细节大家可以自行百度,这里主要尝试了nginx+HTTP2.0的方式,在此记录。
2.安装nginx与http2.0支持模块
安装过程参考了
https://www.cnblogs.com/larry-luo/p/10131987.html
整体过程比较完整,存在的问题是没有说明版本问题,nginx需要1.9以上的版本,openssl需要1.02e及以上的版本,才能够正常使用HTTP2.0,后续又参考了以下文章:
https://blog.csdn.net/lzxlfly/article/details/90119543
openssl的安装与更新部分建议参考此文章,然后按照第一篇文章的步骤进行编译、安装nginx
openssl更新后可能会造成nginx编译失败的问题,报错与openssl有关,这时需要进行一些相关的设置,
参考:https://blog.csdn.net/huangbaokang/article/details/89847725
3.nginx配置
下面为nginx的https的配置,因为http2.0只能使用https,重点为在 ==listen ==后面加 http2。
server {
listen 8443 ssl http2;
server_name localhost;
ssl_certificate key/server.crt;
ssl_certificate_key key/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
4.验证http2.0
在浏览器开发人员工具-network中打开 protocol 项,请求为 h2 即为HTTP2.0请求。
上一篇: Srs之日志的使用
下一篇: Srs之Clion编译