nginx-proxy-manager 是什么

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

2、部署步骤

2.1 安装 docker 和 docker-compose

2.2 创建 docker-compose.yml

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 登录密码

$ 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
得到

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这个项目举例

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 增加一个反向代理

image.png
image.png
image.png

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

成功是这样的

image.png

3.4 验证服务

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

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

更多精彩内容可以关注花菜の博客


↙↙↙阅读原文可查看相关链接,并与作者交流