week13:实战http服务

以下以阿里云服务为例:

http服务工具示例:

  • Python3内置的简单的:
    • python -m http.server
    • 可以指定绑定的IP、端口、对应的服务器路径等
  • 专用于特定目的如简单下载的:
  • 提供完整功能的:
    • Nginx:高性能
    • Apache:老牌

课程提供的通过virtualmin管理的apache2的相关配置信息:

  • 可以在登录管理界面后,通过“服务-配置网站-显示指令”查看
  • 实际上每个同学都被分配了一个vhosts,具体配置文件位于服务器的apache配置文件所在路径/etc/apache2/sites-enabled/
  • ServerName:对应分配给每个人的域名
  • DocumentRoot:此域名对应的服务器上的实际网站文件所在的路径,也就是/home/two开头的学号/public_html
  • DirectryIndex:当用户通过浏览器访问的路径为目录即没有指定具体文件名的时候,显示哪个文件的内容。默认的文件名及排序为:
    • index.html
    • index.htm
    • index.php
    • index.php4
    • index.php5
  • Options:一些默认配置,例如-Indexes就是不允许列出目录内容,所以直接访问域名会提示403

需要彻底理解绝对路径和相对路径

  • 针对操作系统的路径
  • 针对网址的路径
  • 理解上述后,请再次注意:网址的“根目录(DocumentRoot)”或者说“/”,对应的是服务器上你的用户的“家目录(home)”也就是/home/two开头的学号下的/public_html这个目录。
  • 举例来说
    • 如果你希望用户可以看到
      http://2020.nnm.jnu.rocks/static/img/mengbi.gif 这张图片,你就需要确保服务器上存在这个文件:
      /home/two020/public_html/static/img/mengbi.gif
    • 如果你希望用户访问http://2020.nnm.jnu.rocks的时候有默认内容,你就应该在服务器的/home/two020/public_html目录下创建名为index.html或上述5个文件名中的任意一个的文件
    • 如果你希望将上面这张图显示在http://2020.nnm.jnu.rocks之中,你就应该在/home/two020/public_html/index.html中,用img标签引用这张图片
      • 使用绝对路径:<img src="/static/img/mengbi.gif" alt="懵逼">
      • 使用相对路径:<img src="./static/img/mengbi.gif" alt="懵逼">
  • 请直接到http://2020.nnm.jnu.rocks查看效果