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.log
和 error.log
找出原因,文件的目录 /usr/local/nginx/logs
或 /var/log/nginx
。