0

0

如何使用Nginx实现HTTP基础认证

WBOY

WBOY

发布时间:2023-06-10 10:36:14

|

2986人浏览过

|

来源于php中文网

原创

nginx是一个高性能、可靠的web服务器和反向代理服务器。除了其强大的负载均衡和缓存功能外,nginx还支持http基础认证。http基础认证是一种简单的身份验证方法,通过在请求头中添加用户名和密码来验证用户身份。在这篇文章中,我们将学习如何使用nginx实现http基础认证。

一、设置用户名和密码

首先,我们需要创建一个密码文件。我们可以使用htpasswd命令来创建这个文件。htpasswd是一个用于管理HTTP基础认证密码的命令行工具。

我们可以在终端中使用以下命令创建一个密码文件:

htpasswd -c /etc/nginx/.htpasswd username

其中,-c表示创建一个新的密码文件,/etc/nginx/.htpasswd是密码文件的路径,username是我们要添加的用户名。在运行此命令后,系统会提示你输入密码。输入密码后,htpasswd会将密码哈希后存储到密码文件中。

如果您要向密码文件中添加额外的用户,请使用以下命令:

htpasswd /etc/nginx/.htpasswd username2

这个命令没有-c选项,因为我们的密码文件已经存在。输入命令后,系统会提示您输入密码。输入后,htpasswd会将用户名和密码哈希并添加到密码文件中。

二、在Nginx中应用基础认证

现在,我们已经创建了一个包含用户名和密码哈希的密码文件。接下来,我们需要在Nginx中应用HTTP基础认证。

我们需要在server块或location块中添加以下指令:

auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;

第一个指令告诉Nginx对请求进行基本认证,并在弹出的登录框中显示“Restricted”作为描述信息。

第二个指令告诉Nginx使用/usr/share/nginx/.htpasswd文件来验证用户。

国洋商务通
国洋商务通

Gyb2b V1.01免费版可终身使用,是一款功能强大的B2B电子商务应用软件。该软件不仅更新和修改了V1.0相关功能,更是采用了目前互联网上最流行的LAMP组合(Linux+Apache+Mysql+PHP)开发完成,模板技术实现了界面与代码的有效分离,用户可以快速地在此基础上编译模板;提供B2B电子商务应用最常见的求购、供应、商品、公司库、行业资讯、商圈、资信认证、在线交易、交易评分、留言、搜

下载

例如,我们可以在Nginx的default服务器块中添加以下代码:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

现在,我们已经成功地为我们的Nginx服务器添加了基本认证。

三、测试 HTTP 基础认证

现在我们来测试一下刚刚设置的认证功能。我们可以使用curl或Firefox等工具测试。

使用curl测试:

curl -I http://localhost

命令行会提示您输入用户名和密码。输入正确的用户名和密码后,您可以看到HTTP响应头中包含以下代码:

HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
...

使用Firefox测试:

在Firefox中输入服务器地址http://localhost。Firefox将弹出一个包含“Restricted”字样和描述的窗口,提示您输入用户名和密码。输入正确的用户名和密码后,您将被重定向到您的服务器默认网页。

总结

本文介绍了如何使用Nginx实现HTTP基础认证。HTTP基础认证是一个简单但有效的身份验证方法,可用于保护Web服务器的敏感资源。通过首先使用htpasswd命令创建密码文件,然后在Nginx配置中应用基本认证指令,我们可以轻松地为我们的Nginx服务器添加HTTP基础认证。

相关专题

更多
php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

2

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

1

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

7

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

5

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

nginx浅谈
nginx浅谈

共15课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号