Nginx静态文件服务配置

Nginx一大经典使用场景就是用来提供静态文件服务,例如图片、html、脚本、样式文件等,这些文件没有必要交给 tomcat、jboss等应用服务器处理,使用 Nginx 直接处理将大大提高性能。用 Nginx 来提供静态文件服务十分简单,只需要添加一个 server块指令即可。

基本配置

假设我们的静态文件位于 /Users/test 目录下,文件服务基本配置如下:

    server {
        client_max_body_size 4G;
        listen  0.0.0.0:8888;  ## listen for ipv4; this line is default and implied
        server_name localhost;
        root /Users/test/;
        location / {
        }
    }

location指令用来映射请求到本地文件系统。root 指令用来指定文件在服务器上的基路径。

配置索引

    server {
        client_max_body_size 4G;
        listen  8889;  ## listen for ipv4; this line is default and implied
        server_name localhost;
        root /Users/test;
        location / {
            autoindex on; 
            autoindex_exact_size on;
            autoindex_localtime on;
        } 
    }

执行sudo nginx -s reload重新加载配置。在浏览器中访问http://127.0.0.1:8889/,即可显示root指定的/Users/test目录下的内容。

设置密码

搭建文件服务器有时候不想让别人任意访问,想做成一个私有的该怎么办呢,这个时候我们可以用到nginx自带的认证模块。 需配置auth_basicauth_basic_user_file字段。

    server {
        client_max_body_size 4G;
        listen  8890;  ## listen for ipv4; this line is default and implied
        server_name localhost;
        root /Users/test/;
        location / {
            auth_basic   "Restricted";
            auth_basic_user_file /usr/local/etc/nginx/pass_file;
            autoindex on;
            autoindex_exact_size on;
            autoindex_localtime on;
        }
    }

生成用户名和密码

htpasswd -c -d pass_file test

这样就在/usr/local/etc/nginx/pass_file文件中添加了一个用户。在访问http://localhost:8890/时,会弹窗提示输入用户名和密码进行验证,然后就可以正常访问了。

参考

本文由 络壳 原创或整理,转载请注明出处