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

2024-06-01 1633阅读

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

你好,我是赵兴晨,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

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

2、创建用户认证文件

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

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

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

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

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

3、查看用户认证文件

检查 .htpasswd文件,确保用户已成功添加。

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

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

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

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

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

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

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

会直接提示输入用户名和密码,输入密码之后效果如下

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

以上就是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的访问,为你提供了全面的操作指南和最佳实践。

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

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]