反向代理服务器nginx-proxy-manager

article/2025/8/22 7:57:18

一直以来,老苏都是使用群晖内置的反向代理,虽然很方便易用,但在某些情况下显得并不灵活。比如老苏打算安装 Authelia,需要修改 nginx 转发规则,必须通过 SSH 登录后找到相应的文件修改,这一点上不如 nginx-proxy-manager,当你习惯后,你会发现 npm 的优点远不止这点。

什么是 Nginx Proxy Manager ?

Nginx Proxy Manager 是用于管理 Nginx 代理主机的 Docker 容器,具有简单、强大的界面。它使您可以轻松地转发到您在家里或其他地方运行的网站,包括免费的 SSL,而无需对 NginxLetsencrypt 了解太多。

安装

数据库

通过 phpMyAdminMariaDB 10 中新建用户 npm,创建同名的库 npm 并授予所有权限。

老苏试过 MariaDB 5,写数据库有问题,表现为登录不成功,显示 Bad Gateway 错误

安装镜像

在群晖上以 Docker 方式安装。

在注册表中搜索 nginx-proxy-manager ,选择第一个 jc21/nginx-proxy-manager,版本选择 latest

docker 文件夹中,创建一个新文件夹,并将其命名为 npm,再建 2 个子目录,分别命名为 dataletsencrypt

文件夹装载路径说明
docker/npm/data/data存放数据
docker/npm/letsencrypt/etc/letsencrypt存放自动申请证书

端口

端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
2443443
208080
208181

环境

可变
DB_MYSQL_HOST群晖主机 IP 地址
DB_MYSQL_PORT默认为 3306
DB_MYSQL_USER根据前面的设置,数据库用户为 npm
DB_MYSQL_PASSWORD数据库用户 npm 的密码
DB_MYSQL_NAME根据前面的设置,库名为 npm

运行

在浏览器中输入 http://群晖IP:2081 就能看到主界面

默认的账号:admin@example.com,密码:changeme

登录后可以编辑用户信息

之后是密码

frp

因为老苏的宽带没有公网 IP ,一直以来都是用 frp 做内网穿透,所以首先要对 frpc.ini 做相应的修改

  • local_ip 是运行 frpc 的群晖的 IP
  • local_port 要根据前面设置的端口进行变更
  • custom_domains 用了泛域名,没有像在『 frp基础设置示例详解 』一文中指向了具体的子域名,例如: nas.laosu.ml
[http_xxxxxx]
type = http
local_ip = 192.168.0.199
local_port = 2080
custom_domains = *.laosu.ml[https_xxxxxx]
type = https
local_ip = 192.168.0.199
local_port = 2443
custom_domains = *.laosu.ml

证书

进入主菜单的 SSL Certificates

Add SSL Certificate 有两种方式,一种是在线申请,另一种是添加已有证书

在线申请和我们在『 免费的泛域名https证书自动续期 』一文中介绍的非常类似,需要选择 DNS 解析服务提供商,以及填写 token 等参数

老苏因为已经配置了 Certbot 并实现了自动续期,所以只需要导入现有证书就可以了,Name 老苏用了域名,这样比较容易识别

  • 私钥 Certificate Key 对应 privkey.pem
  • 证书 Certificate 对应 fullchain.pem
  • 中间证书 Intermediate Certificate 对应 chain.pem

上传成功后,证书存放在 /data/custom_ssl/ 目录中以 npm-1npm-2 等子目录保存

反向代理

进入主菜单的 Hosts

以将 http://192.168.0.197:5000 映射到 https://nas.laosu.ml 为例

  • 因为是 Docker 容器方式运行的,所以即便是本机也不要用 localhost,一定要用 IP
  • 默认 Cache AeeetsBlock Common ExploitsWebsocket Support 建议都勾上

选择 SSL 证书

因为准备用 https 协议访问,所以必须勾选 Force SSL

