Nginx 搭建文件服务器

Nginx 的地位不言而喻, 几乎所有以 java 为主要开发语言的的公司都会用到,所以 Nginx 就成了 java 开发人员必须掌握的技能之一。

学习 Nginx 说白了就是要学习它的指令(directive), 本文涉及到的指令有:server、location、alias、authoindex。

下面就逐一介绍这些指令,最后使用这些指令来搭建一个文件服务器。

1. server

这里涉及到一个技术:虚拟托管(virtual hosting),nginx 使用 server 指令来支持该技术。

虚拟托管是一种在单个服务器(或服务器池)上托管多个域名(对每个域名分别进行处理)的方法。这允许一台服务器共享其资源,例如内存和处理器周期,而不要求提供的所有服务使用相同的主机名。虚拟主机这一术语通常用于指web服务器,但其原理确实适用于其他互联网服务。

2. location

    根据 uri 进行路由匹配的指令,支持前缀匹配和正则匹配,优先前缀匹配,然后才是正则匹配。

# 使用 =, 精准匹配
location = / {
    [ configuration A ]
}
# 前缀匹配,以最长匹配为准
location / {
    [ configuration B ]
}
location /documents/ {
    [ configuration C ]
}
# ^~ 表示: 最长前缀匹配后,不再检查正则匹配
# 注意:~^ 和 ~ ^ 则表示正则匹配, 只有 ^ 不是正则,会报404!
location ^~ /images/ {
    [ configuration D ]
}
​
# 正则匹配以(~*或~)开始: ~* 表示大小写不敏感(默认), ~ 大小写敏感
# 正则匹配顺序,按照书写顺序,匹配到就不再往下匹配
location ~* \.(gif|jpg|jpeg)$ {
    [ configuration E ]
}
​
# /  匹配configuration A, (精准匹配)
# /index.html  匹配configuration B,  (前缀匹配)
# /documents/document.html 匹配configuration C, (最长前缀匹配) 
# /images/1.gif 匹配 configuration D, (前缀匹配后,立刻停止检查)
# /documents/1.jpg 匹配 configuration E. (前缀匹配后,又继续正则匹配)
​

3. alias

    为指定的 location 定义一个替换项。

# 当访问 /i/top.gif,  /data/w3/images/top.gif 文件被返回.location /i/ {    alias /data/w3/images/;}

4. autoindex

    打开或关闭目录列表

以上指令都比较简单,相对复杂点的就是 location ,我曾经解决线上问题而深入研究过匹配规则。

最后使用这 4 个指令搭建一个简单的文件服务器:

server {        listen       80;        server_name  localhost;        location / {            root   html;            index  index.html index.htm;        }        location /doc/ {            alias   F:/;            autoindex on;                          }}

配置后,重启nginx,效果如下:


如果觉得还不错的话,关注、分享、在看, 原创不易,且看且珍惜~

posted on 2021-07-23 15:36  XuHe1  阅读(172)  评论(0编辑  收藏  举报