使用nginx搭建我的文件服务器
前言
最近又入手了一台腾讯云服务器,时长5年半(卡bug来的0.0),系统选择了CentOS7.3,想在其上搭建一个文件服务器,一是来存储自己的一些资料和文件,二还可以把相关学习资料分享给大家,三就是回顾学习下nginx的相关知识点。
开始安装
1 | yum -y update |
安装完后查看niginx版本、安装目录和配置目录
1 | nginx -v |
1 | whereis nginx |
配置
可以看到nginx的配置文件位于/etc/nginx/nginx.conf 使用cat命令查看此文件看到:
1 | include /etc/nginx/default.d/*.conf; |
这表示此文件的配置内容也包含default.d目录下所有的conf文件的配置内容,我们可以把自己的配置信息放置此目录下。
到此default.d目录下创建my-files.conf文件,并使用vim对其编辑:
1 | server { |
相关配置介绍:
listen:nginx监听的端口
charset:指定字符集编码,防止浏览器显示乱码
server_name:服务器名
root:文件服务器目录
autoindex:目录索引 开启 不开启会报403
autoindex_exact_size:显示文件大小
autoindex_localtime:显示时间
if后的代码是通过正则表达式获得文件后缀名,如果属于小括号里的文件名就给响应信息添加响应头Content-Disposition : ‘attachment’; 表示点击后不是浏览器打开而是直接下载,如果需要在线预览功能可以去掉这段代码。
allow和deny在公司里用的多,可以限制ip访问,并且allow可以有多个。由于我这个资源是开放式的,所以给注释掉了。
启动
修改完后启动nginx,如图所示:
问题:
当一切配置好,启动nginx服务器,分别使用谷歌浏览器和火狐浏览器打开页面,点击同一个txt或者pdf格式的文件,发现一个奇怪的现象:在火狐浏览器点击后是正常下载文件,但是在谷歌浏览器上点击后是预览文件!!!!
后来通过开发者工具查看响应头发现,火狐浏览器响应头如下:
谷歌浏览器响应头如下:
原因是多了个冒号 “:”,不清楚为什么谷歌浏览器解析这个响应头会这样,所以nginx.conf配置,改为:
add_header Content-Disposition 'attachment';
即可。
命令:
最后介绍几个在CentOS7服务器中nginx最常用三个命令:
nginx启动:nginx
nginx重新加载:nginx -s reload
nginx停止: nginx -s stop
在CentOS7中,nginx已经被系统加入到系统服务管理器指令中作为系统服务,因此还可以这样:
systemctl start nginx
systemctl restart nginx
systemctl stop nginx
- Title: 使用nginx搭建我的文件服务器
- Author: 薛定谔的汪
- Created at : 2018-03-08 16:30:02
- Updated at : 2023-11-17 19:37:37
- Link: https://www.zhengyk.cn/2018/03/08/server/Nginx-File-Server/
- License: This work is licensed under CC BY-NC-SA 4.0.