转载:反向代理服务器nginx-proxy-manager

转载于:https://laosu.ml/2022/01/17/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8nginx-proxy-manager/
Nginx Proxy Manager 实际上就是一个带前端管理界面的 Nginx 服务器。
一直以来,老苏都是使用群晖内置的反向代理,虽然很方便易用,但在某些情况下显得并不灵活。比如老苏打算安装 Authelia,需要修改 nginx 转发规则,必须通过 SSH 登录后找到相应的文件修改,这一点上不如 nginx-proxy-manager,当你习惯后,你会发现 npm 的优点远不止这点。

什么是 Nginx Proxy Manager ?

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

安装

数据库

首先在群晖套件中心安装MariaDB 10、phpMyAdmin

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

image.png

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

image.png

安装镜像

在群晖上以 Docker 方式安装。

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


image.png

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


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

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

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
52443 443
52080 80
52081 81
image.png

环境

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

运行

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

默认的账号:[email protected],密码:changeme

image.png

登录后可以编辑用户信息


image.png

之后是密码


image.png

证书

进入主菜单的 SSL Certificates


image.png

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

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

image.png

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

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

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


image.png

反向代理

进入主菜单的 Hosts


image.png

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

  • 因为是 Docker 容器方式运行的,所以即便是本机也不要用 localhost,一定要用 IP
  • 默认 Cache Aeeets、Block Common Exploits、Websocket Support 建议都勾上
image.png
选择 SSL 证书
image.png

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

image.png

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

image.png

小结

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

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

参考文档

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

你可能感兴趣的:(转载:反向代理服务器nginx-proxy-manager)