编程技术分享平台

网站首页 > 技术教程 正文

在Nginx中设置认证(nginx ntlm认证)

xnh888 2024-10-10 12:56:38 技术教程 35 ℃ 0 评论

当我们使用Nginx时,经常会发生我们想限制对某些URL和/或端点的访问。因此,要做到这一点,我们需要在Nginx中设置一个认证,这就是我们今天要看到的。

Htpasswd文件

为了让用户能够登录,Nginx必须有一个名为htpasswd的文件,其中包含每个用户的名字和密码,其格式如下:

user1:password1
user2:password2
...

用户名是明文的,但密码是用BCrypt加密的。

生成这个文件的最简单方法是使用htpasswd工具。

安装 htpasswd

这个工具可以在apache2-utils包中找到,你可以用以下命令安装:

sudo apt-get update
sudo apt-get install apache2-utils

使用 htpasswd

该命令的格式如下:

htpasswd [options] [file path] [user name to add]

需要知道的选项是-c,它将帮助我们创建文件。

然后,你只需要使用命令来添加每个用户就可以了!

例子

# Create the file & add the user toto
htpasswd -c /etc/nginx/htpasswd toto
# Add another user to an existing file
htpasswd /etc/nginx/htpasswd titi

配置Nginx

最后一步是配置你的Nginx实例。因此,在你的配置文件中,添加auth_basic和auth_basic_user_file两个参数,就像下面的例子一样,应该就可以了

server {
      listen 80 default_server;
      listen [::]:80 default_server ipv6only=on;
      
      root /usr/share/nginx/html;
      index index.html index.htm;
      server_name localhost;
      location / {
                try_files $uri $uri/ =404;
                auth_basic "Restricted Content";
                auth_basic_user_file /etc/nginx/.htpasswd;
      }
}

下次你试图访问你的东西时,应该有一个弹出窗口要求你提供证书。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表