Nginx 搭建文件服务器

原创
07/23 23:10
阅读数 0

Nginx 的地位不言而喻, 几乎所有以 java 为主要开发语言的的公司都会用到,所以 Nginx 就成了 java 开发人员必须掌握的技能之一。 学习 Nginx 说白了就是要学习它的指令(directive), 本文涉及到的指令有:server、location、alias、authoindex。 下面就逐一介绍这些指令,最后使用这些指令来搭建一个文件服务器。

  1. server

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

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

  1. 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. (前缀匹配后,又继续正则匹配)
  1. alias

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


# 当访问 /i/top.gif,  /data/w3/images/top.gif 文件被返回.
location /i/ {
    alias /data/w3/images/;
}
  1. autoindex 打开或关闭目录列表

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

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


server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        location /doc/ {
            alias   F:/;
            autoindex on;
        }
}

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

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

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部