使用docker compose部署nginx-proxy-manager并配置子域名

使用docker compose部署nginx-proxy-manager并配置子域名

部署npm

创建npm目录

mkdir npm
cd npm
sudo nano docker-compose.yml
version: "3.9"

services:
  npm:
    image: jc21/nginx-proxy-manager:latest
    container_name: nginx_proxy_manager
    restart: unless-stopped

    ports:
      - "80:80"      # HTTP
      - "81:81"      # NPM 管理后台
      - "443:443"    # HTTPS

    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

保存文件。

sudo docker compose up -d

配置npm

浏览器输入你的ip:81访问网页,第一次访问npm管理后台设置密码与邮箱即可,更改默认密码

进入管理后台后,点击证书列表,再点击添加证书

点击自定义证书

此处使用cf15年证书,(ssl证书申请可参考为本地apache启用cloudflare的15年证书,并启用https – 奇奇怪怪的小窝)名称自定义,此处写为

cf

证书密钥选择文件上传之前保存的privkey.pem,证书选择并上传fullchain.pem,中间证书不选择(cf这个证书不需要),点击保存即可。

点击主机列表,代理服务,再点击添加代理服务

域名处填写域名,比如此处填写img.test.com

协议选择http

转发主机名选择容器名称,此处填写php_apache ,(可通过sudo docker ps查看容器名称)

转发端口选择80,(看你的容器内部监听哪个端口)

勾选阻止常见攻击websockets支持。

再点击上方的ssl

下拉选择cf证书

勾选下述

点击保存

配置cf

点击dns,记录,再次点击打开窗口右侧的添加记录

名称填写img

ipv4地址填写你的ip

点击保存

创建一个专用网络

sudo docker network create web

将该容器加入到网络

sudo docker network connect web nginx_proxy_manager
sudo docker network connect web php_apache

重启npm

sudo docker restart nginx_proxy_manager

浏览器访问你的子域名就可以啦

比如访问img.test.com 就可以访问网站内容了。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注