2. Nginx极速版-静态网页
静态页面配置
server {
listen 8000;
server_name admin-dev;
location / {
root /home/AdminLTE-3.2.0/dist;
index index.html index2.html index3.html;
}
}
![[image-20230814230623695.png]]
静态资源服务器配置
server {
listen 7120;
server_name static_file_server;
# 配置访问 /home/AdminLTE-3.2.0/dist/ 目录,在页面中以目录形式展示
location /dist { # URL中的路径
# 此处不要使用root,如果使用root,则会去/home/AdminLTE-3.2.0/dist/dist/中寻找index.html文件
# autoindex 需要设置为on,否则会报 403 Forbidden 错误
alias /home/AdminLTE-3.2.0/dist/; # 实际访问的路径
autoindex on;
autoindex_localtime on;
autoindex_exact_size off;
}
location /adminDir {
alias /home/AdminLTE-3.2.0/;
autoindex on;
autoindex_localtime on;
autoindex_exact_size off;
index nonhtml;
}
}
未配置 index 导致一直展示 index.html 文件内容的问题
当在 Nginx 的配置中遇到 index.html 文件时,它会被默认视为默认索引文件,并作为目录的默认页面进行展示,而不是以目录形式展示。
这种行为是由Nginx的index指令控制的。在Nginx的配置文件中,index指令用于定义默认的索引文件。当访问一个目录时,Nginx会按照index指令中定义的顺序查找文件,并将找到的第一个文件作为默认页面进行展示。
默认情况下,Nginx的index指令通常包含index.html作为第一个默认索引文件。因此,当访问一个目录时,如果存在index.html文件,Nginx会将其作为默认页面进行展示,而不是以目录形式展示。
如果你希望以目录形式展示目录内容而不是直接展示 index.html 文件,你可以修改 Nginx 的配置文件,将 index.html 从 index 指令中移除,或者将其放在其他位置。这样,当访问目录时,Nginx 将会以目录形式展示目录内容。
使用 autoindex 开启目录浏览
Nginx 默认是不允许列出整个目录的,如需此功能,需要使用到 ngx_http_autoindex_module,接下来进行详细的介绍:
启用或禁用目录列表输出
Autoindex_module 配置
Autoindex
Syntax: autoindex on | off;
Default:
Autoindex off;
Context: http, server, location
是否显示文件确切大小
若开启则会以字节大小显示,否则单位是 KB \ MB \ GB
Autoindex_exact_size
Syntax: autoindex_exact_size on | off;
Default:
Autoindex_exact_size on;
Context: http, server, location
Autoindex_localtime
指定输出目录列表中的时间是本地时间还是 UTC 时间。
Syntax: autoindex_localtime on | off;
Default:
Autoindex_localtime off;
Context: http, server, location
设置访问验证
当我们上述开启了目录浏览后,任何人都可通过80端口直接访问我们的文件目录并进行下载,所以可以通过 ngx_http_auth_basic_module 简单的对用户信息进行验证。
auth_basic_module 配置
auth_basic
Syntax: auth_basic string | off;
Default:
auth_basic off;
Context: http, server, location, limit_except
开启 auth_basic 会使用 HTTP Basic Authentication 协议对用户名密码进行校验,并会将string参数提示给用户
auth_basic_user_file
Syntax: auth_basic_user_file file;
Default: —
Context: http, server, location, limit_except
指定一个使用如下格式来保存用户名密码的文件,
comment
name1:password1
name2:password2:comment
name3:password3
官方文档
http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html
生成用户名密码提供一个在线工具:http://tool.oschina.net/htpasswd 在这里输入用户名密码后选择 Crypt 加密算法。
![[image-20230814235352518.png]]