【Nginx二】Nginx作为静态文件HTTP服务器

 Nginx作为静态文件HTTP服务器

  1. 在本地系统中创建/data/www目录,存放html文件(包括index.html)
  2. 创建/data/images目录,存放imags图片
  3. 在主配置文件中添加http指令
http {
    server {
        listen       80;
        server_name  localhost;
    }
}

      说明:在 http指令中可以定义多个server指令,通过监听端口号以及server name进行来区分每个server。当Nginx通过判断请求Header中url(服务器名字、端口号以及URI)以及 Server指令下定义的location指令来决定使用哪个服务器(以及匹配Server指令下的哪个location指令)来处理请求

  4. 在server指令中添加location指令

location / {
    root /data/www;
}

      说明:在 server指令中,可以添加多个location指令以匹配不同的请求,不同的请求到不同的系统路径下获取资源。在上面的location指令 中,location之后的“/”称为前缀。location指 令指定了"/"前缀与请求的URI进行比较(从左向由,匹配成功也就意味着RequestURI.startWith(前缀))。对于匹配上的请 求,RequestURI将添加到由root指令指定的path之后,因为这里的前缀是“/”,所以最后得到请求对应到文件系统上路径是/data /www/RequestURI。如果有多个location匹配成功,则匹配前缀最长的那个。这个例子中,"/"是最短的后缀,因此只有当前server指令下所有其它的location定义的后缀匹配失败,才会匹配成功"/"

5. 在Server中添加如下的配置片段

location /images/ {
    root /data;
}

说明:这段配置将匹配请求为以/images/开头的请求。以/images/开头的请求在4中定义的/也会匹配,但是它的长度没有/images/长,所以,对于/images/开头的请求,这个配置将被选中,并且对应到文件系统的路径是/data/RequestURI

  • 对于请求http://localhost/,只有4中的location符合,那么nginx将返回/data/www/index.html
  • 对于请求http://localhost/images/example.png,那么5中定义的location符合,那么nginx将返回/data/images/example.png
  • 对于请求http://localhost/some/example.html,由于5中定义的location不符合,只有4中定义的符合,那么/data/www/some/example.html文件将被返回
  • 对于上面的请求,如果Nginx从文件系统找不到指定的文件,Nginx将返回404错误

6. 完成如上配置后,运行nginx -s reload重新加载配置文件,可以测试上面的规则是否正确

猜你喜欢

转载自bit1129.iteye.com/blog/2115055