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"
    
    

    修改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,应该可以看到目录中的所有文件。

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

你可能感兴趣的:(HTTP文件服务器搭建详细步骤(以DASH服务器为例))