Nginx Proxy Manager轻松搭建反向代理的实现

 更新时间:2025年02月07日 11:26:49   作者:码手Lion  
NginxProxyManager是一款开源的反向代理和SSL证书管理工具,本文主要介绍了Nginx Proxy Manager轻松搭建反向代理的实现,感兴趣的可以了解一下

在现代网络环境中,越来越多的服务需要在同一个服务器上运行,如何合理地管理这些服务,并确保它们能够安全高效地互通,是许多站长和开发者面临的难题。Nginx Proxy Manager(简称 NPM)正是为了解决这个问题而生,它提供了一个简单、直观的界面来管理反向代理和 SSL 证书配置,使得网站、应用的反向代理设置更加轻松。

一、什么是 Nginx Proxy Manager?

Nginx Proxy Manager(NPM)是一款功能强大且易于使用的开源工具,旨在简化 Nginx 反向代理的配置和管理。它提供了一个用户友好的 Web 界面,让您无需深入了解 Nginx 配置文件,就能轻松地搭建和管理多个反向代理。NPM 尤其适合那些希望快速搭建高性能、安全的反向代理,但又不想花费大量时间学习 Nginx 配置的开发者和运维人员。

二、为什么选择 Nginx Proxy Manager?

  • 直观的 Web 界面: 提供了一个可视化的界面,让您通过简单的点击和配置来管理反向代理,无需编写复杂的 Nginx 配置文件。
  • 强大的功能: 支持多种代理协议(HTTP、HTTPS、WebSocket 等)、负载均衡、SSL 证书管理、访问控制等。
  • 自动化的 SSL 证书管理: 内置了对 Let’s Encrypt 的支持,可以自动申请、配置和更新 SSL 证书,确保您的网站始终保持 HTTPS 安全。
  • 灵活的配置选项: 提供了丰富的配置选项,可以满足各种复杂的代理需求,例如自定义域名、重定向、错误页面等。
  • 社区支持: 拥有一个活跃的社区,提供丰富的文档、教程和示例配置,方便用户学习和交流。
  • 开源免费: 完全开源,您可以自由地使用、修改和分发。

三、Nginx Proxy Manager 的核心功能

  • 反向代理: 将多个后端服务(如 Web 服务器、API 服务)统一暴露给外界,通过一个域名访问多个服务。
  • 负载均衡: 将请求分发到多个后端服务器,提高系统性能和可用性。
  • SSL 证书管理: 自动申请、配置和更新 Let’s Encrypt 证书,确保网站的安全。
  • 访问控制: 通过 IP 白名单、黑名单、基本认证等方式控制对服务的访问。
  • 自定义配置: 对于有特殊需求的用户,可以手动编辑 Nginx 配置文件。
  • 监控和日志: 提供基本的监控和日志功能,帮助您了解系统运行状况。

四、如何使用 Nginx Proxy Manager?

1、安装 docker 环境

在开始之前,请确保你的系统已经安装了 Docker。如果还没有安装 Docker,请按照以下步骤进行安装:

  • 安装 Docker(适用于 Linux 系统)
curl -fsSL https://get.docker.com | sh
  • 启动 Docker 服务
systemctl start docker
  • 如果是 CentOS 系统,Docker 安装后不会默认开机自启,需要手动设置:
systemctl enable docker
  • 验证 Docker 是否安装成功
docker --version

如果返回 Docker 的版本号,则说明 Docker 安装成功。

2、安装 Nginx Proxy Manager

  • 创建文件
mkdir -p /home/docker/npm
  • 进入目录
cd /home/docker/npm
  • 打开配置文件
vim docker-compose.yml
  • 添加内容,修改完配置文件,按下 i 进入编辑状态,按下 Esc 键退出编辑状态,按下 :wq 保存退出
services:
  app:
    image: 'docker.io/jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - /home/docker/npm/data:/data
      - /home/docker/npm/letsencrypt:/etc/letsencrypt
  • 启动 Nginx Proxy Manager 的 Docker 容器,同时将 80 和 443 端口暴露到外网,端口 81 用于访问 Nginx Proxy Manager 的管理界面

在这里插入图片描述

访问管理界面:安装完成后,打开浏览器,访问 http://your_ip:81(假设您的服务器 IP 地址为 your_ip)。第一次登录时,默认的用户名是 admin@example.com,密码是 changeme,您可以在第一次登录后修改密码。

3、配置反向代理

一旦成功登录,您就可以开始配置反向代理了。

添加代理主机:

在管理界面,点击 “Proxy Hosts” 菜单

在这里插入图片描述

点击右上角的“Add Proxy Host”按钮

在这里插入图片描述

