6 Star 72 Fork 28

JustryDeng / notebook

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
[09]docker安装nginx proxy manager.md 6.11 KB
一键复制 编辑 原始数据 按行查看 历史
JustryDeng 提交于 2024-01-31 13:47 . docker安装nginx-webui

docker安装nginx proxy manager

安装

第一步:确保安装有docker-compose

安装教程见CentOS、Ubuntu安装docker、docker-compose

image-20231115143453746

第二步:准备相关目录及文件

  • 准备目录

    mkdir -p /usr/local/docker-compose/more/nginx-proxy-manager
  • 准备文件

    详见官网

    cat > docker-compose.yml << \EOF
    version: '3.8'
    services:
      app:
        # 更多版本详见 https://hub.docker.com/r/jc21/nginx-proxy-manager/tags
        #image: 'jc21/nginx-proxy-manager:latest'
        image: 'jc21/nginx-proxy-manager:2'
        restart: unless-stopped
        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:
          # Mysql/Maria connection parameters:
          DB_MYSQL_HOST: "db"
          DB_MYSQL_PORT: 3306
          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
      # 此数据库主要用于存储nginx-proxy-manager的相关配置
      db:
        # 更多版本详见 https://hub.docker.com/r/jc21/mariadb-aria/tags
        #image: 'jc21/mariadb-aria:latest'
        image: 'jc21/mariadb-aria:10.4.15'
        restart: unless-stopped
        environment:
          MYSQL_ROOT_PASSWORD: 'npm'
          MYSQL_DATABASE: 'npm'
          MYSQL_USER: 'npm'
          MYSQL_PASSWORD: 'npm'
        volumes:
          - ./mysql:/var/lib/mysql
    EOF

    image-20231115150413635

第三步:拉起nginx proxy manager

# 启动
docker-compose up -d

image-20231115150939784

第四步:登录nginx proxy manager,并重置密码

访问:{host}:81进入管理界面

初始化账密为:

Email:    admin@example.com
Password: changeme

image-20231115151148542

修改相关信息

image-20231115151419837

image-20231115151446596

第五步(可选):配置SSL证书

提示:如果你用不到ssl证书,那么可以跳过

方式一:导入已有证书

需要提前准备好证书

image-20231115153201054

image-20231115153424661

注:上图中,name自取即可。考虑到望文知义,建议与证书对应的域名保持一致。

image-20231115153451123

方式二:生成免费证书

image-20231115163056990

image-20231115163325989

说明:

  • ①:这里申请的是泛域名,所以用了 *.idea-aedi.com,这样不用为每个 Proxy Host 去申请证书

  • ②:如果你之前申请过 Let's Encrypt 的证书,那么这里最好跟之前的邮件保持一致,避免不必要的麻烦

  • ③:启用即可

  • ④:配置Let's Encrypt要对接服务商以及对应的对接秘钥,本人这里用的是Aliyun,需要阿里云账号的ak、sk。考虑到主账号的ak/sk有所有的权限,所以本人这里先创建了一个子账号,同时限定该子账号只具有DNS相关的权限,最后再给该子账号生成属于该子账号的ak/sk:

    1. 创建一个子账号

      image-20231115164009605

    2. 给子账号授权

      image-20231115164300192

    3. 给子账号生成ak、sk

      image-20231115164439373

  • ⑤:同意即可

image-20231115164531360

第六步:设置反向代理

image-20231115154554554

image-20231115154730614

说明:

  • ①:你的域名
  • ②:要反向代理去的目标地址(即:访问域名时,会将请求定向至这里)
  • ③:设置阻止常见漏洞

image-20231115155035908

说明:

  • ①:选择第五步配置的ssl证书
  • ②:是否强制走ssl,即:是否自动将非ssl的请求转换为ssl请求(如:开启了此项后,那么当使用http进行访问时,会自动转换成https进行访问)

第七步:访问测试

image-20231115165726449

相关资料

1
https://gitee.com/JustryDeng/notebook.git
git@gitee.com:JustryDeng/notebook.git
JustryDeng
notebook
notebook
master

搜索帮助