原创

使用nginx搭建文件服务器

前言

今天又折腾了一下,将网站里的js、css和img都提出去了,又弄了一个单独的文件服务器(nginx),用来存放这些静态文件。

目的是啥?cdn类似吧。

一:启用新二级域名访问静态文件

# 进入到nginx的配置文件目录下
cd /etc/nginx/conf.d
# 新建静态文件服务器的配置文件
vim cdn.conf
# 添加如下配置server {
    listen 80;
    server_name cdn.flyat.cc;
    root /var/www/domain/cdn/static;

    #缓存配置
    location ~ .*\.(jpg|png|ico)(.*){
        expires 30d;
    }
    #缓存配置
    location ~ .*\.(js|css)(.*){
        expires 7d;
    }
 
    location / {
 	add_header Access-Control-Allow-Origin *;
	auth_basic "Restricted";## 输入密码时的提示语
        auth_basic_user_file /etc/nginx/pass_file;## 显示认证时的用户密码文件存放路径
	autoindex on; ##显示索引
        autoindex_exact_size on; ##显示大小
        autoindex_localtime on;   ##显示时间
        # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # proxy_set_header X-Forwarded-Proto $scheme;
        # proxy_set_header X-Forwarded-Port $server_port;
    }
}

(至于怎么安装nginx,由于不在本文记录范围内,请自行百度,本篇不做额外介绍)

配置完成后,重新加载下 nginx的配置文件(免重启了)

service nginx reload

OK这样的话就已经配置好了一台静态资源服务器,可以通过指定的server_name直接访问静态资源文件了

但是这样真的好了吗?因为这台服务器并没有加限制,所以任何人都能访问到,如果不想让别人访问,只想弄成一个私有的服务器,这时候可以通过nginx自带的认证模块加以限制。

此处用到的两个配置项

# 输入密码时的提示语
auth_basic "Restricted";
# 显示认证时的用户密码文件存放路径
auth_basic_user_file /etc/nginx/pass_file;

最后完整的cdn.conf内容为

server {
    listen 80;
    server_name cdn.flyat.cc;
    root /var/www/domain/cdn/static;

     #缓存配置
    location ~ .*\.(jpg|png|ico)(.*){
        expires 30d;
    }
    #缓存配置
    location ~ .*\.(js|css)(.*){
        expires 7d;
    }
 
    location / {
 	add_header Access-Control-Allow-Origin *;
	auth_basic "Restricted";## 输入密码时的提示语
        auth_basic_user_file /etc/nginx/pass_file;## 显示认证时的用户密码文件存放路径
	autoindex on; ##显示索引
        autoindex_exact_size on; ##显示大小
        autoindex_localtime on;   ##显示时间
        # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # proxy_set_header X-Forwarded-Proto $scheme;
        # proxy_set_header X-Forwarded-Port $server_port;
    }
}

二:htpasswd命令去生成秘钥文件

这儿还要用到htpasswd命令去生成秘钥文件(文件中包含用户信息)

执行一下命令,生成用户秘钥文件

iZ25t60Z:/etc/nginx# htpasswd -c -d /etc/nginx/pass_file xxx
New password:
Re-type new password:
Adding password for user xxx

这样就在/etc/nginx/pass_file 中就添加了一个用户

此时在去访问服务器看一下,会弹出用户认证窗口

使用nginx搭建文件服务器文章的图片

到目前为止,就真正完成了静态资源服务器的搭建


正文到此结束