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