其他的 HTTP/2HSTS 和群晖内置的是一样的,可根据需要勾选,没啥问题的话老苏建议都勾上

小结

为什么要另外安装 nginx proxy manager 而不是用群晖内置的反向代理的原因,老苏在一开始就讲了,装完之后老苏还发现了几个优点:

  1. 不用再依赖群晖,这使得老苏将来可以很方便的切换到其他平台
  2. 即便是 DSM6.1.7 也不再有 『 HomeAssistant设置https访问后的问题 』一文中的情况,只要简单勾选 Websockets support 即可,而不需要各种修改
  3. 速度快,也许只是心理感觉

题外

最终 Authelia 并没安装成功,原因是不能在非标的端口上使用。

由于没有备案的缘故,https 协议不能使用 443 端口

假设你用了非标的 444Authelia 会自动截掉端口(因为 443 是可以不用写的),从而导致资源加载失败👇

Refused to load the image 'https://auth.laosu.ml/favicon.ico' because it violates the following Content Security Policy directive: "default-src 'self'". Note that 'img-src' was not explicitly set, so 'default-src' is used as a fallback.

已经在 Autheliaissues 提了,但是作者目前没有回复

参考文档

Nginx Proxy Manager
地址:https://nginxproxymanager.com/

jc21/nginx-proxy-manager: Docker container for managing Nginx proxy hosts with a simple, powerful interface
地址:https://github.com/jc21/nginx-proxy-manager

NGINX proxy manager
地址:https://www.blackvoid.club/nginx-proxy-manager/

Running authelia on a non standard HTTPs port. Base href is not valid. · Issue #2765 · authelia/authelia
地址:https://github.com/authelia/authelia/issues/2765


http://chatgpt.dhexx.cn/article/SAxqGTdQ.shtml

相关文章

Nginx反向代理服务器

1、nginx简介 Nginx 是⼀个⾼性能的HTTP和反向代理web服务器,核⼼特点是占有内存少,并发能⼒强。 Nginx的应用场景: Http服务器(Web服务器) 1、性能⾮常⾼,⾮常注重效率,能够经受⾼负载的考验…

反向代理服务器的工作原理

最近有打算研读nginx源代码,看到网上介绍nginx可以作为一个反向代理服务器完成负载均衡。所以搜罗了一些关于反向代理服务器的内容,整理综合。 一 概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的…

Nginx反向代理服务器搭建(超详细)

一、简介 Nginx (engine x) 是一个高性能的Web服务器和反向代理服务器,也可以作为邮件代理服务器。 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上…

什么是反向代理?

正向代理 当客户端访问一台服务器有障碍,访问不到的时候,这时候就可以找一台可以访问到该服务器的另外一台服务器去代替他去访问,这台代替他去访问的服务器称之为代理服务器。然后客户端就可以把请求发送给代理服务器,然后通过代…

服务器反向代理

一、定义 正向代理 正向代理,代理的是客户端,为客户端发送请求,对服务器隐藏自己的真实客户端。 由下图可见,通过代理服务器,可以访问局域网外的服务器,突破自身ip的访问权限。比如翻墙访问外网。 一般而言…

