nginx目录浏览(顺便美化)
nginx开启目录浏览
环境搭建
本次在我的win10上安装,所以阅读的相关文档是win10系统下的。
首先,下载nginx/Windows的压缩包。
接着,找个位置将其解压,并在cmd中cd到解压位置,将其运行。
# 进入目录
D:\>cd nginx-1.19.2
# 启动运行
D:\nginx-1.19.2>start nginx.exe
# 查看进程
D:\nginx-1.19.2>tasklist /fi "imagename eq nginx.exe"
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
nginx.exe 22300 Console 11 13,092 K
nginx.exe 24444 Console 11 13,428 K
启动失败看错误报告,详情见参考文章里的第一篇
相关nginx操作指令:
指令 | 描述 |
---|---|
nginx -s stop | fast shutdown |
nginx -s quit | graceful shutdown |
nginx -s reload | changing configuration, starting new worker processes with a new configuration, graceful shutdown of old worker processes |
nginx -s reopen | re-opening log files |
配置修改
编辑:D:\nginx-1.19.2\conf\nginx.conf
在http{}里的server{}里修改相关配置:
listen 80;
server_name localhost;
charset utf-8;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
# 设置要显示目录的路径
root modao;
# 开启目录浏览
autoindex on;
# 切换为 off 后,以可读的方式显示文件大小,单位为 KB、MB 或者 GB
autoindex_exact_size off;
# 以服务器的文件时间作为显示的时间
autoindex_localtime on;
}
每次修改配置后,都需要运行
nginx -s reload
才能看到修改。
显示美化
这里介绍简单的美化,下载插件,将里面的.autoindex
目录放到资源所在目录,修改相关配置:
listen 80;
server_name localhost;
charset utf-8;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
# 设置要显示目录的路径
root modao;
# 开启目录浏览
autoindex on;
# 切换为 off 后,以可读的方式显示文件大小,单位为 KB、MB 或者 GB
autoindex_exact_size off;
# 以服务器的文件时间作为显示的时间
autoindex_localtime on;
add_before_body /.autoindex/header.html;
add_after_body /.autoindex/footer.html;
}
另一个美化方法可参考:https://github.com/Naereen/Nginx-Fancyindex-Theme
设置为开机启动:
这里采用一种简单方便的办法。新建一个nginx快捷方式放到C:\Users\[用户名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
目录即可。
win10下,显示的目录里如果有中文,将会无法访问
参考文章
乱码探究
win10下,nginx中文乱码,设置:charset utf-8,gb2312;
解决了中文乱码,但是nginx无法访问中文文件名,目前无法解决,除非系统使用utf-8
[win10的utf-8目前无法获得良好的体验]
网上有人说在后端个别目录用APACHE代理了,APACHE支持中文码:
location /~doc/ { proxy_pass http://127.0.0.1:81/;#apache server }
==Linux下两个工具convmv和iconv==
convmv就是更改文件名编码方式的一个工具。比如
sudo convmv -f gbk -t utf-8 -r –notest /home
就是将/home目录下原来文件名是gbk编码方式的全部改为utf-8格式的。这里 -f 后面为原来的编码方式,-t 后面是要更改为的编码方式, -r 表示这个目录下面的所有文件, –notest 表示马上执行,而不是仅仅测试而已。另外这命令好像要root才能执行,因此要加上 sudo。
iconv是更改文件编码方式的一个工具:
sudo iconv -f gbk -t utf-8 -o outfile infile
-f为原来的编码方式,-t 为输出文件的编码方式, -o表示输出文件名,这利用outfile表示,最后跟上要更改编码方式的文件名sourcefile 。
通过这两个工具,中文文件乱码的问题终于解决。