Nginx系列-基础静态文件配置

之前介绍完相关的基本配置项目之后,我们现在就手动去配置一下最基本的静态访问页面。

server配置文件的抽离

首先看一下老猫的相关nginx.cnf的配置文件
配置文件

从图上我们很清楚地看到老猫将原来的http中的server配置进行注释掉了,取而代之的是一种inlude的写法,其实include就是引入外部配置文件,这个我觉得不用解释,有开发基础的都能理解。

配置文件的抽离配置:

1
include       kd_server.conf;#表示引入外部配置

抽离文件kd_server.conf的配置信息如下:

1
2
3
4
5
6
7
8
server {
listen 88;
server_name localhost;
location / {
root html;
index kd.html index.htm;
}
}

配置静态资源文件

下面老猫 进行配置一下相关的静态文件资源,包括项目的名称。具体配置信息如下:

1
2
3
4
5
6
7
8
server {
listen 88;
server_name localhost;
#配置组装一张图片
location / {
root /home/kd;
}
}

因为之前老猫已经将部分的静态资源文件已经上传到了服务器,所以此时我们这样访问:http://xxx.xxx.128.226:88/kd_jp.jpg,就能够访问到/home/kd路径下的资源文件,这类资源文件包括jpg文件,txt文件甚至音频以及视频文件均可访问。当然我们还有另外一种路径的配置方式,如下:

1
2
3
4
5
6
7
8
server {
listen 88;
server_name localhost;
#配置组装一张图片
location /kd {
root /home;
}
}

这样配置的话,我们的请求路径上面就带上了/kd的路径,这样配置要注意的是,当访问的时候localtion后面的/kd会自动拼装到/home的后面组成全路径。如此,我们就可以访问到相关的文件,访问方式:http://xxx.xxx.128.226:88/kd/kd_jp.jpg

以上两种方式多多稍稍暴露了文件的实际路径名称。所以我们还有一种别名的配置方式,这种方式可以隐藏我们的实际路径名称,“alias” 可以为你的路径做一个别名,对用户透明。配置方式如下:

1
2
3
4
5
6
7
8
server {
listen 88;
server_name localhost;
#配置组装一张图片
location /img {
alias /home/kd;
}
}

此时,我们虽然访问的是/home/kd的路径,但是我们用/img的别名所取代了,因此,我们直接这样访问相关文件即可:http://xxx.xxx.128.226:88/img/kd_jp.jpg

对照着上述的配置方法,老猫觉得,如果现在让大家简单部署一个静态资源的项目也是比较简单的。我们可以如下进行配置:

1
2
3
4
5
6
7
8
server {
listen 88;
server_name localhost;
location / {
root /home/kd/kd-shop;
index index.html;
}
}

配置完毕之后我们只要直接访问域名+端口号即可。root后面跟着的是项目在服务器中的路径,index后面表示的是在kd-shop项目中默认的启始页面。这样我们就能访问到部署的静态资源了。

location匹配规则详解

关于location上的配置,我们除了路径可以直接填写之外,还以用相关的正则表达式进行路径的映射,从而来满足各种资源的配置。具体的配置以及介绍如下:

  • 空格:默认匹配,普通匹配

    1
    2
    3
    location / {
    root /home;
    }
  • =:精确匹配

    1
    2
    3
    location = /kd/img/kd_jpg.jpg {
    root /home;
    }
  • ~*:匹配正则表达式,不区分大小写

    1
    2
    3
    4
    #符合图片的显示
    location ~* .(GIF|jpg|png|jpeg) {
    root /home;
    }
  • ~:匹配正则表达式,区分大小写

    1
    2
    3
    4
    #GIF必须大写才能匹配到
    location ~ .(GIF|jpg|png|jpeg) {
    root /home;
    }
  • ^~:以某个字符路径开头

    1
    2
    3
    location ^~ /kd/img {
    root /home;
    }

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×