Nginx企业级负载均衡:技术详解系列(14)—— 账户认证功能

devtools/2024/9/23 11:14:57/

在这里插入图片描述
你好,我是赵兴晨,97年文科程序员。

你有没有听说过Nginx的账户认证功能?这可不只是一个技术问题,它关系到我们上网时的安全和便利。就像家里需要一把钥匙才能进们一样,Nginx的账户认证功能就是确保有只有授权的人才能访问特定的网站资源。

今天,我们就来聊聊这个功能。他在让网站更安全、使用起来更舒心方面。起着很大的作用。

官方帮助文档:
https://nginx.org/en/docs/http/ngx_http_auth_basic_module.html

环境准备:
操作系统:Centos7.9
已安装Nginx

1、安装HTTP服务器工具
我们需要先安装httpd-tools,它包含了创建用户认证文件所需的htpasswd工具。

yum -y install httpd-tools

在这里插入图片描述

2、创建用户认证文件
使用htpasswd工具创建用户和密码,这些信息将被存储在.htpasswd文件中。

htpasswd -cb /usr/local/nginx/conf/conf.d/.htpasswd user1 123456

在这里插入图片描述

htpasswd -b /usr/local/nginx/conf/conf.d/.htpasswd user2 123456

在这里插入图片描述
3、查看用户认证文件
检查 .htpasswd文件,确保用户已成功添加。

cat /usr/local/nginx/conf/conf.d/.htpasswd

在这里插入图片描述

4、配置Nginx认证
编辑Nginx配置文件,为特定资源设置基本认证。

server {listen 80;location = /login/ {root /data/nginx/html/pc;index index.html; # 启用基本认证auth_basic "login password";auth_basic_user_file /usr/local/nginx/conf/conf.d/.htpasswd;}
}

编辑完配置文件记得重新加载生效

systemctl reload nginx

5、测试HTTP基本认证
使用curl命令测试HTTP基本认证是否生效

[root@chensir ~]# curl -u user1:123456  http://chensir.ink/login/
hello pc web
[root@chensir ~]# curl -u user2:123456  http://chensir.ink/login/
hello pc web

在这里插入图片描述

结果很明显,如上图,当直接访问时,是访问不到任何资源的,会提示错误码401,如果请求的时候携带用户名和密码是可以访问到静态资源页面的。

咱们直接用浏览器访问看看效果:

在这里插入图片描述
会直接提示输入用户名和密码,输入密码之后效果如下

在这里插入图片描述

以上就是Nginx账户认证功能的分享啦,除了HTTP认证,Nginx还允许我们自定义错误页面,以提供更友好的用户体验。

自定义错误页面
在Nginx配置文件中,为不同的HTTP状态码指定自定义错误页面。
可用位置:http、server、location、if in location
以下是配置示例

error_page 404 /40x.html;
location = /40x.html {root /data/html/;
}
error_page 500 502 503 504 /error.html;
location = /error.html {root /data/nginx/html;
}

注意事项:

  • 确保 .htpasswd 文件的权限设置为仅root用户可读写,以保证安全性。
  • 自定义错误页面的路径应根据实际文件存放位置进行调整。
  • 在生产环境中,建议使用更安全的认证方式,如OAuth或JWT。

OK,以上就是今天的全部分享啦。如果你对限制访问IP的配置感兴趣,或者想回顾相关知识点,可以参考我之前的文章《使用Nginx对网站资源进行加密访问并限制访问IP》。在这篇文章中,我分享了如何通过Nginx实现对网站资源的加密访问,以及如何限制特定IP的访问,为你提供了全面的操作指南和最佳实践。

分享一句我最最喜欢的话 “时间从来不语,却回答了所有的问题。” 咱们下期见!


http://www.ppmy.cn/devtools/46249.html

相关文章

mysql存储地理信息的方法

MySQL 存储地理信息通常使用 GEOMETRY 数据类型或其子类型(如 POINT, LINESTRING, POLYGON 等)。为了支持这些数据类型,MySQL 提供了 SPATIAL 索引,这允许我们执行高效的地理空间查询。 1. 创建支持地理信息的表 首先&#xff0…

【三维重建NeRF(三)】Mip-NeRF论文解读

本文结合深蓝学院课程学习和本人的理解,欢迎交流指正 文章目录 Mip-NeRF流程简述混叠问题与MipMapMip-NeRF提出的解决办法圆锥台近似计算与集成位置编码(IPE) Mip-NeRF流程简述 Mip-NeRF的大体流程和NeRF基本是一样的,NeRF介绍 创新的部分就是针对NeRF…

导航时间与坐标转换

前言: 该章节代码均在Gitee中开源:因为这章是学校作业,所以稍微正经点. 时空位置转换https://gitee.com/Ehundred/navigation-engineering/tree/master/%E5%8D%AB%E6%98%9F%E5%AF%BC%E8%88%AA%E5%8E%9F%E7%90%86/%E5%AF%BC%E8%88%AA%E6%97…

golang语言的gofly快速开发框架如何设置多样的主题说明

本节教大家如何用gofly快速开发框架后台内置设置参数,配置出合适项目的布局及样式、主题色,让你您的项目在交互上加分,也是能帮你在交付项目时更容易得到客户认可,你的软件使用客户他们一般都是不都技术的,所以当他们拿…

spring通过xml配置文件实现依赖注入的方法

在 Spring 框架中,使用 XML 配置文件来实现依赖注入主要有以下几种方法: 通过构造器注入(Constructor Injection)通过 Setter 方法注入(Setter Injection)通过静态工厂方法注入通过实例工厂方法注入通过 p…

Satellite Stereo Pipeline学习

1.在Anaconda某个环境中安装s2p pip install s2p 2.在Ubuntu系统中安装s2p源代码 git clone https://github.com/centreborelli/s2p.git --recursive cd s2p pip install -e ".[test]" 3.在s2p中进行make all处理 中间会有很多情况,基本上哪个包出问题…

聊聊限流的一些事儿

一、背景 最近几年,随着微服务的流行,服务与服务之间依赖越来越强,调用也越来越复杂,服务间的稳定性变突显出来。特别是在遇到突发请求时,常常需要通过缓存、限流、熔断降级、负载均衡等多种方式保证服务的稳定性。其…

D365 Project Operations

目录 D365包含哪些模块? D365 Project Operations是什么? D365 Project Operations优势 D365 Project Operations部署方案 总结 D365包含哪些模块? 微软的D365是一套功能强大的企业管理解决方案,其中包含了多种模块&#xff…