首页 > 系统相关 >nginx配置auth_basic登录认证的方法

nginx配置auth_basic登录认证的方法

时间:2023-03-23 12:31:35浏览次数:39  
标签:密码 passwdfile nginx location basic auth


有时候我们通过nginx搭建了一台文件服务器, 一般来讲是公开的, 但我们又希望该服务器不让他人看到, 有人可能会搭建一个登录系统, 但是太麻烦, 也没太大必要, 比较简单的做法是配置Basic Auth登录认证

纯后台的应用都可以加nginx basic auth提高安全性

方法步骤

1、安装htpasswd

htpasswd是Apache密码生成工具,Nginx支持auth_basic认证,因此我门可以将生成的密码用于Nginx中

Ubuntu:

sudo apt-get install apache2-utils

CentOS:

sudo yum -y install httpd-tools

参数如下:

-c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.
-n 不更新passwordfile,直接显示密码
-m 使用MD5加密(默认)
-d 使用CRYPT加密(默认)
-p 使用普通文本格式的密码
-s 使用SHA加密
-b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互
-D 删除指定的用户

2、生成密码

进入密码文件存储目录,如本次测试为 /usr/local/nginx/conf/passwd

cd /usr/local/nginx/conf/passwd
#生成密码
htpasswd -c ./ip_passwdfile username
#执行上命令后会要求输入两次密码,./passwdfile 是在当前目录下创建密码文件passwdfile ,username即为需要设置的账号

3、载入配置

接下来在Nginx配置文件中(通常是server段内),加入如下两行,并重载Nginx(service nginx reload)即可生效。

server
    {
        listen 80 default_server reuseport;
        server_name _;
        index index.html index.htm index.php;
        root  /home/wwwroot/default;

        auth_basic "请输入账号密码";   #这里是验证时的提示信息
        auth_basic_user_file /usr/local/nginx/conf/passwd/ip_passwdfile;

        include enable-php.conf;

        location /nginx_status
        {
            stub_status on;
            access_log   off;
        }

        location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /.
        {
            deny all;
        }

        access_log  /home/wwwlogs/access.log;
    }

4、访问测试

再访问站点,提示需要输入用户名和密码才可以访问,此方法适合不宜公开的站点,或不想对其专门做账号登录系统的时候。这样可避免被弱口令扫描,无疑再上了一把锁。

nginx配置auth_basic登录认证的方法_nginx

注意

对于这种有HTTP Basic Authentication协议验证的页面,如果使用curl抓取的话,可以加上账号密码进行请求:

curl -u username:password URL

如果用wget下载,可以用:

wget --http-user= --http-passwd=passwd URL


标签:密码,passwdfile,nginx,location,basic,auth
From: https://blog.51cto.com/sdwml/6144719

相关文章

  • PAT Basic 1048. 数字加密
    PATBasic1048.数字加密1.题目描述:本题要求实现一种数字加密方法。首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对......
  • PAT Basic 1046. 划拳
    PATBasic1046.划拳1.题目描述:划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字......
  • Nginx 的多进程异步模型要了解下么
    Ngnix是互联网企业使用最为广泛的高性能的反向代理服务器,为何叫反向代理之前也讲过。它可以为后端分布式服务提供负载均衡的功能,它可以将后端多个服务地址聚合为单个地址来......
  • nginx的location与proxy_pass指令超详细讲解及其有无斜杠( / )结尾的区别
    本文所使用的环境信息如下:windows11(主机系统)virtual-box-7.0环境下的ubuntu-18.04nginx-1.22.1(linux)斜杠结尾之争实践中,nginx里最常用的指令就是location和pr......
  • nginx的location与proxy_pass配置超详细讲解及其有无斜杠( / )结尾的区别
    本文所使用的环境信息如下:windows11(主机系统)virtual-box-7.0环境下的ubuntu-18.04nginx-1.22.1(linux)斜杠结尾之争实践中,nginx里最常用的指令就是location和pr......
  • 第八天(nginx第二篇)
    4.正向代理实现在前面的案例中,我们了解了nginx作为静态服务器时的应用,如果作为静态服务器,则nginx也只是起到了运行静态资源的用。如何通过nginx实现正向代理呢?比如:我......
  • ubuntu20.04-apt升级nginx到1.21.0
    最后将nginx升级为1.21.0备份旧的nginx安装目录sudocp-r/etc/nginx/backup卸载旧的nginxsudoaptremovenginxnginx-commonnginx-fullnginx-core保留了相关配置文......
  • NginxWeb服务器定时切割日志shell脚本
    Nginx定时切割日志定时切割方式有按月切割、按天切割、按小时切割等。最常用的是按天切割。Nginx不支持像Apache一样使用cronolog来轮转日志,但是可以采用以下方式来实现日......
  • Centos安装部署netcore 包含Nginx,Supervisor等
    安装.NETCoreSDK安装libicu依赖yuminstalllibunwindlibicu注册dotnet的repository您需要注册Microsoft签名密钥并添加Microsoft产品提要sudorpm-Uvhhttps://packag......
  • Nginx异常信息 upstream timed out (110: Connection timed out) while reading respo
    upstreamtimedout(110:Connectiontimedout)whilereadingresponseheaderfromupstreamNginx代理配置如下:###proxysettingsstartproxy_http_version1.1;p......