今天又折腾了一下,将网站里的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命令去生成秘钥文件(文件中包含用户信息)
执行一下命令,生成用户秘钥文件
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 中就添加了一个用户
此时在去访问服务器看一下,会弹出用户认证窗口
到目前为止,就真正完成了静态资源服务器的搭建