云原生之Docker实战使用Docker部署反向代理 Nginx Proxy Manager

Posted 江湖有缘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生之Docker实战使用Docker部署反向代理 Nginx Proxy Manager相关的知识,希望对你有一定的参考价值。

【云原生之Docker实战】使用Docker部署反向代理 nginx Proxy Manager

一、 Nginx Proxy Manager介绍

1. Nginx Proxy Manager介绍

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

2.Nginx Proxy Manager特点

1.非常适合小白新手使用反向代理功能。
2.有一个漂亮的UI界面,使得使用简单。
3.一分钟可以搞定反向代理+SSL证书申请配置。
4.Docker-compose 一键部署,方便快捷。
5.很容易配置端口转发、404主页、重定向等功能。
6.支持多用户管理。
7.方便管理域名白名单,更好保护局域网的主机及服务器。
8.支持Nginx的深度修改,适合资深工程师玩转。

二、检查docker状态

[root@master npm]# docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:05:12 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:03:33 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.6.1
  GitCommit:        10f428dac7cec44c864e1b830a4623af27a9fc70
 runc:
  Version:          1.1.0
  GitCommit:        v1.1.0-0-g067aaf85
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

三、安装docker-compose

1.安装docker-compose

 curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

2.给docker-compose文件添加执行权限

chmod +x /usr/local/bin/docker-compose 

3.查看docker-compose版本

[root@master npm]# docker-compose -version
docker-compose version 1.25.0, build 0a186604

四、编辑docker-compose.yaml文件

1.编辑yaml安装文件

[root@master npm]# cat docker-compose.yaml 
version: "3"
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: always
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP
    environment:
      DB_mysql_HOST: "192.168.3.146"
      DB_MYSQL_PORT: 3671
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db

  db:
    image: 'jc21/mariadb-aria:latest'
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    ports:
      - 3671:3306
    volumes:
      - ./data/mysql:/var/lib/mysql

2.创建挂载目录

[root@master npm]# mkdir -p ./data
[root@master npm]# mkdir -p ./letsencrypt
[root@master npm]# mkdir -p ./data/mysql

3.安装Nginx Proxy Manager

[root@master npm]# docker-compose up -d
Creating network "npm_default" with the default driver
Pulling db (jc21/mariadb-aria:latest)...
latest: Pulling from jc21/mariadb-aria
df20fa9351a1: Pull complete
c4e214cb7f07: Pull complete
568f83ab8cda: Pull complete
edf866f7abc9: Pull complete
a72600294fbb: Pull complete
3e879d1f1b34: Pull complete
41e2c76755f1: Pull complete
Digest: sha256:9dafab05f863cd186101fd8ac8b18684e8dfd7c3cce1376e552b77d0a8b40839
Status: Downloaded newer image for jc21/mariadb-aria:latest
Pulling app (jc21/nginx-proxy-manager:latest)...
latest: Pulling from jc21/nginx-proxy-manager
72a69066d2fe: Pull complete
825188956e90: Pull complete
6916d26329a2: Pull complete
c38d769b409b: Pull complete
1f80df406181: Pull complete
0f08d5fe2388: Pull complete
8c6f29f06fbf: Pull complete
842e56434587: Pull complete
59b65e9e8c19: Pull complete
2fa90c56d9cd: Pull complete
c34ae494dda2: Pull complete
596a4287c95c: Pull complete
93fed03147ec: Pull complete
06e5cea7a2e8: Pull complete
ed7b32089832: Pull complete
3645a0fd7712: Pull complete
3fc06797edcf: Pull complete
21b8ccd554d9: Pull complete
f1e42dc354f3: Pull complete
d2d267cd8da3: Pull complete
cdb75b136b21: Pull complete
9274cd10b66f: Pull complete
ea2bd62b2698: Pull complete
b205e981c16a: Pull complete
0dafef540f92: Pull complete
8cc9fc813fd3: Pull complete
Digest: sha256:e6d13908c87d150efc1566a9ed1570661f1c3e09362b26bfe7d7608a831e4591
Status: Downloaded newer image for jc21/nginx-proxy-manager:latest
Creating npm_db_1 ... done
Creating npm_app_1 ... done

4.检查安装后容器状态

[root@master npm]# docker ps |grep npm
4102171927b1   jc21/nginx-proxy-manager:latest   "/init"                  About a minute ago   Up About a minute   0.0.0.0:80-81->80-81/tcp, :::80-81->80-81/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   npm_app_1
1e1e3b72dddb   jc21/mariadb-aria:latest          "/scripts/run.sh"        About a minute ago   Up About a minute   0.0.0.0:3671->3306/tcp, :::3671->3306/tcp                                              npm_db_1
[root@master npm]# 

五、 访问Nginx Proxy Manager

1.测试Nginx Proxy Manager

2.登录web界面

http://192.168.3.146:81/login

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

3.打开 Nginx Proxy Manager首页

以上是关于云原生之Docker实战使用Docker部署反向代理 Nginx Proxy Manager的主要内容,如果未能解决你的问题,请参考以下文章

云原生之Docker实战使用Docker部署Komga个人漫画服务器

云原生之Docker实战使用docker部署webssh工具

云原生之Docker实战使用docker部署kodbox私有云

云原生之Docker实战使用Docker部署Cloudreve公有云文件系统

云原生之Docker实战使用docker部署Ghost个人博客系统

云原生之Docker实战使用Docker部署jpress开源网站