Nginx服务器目录遍历和认证配置

时间:2024-05-19 20:55:15

目录遍历

Nginx服务器默认是不允许用户以浏览目录的方式去访问资源的。如果想让nginx这种WEB服务器能实现类似FTP服务器下载功能,Nginx是提供相应的配置去实现的,在nginx配置文件的http模块或相应的server及location模块下添加以下配置语句就可以实现。

配置命令如下:

#目录浏览功能(默认off)
autoindex on;

#默认on:显示文件的确切大小,单位bytes;
#改为off:显示文件大概大小,根据文件大小显示合适单位大小(KB,MB或者GB)。
autoindex_exact_size off;

#默认off:显示文件时间为GMT时间
#给为off:显示文件时间为文件的服务器时间
autoindex_localtime on;

#文件名为中文时转码
charset utf-8;

 

配置前页面:

Nginx服务器目录遍历和认证配置

配置后页面:

Nginx服务器目录遍历和认证配置

登录认证

Nginx服务器自身的插件模块中的ngx_http_auth_basic_module模块提供服务器登录认证功能,默认情况下nginx进程中包含该模块。如果想让客户端登录服务器时认证。在nginx配置文件的http模块或者其中的server模块添加以下配置语句就可以实现。

配置命令如下:

#浏览器弹框的提示信息
auth_basic "Please complete user authentication";

#设置认证时的用户名,密码文件
auth_basic_user_file /usr/local/nginx/conf/htpasswd.user;

我们可以用apache密码生成工具htpasswd生成密码文件。

#创建一个加密文件并添加一个用户名为username密码为password的用户
htpasswd -bc /usr/local/nginx/conf/htpasswd.user username password

#向密码文件中添加用户名为lijd密码为lijd的用户
htpasswd -b /usr/local/nginx/conf/htpasswd.user lijd lijd

如下图:

Nginx服务器目录遍历和认证配置

设置后完成后重启nginx并登录页面如下:

Nginx服务器目录遍历和认证配置

输入正确的用户名及密码认证成功后正常访问服务器,如下图:

Nginx服务器目录遍历和认证配置

认证失败后返回认证错误码(401 Authorization Required)如下图:

Nginx服务器目录遍历和认证配置