HTTP文件服务器搭建详细步骤(以DASH服务器为例)

前言

由于项目需要用到可以对视频文件进行存储、处理、传输的服务器,又因为项目平台是基于流媒体工业协议DASH进行搭建的,其传输的本质的HTTP的渐进式下载,所以有必要搭建一个HTTP文件服务器。

本文主要记录一下在Windows中怎么使用内置的IIS(Internet Information Service),以及MacOS中怎么使用内置Apache,来搭建HTTP文件服务器。

Windows + IIS

  1. 在Windows中开启IIS功能

    打开【控制面板】——【程序(程序和功能)】——【启用或关闭Windows功能】,找到其中的【Internet Information Services】,如果还不太清楚自己需要用到IIS里面那些具体功能的话可以把这项功能的文件夹内容全部打勾,点击【确定】。

    此处系统会自动开启IIS功能,需要等待一段时间。

  2. 计算机管理中建立网站

    在Windows搜索栏搜索并打开【计算机管理】(也可以打开【文件资源管理器】,右击左侧栏的【此电脑】——【管理】),点击左侧栏的【服务和应用程序】——【Internet Information Services (IIS)管理器】。

    此时可以看到中间内容处出现了本地的主机以及下属的网站文件夹,此处我删除了默认的网站配置,自己新建了一个。右击【网站】——【添加网站】。【网站名称】输入你想使用的网站名称,大概率不影响后续使用;【物理路径】选择用于网站访问的根目录物理路径,也就是说该网站上的所有HTML页面和其他可访问内容都应该存储在这个路径指向的文件夹中,是后续可以通过浏览器浏览的文件夹;由于我搭的是内网文件服务器,使用场景也比较简单,【绑定】保持了默认。

    点击【确定】后网站就会立刻启动啦。

  3. IIS管理中配置HTTP服务器

    在网站主页中可以看到包括ASP.NET、IIS等功能的详细配置,此处以搭建适用于DASH的HTTP文件服务器为例演示几点常用功能的配置。

    • HTTP响应标头设置:启用服务器对HTTP复杂请求的响应,使其适用于网页普通数据以外的复杂文件传输,如视频文件等。

      添加或修改标头,名称为【Access-Control-Allow-Headers】,值为【Range】;添加或修改标头,名称为【Access-Control-Allow-Origin】,值为【*】。这样可以防止CORS对跨域访问的控制。

    • MIME类型:管理被用作静态文件的文件扩展名和关联的内容类型。作为DASH服务器需要添加对.mpd和.m4s的管理。

      添加扩展名【.mpd】,MIME类型为【application/dash+xml】;添加扩展名【.m4s】,MIME类型为【video/mp4】。

    • WebDAV创作规则:授权用户访问文件服务器内容。

      添加创作规则,设置【允许访问】为【所有内容】,【允许访问此内容】为【所有用户】,打开【读取】【源】【写入】权限。

      WebDAV设置按照下图进行设置。

    • 目录浏览:允许用户浏览服务器文件目录。

      将【时间】【大小】【扩展名】【日期】按需要选中,在右侧点按【应用】。

    • 身份验证,允许匿名访问(适用于Internet不需要凭据验证身份)。

      启用【匿名身份验证】,其他验证按需设置。

重新启动网站,在本机网页浏览器中输入http://localhost/,如果网站根目录没有设置index.html,应该可以看到目录中的所有文件。

以上搭建完成,要想通过外网连接需要自行配合内网穿透等方式来实现。

MacOS + Apache

  1. 准备工作

    首先需要确保系统版本是Mac OS 10.10及以上,并通过以下命令行查看内置Apache版本:

    sudo apachectl -v
    

    使用以下命令行可以启动、停止、重启Apache,当在浏览器中输入http://localhost/时出现“It works!”字样则表示启动成功。

    sudo apachectl -k start
    sudo apachectl -k stop
    sudo apachectl -k restart
    

    文件服务器一般需要有一个根目录文件夹,为了避免权限问题可以在用户文件夹下建立根文件夹,如在/Users/[当前用户名]目录下创建名为“sites”的文件夹,并保存该路径。

  2. 配置apache

    切换工作目录到apache。

    cd /etc/apache2
    

    备份apache配置文件以防配置失误,需要恢复默认配置时只需要将备份文件覆盖回来就可以了。

    sudo cp httpd.conf httpd.conf.bak
    

    编辑httpd.conf,此处以vim编辑器为例。

    sudo vim httpd.conf
    

    修改DocumentRoot为上文自定义的根目录文件夹路径,Directory同理。原来的文件夹目录也可以用,不过是在资源库里很多操作都会被权限拦截。

    DocumentRoot "/Users/[your username]/sites"
    <Directory "/Users/[your username]/sites">
    

    修改Options一行。

    原:

    Options FollowSymLinks Multiviews
    

    改:

    Options Indexes FollowSymLinks Multiviews
    

    查找php7_module一行并启用。

    原:

    #LoadModule php7_module libexec/apache2/libphp7.so
    

    改:

    LoadModule php7_module libexec/apache2/libphp7.so
    

    查找ServerName一行并修改启用。

    原:

    #ServerName www.example.com:80
    

    改:

    ServerName localhost:80
    

    保存退出。

  3. 配置php.ini

    切换工作目录到etc。

    cd /etc
    

    拷贝php.ini文件。

    sudo cp php.ini.default php.ini
    

重启apache服务器。

sudo apachectl -k restart

重新启动网站,在本机网页浏览器中输入http://localhost/,如果网站根目录没有设置index.html,应该可以看到目录中的所有文件。如果还是显示“It works!”字样则尝试清空cache之后再打开页面。

以上搭建完成,要想通过外网连接需要自行配合内网穿透等方式来实现。

MacOS + Nginx

  1. 准备工作

    首先需要确保系统版本是Mac OS 10.13及以上,并通过以下命令行安装、更新Homebrew及查看安装Nginx相关信息:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"    // 安装Homebrew
    brew update    // 更新Homebrew
    brew info nginx    // 查询Nginx信息
    
  2. 安装并配置Nginx

    使用Homebrew安装Nginx。

    brew install nginx
    

    安装完成后,可通过一下命令行查看nginx安装目录,其中包含配置文件nginx.conf,可使用VIM等编辑器进行修改。

    cd /usr/local/etc/nginx
    sudo vim nginx.conf
    

    此处给出修改location的范例,其中包括目录更改、允许跨域访问及目录浏览。

            location / {
             root   /Users/yourusername/sites;
             index  index.html index.htm;
             add_header Access-Control-Allow-Origin *;
             add_header Access-Control-Allow-Methods *;
             add_header Access-Control-Allow-Headers *;
             autoindex on;
         }
    

    通过以下命令行可以查看nginx真正被安装的目录。

    cd /usr/local/Cellar/nginx
    

    使用以下命令行可以启动、停止、退出、重启Nginx,当在浏览器中输入http://localhost:8080/时出现Nginx界面则表示启动成功。

    nginx
    nginx -s stop
    nginx -s quit
    nginx -s reload
    

重新启动网站,在本机网页浏览器中输入http://localhost:8080/,如果网站根目录没有设置index.html,应该可以看到目录中的所有文件。

以上搭建完成,要想通过外网连接需要自行配合内网穿透等方式来实现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,635评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,628评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,971评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,986评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,006评论 6 394
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,784评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,475评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,364评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,860评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,008评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,152评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,829评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,490评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,035评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,428评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,127评论 2 356

推荐阅读更多精彩内容