看到了一个帖子,说lighttpd可以直接播放mkv,而nginx不行。有点奇怪,所以尝试了一下lighttpd,发现点击mkv文件还是显示下载,不能和mp4一样直接播放,但是chrome是支持mkv播放的,本地同样的文件拖入chrome是可以完美播放的。

后来去找了一下相关的原因,在stackoverflow上面发现mkv是下载还是直接播放取决于mime类型,mime类型如果是video/webm的是可以直接播放的

所以之后又尝试了一下在lighttpd和nginx指定mime类型映射列表

#lighttpd.conf
mimetype.assign = (
".mkv" => "video/wem")
#顺便记录一下alias,把/data1映射到xxx.com/file
servers.modules +=( "mod_alias")
alias.url += ( "/file" => "/data1" )


#nginx.conf
#在server > location块内加入
types{
    video/webm  mkv;
}

这样的话点击mkv文件会直接播放而不是下载。
但是chrome的文件类型支持有限,所以有些本地不能播放的网络上肯定是更加不可能的了。

Stackoverflow上的相关问题