nginx 用户基础认证配置

位置:首页>文章>详情   分类: 教程分享 > nginx教程   阅读(798)   2023-03-28 11:29:14

场景描述

某些情况下有些资源需要一个基本的认证才能让用户访问。又不太想开发一个认证流程的东东怎么办呢?

解决办法:通过nginx 配置一个基础的http用户密码认证来解决这个问题

安装nginx

这里不详细介绍如何安装,提供centos一句话安装命令吧
yum install -y nginx

创建nginx访问认证文件

nginx认证文件,该文件主要是存储nginx的认证用户密码信息,其文件格式如下:
admin:r5IXRXWSmlBk6
密码应该使用crypt()函数加密。可以用Apache HTTP Server发行包中的htpasswd命令或者openssl passwd来创建此类文件。

第一种是使用Apache的htpasswd工具创建(感觉很鸡肋都有nginx了我还安装啥Apache)
/opt/apache/bin/htpasswd -bdc /etc/nginx/conf.d/htpasswd admin 12345
命令解释
/opt/apache/bin/htpasswd  htpasswd工具路径
/etc/nginx/conf.d/htpasswd 生成认证文件路径
admin 12345 用户名及密码

第二种使用openssl创建认证文件(由于每个Linux服务器基本都有SSH服务,openssl也就有啦,靠谱)
[root@localhost cert]# openssl passwd 123456
d7FH6kfhAIIFA
[root@localhost cert]# echo 'admin:d7FH6kfhAIIFA' > /etc/nginx/cert/passwd.db
[root@localhost cert]# cat passwd.db 
admin:d7FH6kfhAIIFA
[root@localhost cert]# 

配置nginx访问认证

随便找一个nginx的虚拟访问路径进行配置吧
location / {#对所有地址进行负载均衡
                auth_basic "监控服务";#这里是认证输入用户密码时候弹出的标题
                auth_basic_user_file cert/passwd.db;#这里配置的是密码文件存放路径,相对路径为相对nginx根目录

                proxy_pass http://tomcats-monitor/;
        }#end location

主要配置为:auth_basic 、auth_basic_user_file 

重载配置nginx完成启用认证

nginx -s reload

再访问资源试试?
 
标签: nginx 认证
地址:https://www.leftso.com/article/535.html

相关阅读

场景描述某些情况下有些资源需要一个基本的认证才能让用户访问
Linux(centos) nginx安装和nginx入门配置方法1.切换至root用户$su - 2.执行在线安装命令#yum install nginx -y 如果上面提示以下内容[root...
打开任务管理器发现一大堆nginx进程
最近网站被恶意访问了,了解了一些基础防护手段,nginx屏蔽ua访问 编写文件agent_deany.conf #使用方法 #创建目录 /etc/nginx/conf.d/deny [注意]...
最近博客升级总是nginx原生的502页面,感觉有些不友好,特此研究了下502页面的配置nginx 502配置502页面核心配置 #502 page error_p...
解决centos系统使用yum安装nginx启动时报错[::]:80 failed (97: Address family not supported by protocol)一般默认的使用yu...
nginx开启gzip压缩配置配置参考:server{listen443ssl;server_namet.example.com;#charsetkoi8-r;#access_log/var/l...
1.新增nginx屏蔽配置文件文件暂时为/etc/nginx/conf.d/deny_ua.config说明:文件名deny_ua.config,后缀为.config非.conf,原因是.con...
nginx 跨域头统一配置 location / { add_header Access-Control-Allow-Origin *; add_header Access-...
nginx代理Tomcat带路径的项目location / {                 proxy_pass http://localhost:8080/v1/;            ...