1. 配置文件修改
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location /demo {
root /opt;
index index.html index.htm;
}
[root@server1 nginx-1.17.8]# cd /usr/local/nginx/conf/
[root@server1 conf]# vim nginx.conf
[root@server1 conf]# cd /opt/
[root@server1 opt]# ls
[root@server1 opt]# mkdir demo
[root@server1 opt]# ls
demo
[root@server1 opt]# mv /usr/local/nginx/html/a.png /opt/demo/
[root@server1 opt]# cd demo/
[root@server1 demo]# ls
a.png
[root@server1 demo]# vim index.html
[root@server1 demo]# cat index.html
i am /demo location
[root@server1 demo]#
[root@server1 demo]# nginx -s reload
[root@server1 demo]#
2. 测试
通过上述示例,你肯定明白了一个道理,同一个配置指令,配置在不同的块中时,对应的"作用域"是不同的。
某些配置指令只能在http块中配置,某些配置指令只能在location块中配置,有些配指令既能在server块中配置又能在http块中配置,而有些配置指令只能在main区中进行配置。 其实,刚才示例中的index指令就属于那种既能在location块中配置,又能在server块中配置 ,还能再http块中配置的指令,只不过,当index指令配置在不同的块中时,对应的作用域不同。
举一反三,有些指令既能配置在server块中,也能配置在http块中,当多个server存在相同的配置时,我们可以将这些完全相同的配置指令提取到上一级的http块中,以便多个server块共用这些配置,当然,如果你在某个server中单独配置了对应的配置指令,那么这个server仍然会以自己的配置为准。