编辑
2023-04-07
vps
00
请注意,本文编写于 387 天前,最后修改于 112 天前,其中某些信息可能已经过时。

目录

nginx-proxy-manager是什么
1、为什么需要nginx-proxy-manager
2、部署步骤
2.1 安装docker和docker-compose
2.2 创建docker-compose.yml
2.3 启动 nginx-proxy-manager
2.4 获取nginx-proxy-manager登录密码
2.5 登录nginx-proxy-manager管理面板
2.6 按照指引修改email和密码
3、配置反向代理
3.1 获取docker0网卡的地址
3.2 修改应用docker-compose.yml文件
3.3 域名解析
3.4 获取DNS认证API Token
3.5 为域名申请SSL证书
3.6 增加一个反向代理
3.7 验证服务

nginx-proxy-manager是什么

  • nginx-proxy-manager是一个用于管理NGINX反向代理服务器的Web界面。
  • 它提供了一种易于使用的方法来配置和管理反向代理,SSL证书以及与多个主机的连接。
  • 它还具有可视化的DNS记录管理界面,可以轻松地将域名映射到特定的主机或IP地址。
  • 此外,它还提供了基于OAuth的身份验证和LDAP集成,以便管理多个用户的访问和权限。

1、为什么需要nginx-proxy-manager

  • 基于docker,部署超简单
  • 支持Let’s Encrypt SSL免费证书
  • 界面化操作,使用简单(和直接编写nginx配置,宝塔相比)
  • 占用资源少(和宝塔相比)

2、部署步骤

2.1 安装docker和docker-compose

2.2 创建docker-compose.yml

dockerfile
version: '3.8' services: app: image: 'jc21/nginx-proxy-manager:2.9.22' restart: unless-stopped ports: - '80:80' - '81:81' - '443:443' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt

2.3 启动 nginx-proxy-manager

docker-compose up -d

2.4 获取nginx-proxy-manager登录密码

shell
$ docker-compose logs|grep admin /usr/local/lib/python3.6/site-packages/paramiko/transport.py:32: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography. The next release of cryptography will remove support for Python 3.6. from cryptography.hazmat.backends import default_backend app_1 | [4/6/2023] [2:26:07 PM] [Setup ] › ℹ info Creating a new user: admin@example.com with password: changeme app_1 | [4/6/2023] [2:26:07 PM] [Setup ] › ℹ info Initial admin setup completed

两个关键信息,邮箱和密码 admin@example.com changeme

2.5 登录nginx-proxy-manager管理面板

浏览器打开http://你的vpsip:81

image.png

2.6 按照指引修改email和密码

3、配置反向代理

3.1 获取docker0网卡的地址

输入ip addr show docker0 得到

shell
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:d0:58:40:93 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever

172.17.0.1就是docker0网卡的地址了

3.2 修改应用docker-compose.yml文件

chatgpt-web这个项目举例

dockerfile
version: '3' services: app: image: chenzhaoyu94/chatgpt-web # 总是使用 latest ,更新时重新 pull 该 tag 镜像即可 ports: # - "1443:3002" # 这样写,会把端口直接暴露到公网,可以通过http://vpsip:1443 访问到服务 # 改成下面的下写法 # 172.17.0.1是docker0的ip # 只对docker网络暴露1443端口,避免公网ip直接访问 - "172.17.0.1:1443:3002"

3.3 域名解析

chat.huacai.one这个域名,我已经提前在CloudFlare解析好,把域名指向我vps ip

image-20230407171316639

3.4 获取DNS认证API Token

这一步的目前为了在后续申请域名SSL证书使用的,证明你是域名的所有者 image.png

image.png

image.png

image.png

image.png

先保存好这串字符,下面有用到

3.5 为域名申请SSL证书

image.png

image.png

image.png

大概等待1min左右,就申请好了SSL证书

3.6 增加一个反向代理

image.png image.png image.png 配置SSL证书的时候,就能用到3.5申请的证书啦,这里的证书请按照实际情况填写哈,文章的图片是后面更新的了,域名会对不上。

点击Save 如果看到这样,就是域名还没解析成功 image-20230407171515469

成功是这样的

image.png

3.7 验证服务

然后在浏览器打开你的域名,就看到这把安全的小锁,就证明使用上了https

第一次打开域名时可能有点慢,需要稍微等待一下 如果加载不出来,可以使用隐身模式 image.png

本文作者:花菜

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!