nginx 目录优化保姆级教程
记录一次nginx编译
众所周知,做一个最简单的网盘就是使用web服务了,但是不管是nginx和apache或者apache2的默认网页目录都太丑了,所以怎么能自定义修改默认的目录风格呢?
以nginx为例,官方的autoindex模块只是简单的提供了以下几个选项
命令 | 默认值 | 可选值 | 作用域 | 作用 |
---|---|---|---|---|
autoindex | off | on/off | http/server/location | 开启目录浏览功能 |
autoindex_format | html | html/xml/json/jsonp | same | html是以网页功能展示目录内容 |
autoindex_exact_size | on | on/off | same | 开启为以字节,关闭为KB,MB,GB显示文件/autoindex_format为html时有效 |
autoindex_localtime | off | on/off | same | 开启以服务器的文件时间作为显示的时间/autoindex_format为html时有效 |
首先安装nginx, 注意!这里演示的是安装后编译再增加,也可以编译时添加模块再安装,这里就不在做过多的展示
1 | yum or apt update && yum or apt upgrade |
根据根据官方给的autoindex模版,一个简单的web网盘配置如下
1 | http |
接着我们vi /etc/nginx/nginx.conf把上面目录配置复制进去,这里直接写在全局模块了,也可自定义模块
然后输入nginx -t或/sbin/nginx -t测试,输出success则继续输入systemctl restart nginx或/sbin/nginx -s reload
接着输入hostname -I,查看本机地址,注意可能会有多个地址,自己分辨
注意:上面只是获取局域网地址,如果你是部署云请使用以下命令或脚本
1 | curl -Ls ip.tool.lu |
然后打开浏览器输入你的ip地址,但是忘了一件事,开启端口,我使用的是rocky:
同时这里要注意,如果是云,图省事就直接在控制台把nginx配置所对应的端口打开,我这里以常见80为例
1 | firewall-cmd --zone=public --add-port=80/tcp --permanent |
规则生效需要重启
1 | firewall-cmd --reload |
ufw和iptables
1 | ufw allow 80 |
接着刷新一下,可以看见了
可以看到,很鸡儿丑。接下来我们就编译一个主题给他
首先继续输入nginx -V或者/sbin/nginx -V,我们可以看到版本号和编译的模块
接着打开nginx.org,选择相应的版本使用wget下载该链接
解压到当前目录
1 | tar -xf nginx-1.14.2.tar.gz |
进入该目录
1 | cd nginx-1.14.2 |
把nginx主题模块拖进来
1 | git clone https://github.com/aperezdc/ngx-fancyindex/releases/download/v0.5.2/ngx-fancyindex-0.5.2.tar.xz |
解压到当前目录
1 | tar -xf ngx-fancyindex-0.5.2.tar.xz |
然后前面的nginx -V的已编译信息直接复制过去,再跟上添加的模块路径执行脚本即可
1 | ./configure 你已经安装编译的模块,这里太长,我就不复制了后面跟上要添加的模块就ok --add-module=./ngx-fancyindex-0.5.2 |
接着编译,不要install,不然配置文件会被覆盖,因为你是安装后编译这个要注意
1 | make |
注意:如果make这里很大几率报错,原因是缺少相关的依赖,所以请点击这里查询需要的依赖,再安装对应的编译依赖包
完事后把编译好的二进制程序nginx替换掉现有的nginx,请先暂停nginx service
编译成功会在objs目录下生成一个新的nginx二进制可执行程序
1 | /sbin/nginx -s stop 或者 systemctl stop nginx |
现在打开网址可以看到一个雏形,还是丑。我们继续,先进入nginx目录里
1 | cd /you/path/www |
接着下载主题
1 | git clone https://github.com/lanffy/Nginx-Fancyindex-Theme |
再让fancyindex配置文件生效,打开nginx配置文件增加一行
1 | include /you/path/fancyindex.conf; |
测试nginx重启生效
1 | /sbin/nginx -t && /sbin/nginx -s reload |
最终效果,也可以访问这里查看我做的效果
总结:其实还可以编译其他相关的nginx模块,这里就不再过多叙述,有兴趣的可前往github或官网搜索(需下载对应依赖,报错会提示)…而且nginx还有很多有意思的配置,比如负载均衡,反向代理,正向代理等等…以后慢慢分享相关的玩法配置,在这里为什么我不使用apache呢?想必大家都知道log4j2零day漏洞了,这里就不再过多说明。但是编译过程最难的还是缺少相关依赖,对于一般人来说还是比较困难。总而言之,言而总之nginx是一个很高效且优质的代理web站点。