如何在nginx下实现访问web网站密码认证保护的功能
在某些特定的环境下,我们希望nginx下的web站点在访问时需要用户输入账户密码才能访问。以便拒绝那些不速之客。
其实,配置起来也很简单,按照下面的步骤即可实现。
一、编辑虚拟主机配置文件。
server { listen 80; //监听端口为80 server_name www.abc.com; //虚拟主机网址 location / { root sites/www1; //虚拟主机网站根目录 index index.html index.htm; //虚拟主机首页 auth_basic "secret"; //虚拟主机认证命名 auth_basic_user_file /usr/local/nginx/passwd.db; //虚拟主机用户名密码认证数据库 } #省略其他配置 .... }
二、通过htpasswd命令生成用户名及对应密码数据库文件。
[root@localhost /]#mkdir /usr/local/nginx [root@localhost /]#vi /usr/local/nginx/passwd.db [root@localhost /]# htpasswd -c /usr/local/nginx/passwd.db admin //创建认证信息,admin 为认证用户名 New password: ******* //输入认证密码 Re-type new password: ******** //再次输入认证密码 Adding password for user admin [root@localhost /]# chmod 400 /usr/local/nginx/passwd.db //修改网站认证数据库权限 [root@localhost /]# chown nginx. /usr/local/nginx/passwd.db //修改网站认证数据库属主和属组 [root@localhost /]# cat /usr/local/nginx/passwd.db //可以看到通过htpasswd生成的密码为加密格式 admin:x/J1o94NgIV2k
三、重新启动nginx即可生效。
service nginx reload
通过上面的三个步骤即可完成在nginx下实现访问web网站密码认证保护的功能。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了