在弹出的窗口中,输入您的域名(如 www.yourdomain.com)以及该域名对应的服务器地址(如 http://localhost:8080

码手Lion

选择是否启用 SSL,您可以选择自动申请 Let’s Encrypt 的证书,或者使用自己的 SSL 证书

码手Lion

配置 SSL 证书

如果您选择了使用 SSL,Nginx Proxy Manager 会自动申请免费的 Let’s Encrypt 证书,您只需勾选“Force SSL”来强制所有流量通过 HTTPS 访问

在这里插入图片描述

证书生成完成后,Nginx Proxy Manager 会自动为您配置 HTTPS 设置,保证您的网站访问安全。

高级设置

您可以在 “Advanced” 选项卡中配置更多高级选项,如 WebSocket 支持、访问控制、重定向规则等。

4、管理 SSL 证书

Nginx Proxy Manager 支持自动申请和续期 SSL 证书。对于您添加的每个代理主机,您都可以轻松地管理其 SSL 证书:

  • 自动申请:点击代理主机设置中的 “SSL” 选项卡,勾选 “Request a new SSL certificate” 选项,系统会自动为您的域名申请证书。
  • 证书续期:Let’s Encrypt 的证书有效期为 90 天,但 Nginx Proxy Manager 会自动处理续期,无需手动干预。

5、管理 SSL 证书

Nginx Proxy Manager 还提供了简单的访问控制功能:

  • 基本身份验证:您可以为某些代理主机启用基本身份验证,要求访问者提供用户名和密码才能访问相关服务。
  • IP 白名单/黑名单:您可以设置允许或拒绝某些 IP 地址访问特定的反向代理,进一步提升服务的安全性。

五、总结

Nginx Proxy Manager 是一个强大且易于使用的工具,它使得配置反向代理、管理 SSL 证书、设置访问控制等变得非常简单。无论是对初学者还是有经验的开发者,Nginx Proxy Manager 都是一个理想的解决方案。如果您正在寻找一个快速、简洁的方式来管理和优化您的网络服务,Nginx Proxy Manager 无疑是一个值得尝试的工具。

到此这篇关于Nginx Proxy Manager轻松搭建反向代理的实现的文章就介绍到这了,更多相关Nginx Proxy Manager反向代理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 前端开发用得着的nginx配置(场景)

    前端开发用得着的nginx配置(场景)

    这篇文章主要介绍了前端开发用得着的nginx配置,前端的工作过程里,本地开发、提供测试环境,总得有个用着顺手的服务器软件,这个场景里nginx很流行,特分享下需要的朋友可以参考下
    2014-09-09
  • nginx添加http_ssl_module并且配置域名指定端口的操作方法

    nginx添加http_ssl_module并且配置域名指定端口的操作方法

    这篇文章主要介绍了nginx添加http_ssl_module并且配置域名指定端口的操作方法,文末附带linux下防火墙和开放端口,需要的朋友可以参考下
    2023-11-11
  • 分享nginx+php-fpm实现大文件下载排坑的过程

    分享nginx+php-fpm实现大文件下载排坑的过程

    这篇文章主要介绍了nginx+php-fpm实现大文件下载排坑的过程,文中通过代码实例相结合的形式给大家介绍的非常详细,具有一定得参考借鉴价值,需要的朋友参考下吧
    2018-08-08
  • nginx使用stream模块代理端口的实现

    nginx使用stream模块代理端口的实现

    本文主要介绍了nginx使用stream模块代理端口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • Nginx PHP-Fcgi中因PHP执行时间导致504 Gateway Timeout错误解决记录

    Nginx PHP-Fcgi中因PHP执行时间导致504 Gateway Timeout错误解决记录

    这篇文章主要介绍了Nginx PHP-Fcgi中因PHP执行时间导致504 Gateway Timeout错误解决记录,本文的解决方法得来不易,需要的朋友可以参考下
    2014-09-09
  • Nginx 禁止访问某个目录或文件的设置方法

    Nginx 禁止访问某个目录或文件的设置方法

    如果基于WEB根目录下,要禁止用户访问/config目录,或者要禁止用户访问/config.ini(ZF常用INI,不过建议还是放到WEB目录以外的地方),可以通过location进行配置,返回403或者404等
    2010-09-09
  • 一文详解Nginx的访问限制与访问控制

    一文详解Nginx的访问限制与访问控制

    访问限制是一种防止恶意访问的常用手段,可以指定同一IP地址在固定时间内的访问次数,访问控制是控制客户端对服务端的访问,并非仅限制请求次数,而是允许某些请求或者直接拒绝某些请求,本文给大家具体介绍了Nginx的访问限制与访问控制,需要的朋友可以参考下
    2024-09-09
  • 分享一份nginx重启脚本

    分享一份nginx重启脚本

    nginx是超级稳定的服务器,一般不会因为超载问题而需要重启,重启的目的一般都是修改配置文件后需要加载一下
    2012-09-09
  • 详解如何基于Nginx搭建流媒体服务器

    详解如何基于Nginx搭建流媒体服务器

    Nginx RTMP是一个Nginx插件,支持将RTMP和HLS流添加到媒体服务器,本文将以ubuntu为例为大家介绍一下如何安装使用nginx Rtmp 插件的步骤,需要的可以参考下
    2023-10-10
  • Nginx tp3.2.3 404问题解决方案

    Nginx tp3.2.3 404问题解决方案

    这篇文章主要介绍了Nginx tp3.2.3 404问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12

最新评论