什么是反向代理(代理服务器解释

什么是反向代理(reverse proxy)? A reverse proxy protects web servers from attacks and can provide performance and reliability benefits. Learn more about forward and reverse proxies. 反向代理是位于 Web 服务器前面的服务器,将客户端&…

反向代理服务器

反向代理服务器的概念 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址&#xff0…

超全Nginx反向代理服务器原理+实战篇

文章目录 1.Nginx简介和安装部署1.1.什么是Nginx1.2.Nginx的用途1.3.正向代理服务器1.4.反向代理服务器1.5.nginx安装部署1.6.线上访问服务器应用流程解析1.7.本地虚拟机配置宿主机域名映射2.Nginx核心基础知识2.1.Nginx目录结构2.2.Nginx核心配置文件2.3.Nginx搭建前端静态服务…

什么是反向代理服务器

我们常会看到‘反向代理服务器’这个名词,例如常看到文章上说 nginx 是一个反向代理服务器、varnish 是一个反向代理服务器 …… 下面就了解下这个概念 含义 ‘反向代理服务器’ 有两个概念,一是‘代理服务器’,二是‘反向’ ‘代理服务器’比…

入门Nginx反向代理服务器

前言 博主最近学习了Nginx,故想通过撰写博客的方式加强对知识的认识和记忆,所涉及知识浅薄,如有错误,敬请指正 一.Nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器;其特点是占有内存少&#xff0…

推导大O阶方法

1、用常数1取代运行时间中的所有加法常数; 2、只保留最高阶项; 3、去除最高阶项的常数; 常数阶是O(1); 线性阶是O(n); 对数阶是O(logn); 平方阶是O&…

大O算法复杂度表示

序言:算法的时间复杂度和空间复杂度都是用“ 大O表示法” 来表示的。其中O是个常量。 常见的 排序算法的时间复杂度: 冒泡排序、插入排序、希尔排序、选择排序的时间复杂度是O(n^2); 快速排序的时间复杂度是 O&#…

数据结构学习笔记:算法复杂度的度量之“大O记号”

分析算法复杂度的非常重要的方法:大O记号!! 下面来让我们看一下到底什么是大O记号 举个例子: 用一个直尺去评价算法复杂度,上面的刻度就相当于大O记号,我们不一定要一味的强调刻度的精细程度,没…

算法复杂度渐进符号(大O、Ω和θ)的个人理解

做软考习题时,碰到了这样的一道题: 关于算法复杂度渐进符号(O、Ω、θ),详细解释可参考: 【双语字幕】什么是算法复杂度渐进符号?阿布老师算法课11 这里节选总结了视频的重点内容,…

数据结构考研:大O表示法最浅显易懂且详细深入的解释及与小o表示法的区别(十分钟必懂)

大O表示法的背景 作为软件工程专业的学生,在我们学习数据结构的时候,总是会碰见对各种算法时间复杂度和空间复杂度的大O表示法的描述。我们只是将信将疑的用着,并不知道大O表示法的准确含义,今天博主李同学在查阅各方资料后进行详…

算法的时间复杂度(大O表示法)

首先我们先来看个例子, 我想找个1~100的数字,你的目标是以最少的次数猜到这个数字。你每次猜测后,我会说小了、大了或对了。下面我们来看下两种简单的方法(方法有很多种),再来引入算法的运行时间&#xff0…

算法时间复杂度分析——大O、大Ω、大θ、小o,小ω

最近开始转战传统算法分析的研究工作了,重新拾起以前学过的一些内容。 目录 一、概述 二、对常见的Ο和Ω进行分析 2.1 大O表示法 2.2 大Ω表示法 三、P问题,NP问题,NP-hard问题,NPC问题 3.1 P问题和NP问题 3.2 NPC问题和N…

复杂度分析(大O表示法)

复杂度分析 前文提要 本文完完全全引用极客时间的文章《数据结构与算法之美》,作者王争。 数据结构是作为程序猿绕不过的一道坎,所以萌生了学习的想法,试读了几篇文章后发现讲的很好,也有很多人订阅,于是不回头的走…

big O notation - 大 O 表示法

big O notation - 大 O 表示法 Big O notation (with a capital letter O, not a zero), also called Landau’s symbol. 大 O 表示法 (大写字母 O,不为零),也称为 Landau’s symbol。 Big O notation is a mathematical notation that describes the l…

算法分析:大O符号/大Ω符号/大Θ符号/小o符号/小w符号

感谢作者分享,原文链接:http://blog.csdn.net/u012816041/article/details/49888631 大O,渐进表示法,接下来我尝试用最简单的方式进行说明。 学习算法我经常听到这个词汇,我一开始很难理解,什么鬼&#xff…