nginx设置静态内容

半兽人 发表于: 2016-03-10   最后更新时间: 2018-04-25 23:19:01  
{{totalSubscript}} 订阅, 12,728 游览

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,在本地机器上访问 https://localhost/,访问/images/时,服务器将从/data/images目录响应。例如,https://localhost/images/example.png,nginx的将请求发送到/data/images/example.png文件。如果这些文件不存在,nginx的将发送指示404错误的响应。不会被映射到/data/www目录上。例如,访问 https://localhost/some/example.html,nginx将请求发送到/data/www/some/example.html文件。

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

nginx -s reload

如果出错,你可以通过 access.logerror.log找出原因,文件的目录 /usr/local/nginx/logs/var/log/nginx

更新于 2018-04-25

查看nginx更多相关的文章或提一个关于nginx的问题,也可以与我们一起分享文章