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 stopfast shutdown
nginx -s quitgraceful shutdown
nginx -s reloadchanging configuration, starting new worker processes with a new configuration, graceful shutdown of old worker processes
nginx -s reopenre-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下,显示的目录里如果有中文,将会无法访问

参考文章

nginx for Windows

windows环境nginx搭建文件服务器及美化

乱码探究

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 。

通过这两个工具,中文文件乱码的问题终于解决。