nginx代理服务地址时添加帐号密码认证

在 Nginx 中,可以通过设置基本认证(Basic Authentication)来保护代理访问。以下是具体步骤:

1. 安装 htpasswd 工具

在大多数 Linux 发行版中,htpasswd 工具是 apache2-utils 或 httpd-tools 包的一部分。可以通过以下命令安装:

Debian/Ubuntu

sudo apt-get install apache2-utils

CentOS/RHEL

sudo yum install httpd-tools

2. 创建 .htpasswd 文件

使用 htpasswd 工具创建一个包含用户名和密码的文件。例如,创建一个名为 auth 的文件,并添加一个用户 user1:

htpasswd -c /etc/nginx/.htpasswd user1

系统会提示输入并确认密码。如果需要添加更多用户,可以使用以下命令(不加 -c 选项):

htpasswd /etc/nginx/.htpasswd user2

3. 配置 Nginx

在 Nginx 配置文件中,使用 auth_basic 和 auth_basic_user_file 指令来启用基本认证。以下是一个示例配置:

bash 复制代码
server {
    listen 80;
    server_name example.com;

    location / {
        # 启用基本认证
        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;

        # 代理到后端服务器
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

4. 测试配置并重启 Nginx

在修改 Nginx 配置文件后,先测试配置文件是否正确:

sudo nginx -t

如果没有错误,重启 Nginx 以应用更改:

sudo systemctl restart nginx

  1. 访问验证

现在,当你访问配置的路径时,浏览器会弹出一个对话框,要求输入用户名和密码。输入在 .htpasswd 文件中配置的用户名和密码即可访问。

相关推荐
姜太小白42 分钟前
【Nginx】Nginx代理Tomcat配置及404问题解决
运维·nginx·tomcat
bingbingyihao15 小时前
接口请求控制工具
java·nginx·负载均衡
HEX9CF1 天前
【Docker】快速部署 Certbot 并为 Nginx 服务器配置 SSL/TLS 证书
服务器·nginx·docker
教练、我想打篮球1 天前
14 nginx 的 dns 缓存的流程
nginx·dns·nslookup
小萌新上大分1 天前
nginx入门,部署静态资源,反向代理,负载均衡使用
nginx·spring cloud·nginx配置·nginx部署前端项目·nginx负载均衡策略·nginx反向代理配置
三天不学习2 天前
NginxWebUI:可视化 Nginx 配置管理工具,告别繁琐命令行!
运维·nginx
ak啊2 天前
Nginx 动态模块配置指南(以 Brotli 模块为例)
nginx
Z字小熊饼干爱吃保安2 天前
nginx介绍和几种安装方法
linux·运维·nginx·云计算
遇见火星3 天前
nginx或tengine服务器,配置HTTPS下使用WebSocket的线上环境实践!
服务器·websocket·nginx·https·tengine
ldq_sd3 天前
Django 在同一域名下使用 NGINX 服务器运行 Django 和 WordPress
运维·服务器·nginx