nginx提供静态内容

半兽人 发表于: 2016-03-10   最后更新时间: 2016-03-10  
  •   1 订阅,963 游览

提供静态内容


nginx提供了访问外部文件的能力(如图像或静态html页面),根据不同的要求,文件在不同的本地目录:例如:/data/www (其可包含HTML文件)和/data/images(包含影像)。只要配置文件编辑和建立有2个location块。


首先,创建 /data/www 目录,添加一个index.html,在创建/data/images,在放点图片进去。

接下来,打开配置文件,默认配置文件已经包括了几个服务模块的例子,大多是注释了,现在注释所有这些块,我们开始自己创建一个新的服务模块。

http {
    server {
    }
}
通常,配置文件包括一些server块通过监听端口和server名来区分,一旦nginx决定哪个server处理一个请求,它测试请求对server块中定义的localtion指令的参数头中指定的URL。


添加下面的代码,到server块中。

location / {
    root /data/www;
}
从请求的URL对比,这个location块指定了”/“前缀,用于匹配请求,URL被添加到根指令指定的路径,也就是说,到/data/www上,以形成路径请求到本地文件系统。如果有多个location块,nginx选择一个最长的前缀。上面的location块提供最短的前缀,长度为1,所以只有所有其他的location块不能提供匹配,”/”块才被使用。


接下来,添加第二个location块

location /images/ {
    root /data;
}
它开始匹配“/images”(location / 也符合这样的请求,只匹配更短的前缀)


server块现在看起来是这样的:

server {
    location / {
        root /data/www;
    }

    location /images/ {
        root /data;
    }
}

默认监听标准端口80,在本地机器上访问 http://localhost/,访问/images/时,服务器将从/data/ images目录响应。例如,HTTP://localhost/images/example.png ,nginx的将请求发送到/data/images/example.png文件。如果这些文件不存在,nginx的将发送指示404错误的响应。不会被映射到/data/www目录上。例如,访问 HTTP://localhost/some/example.html ,nginx将请求发送到/data/www/some/example.html文件。

要使用新的配置,如果nginx已经启动,则可以使用下面命令进行重载:


nginx -s reload
如果出错,你可以通过 access.log 和 error.log找出原因,文件的目录 /usr/local/nginx/logs 或 /var/log/nginx.








发表于: 1年前   最后更新时间: 1年前   游览量:963
上一条: nginx配置文件的结构
下一条: nginx配置一个简单的代理服务器
评论…

  • 评论…
    • in this conversation
      提问