情形:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
docker-compose logs
WARN[0000] /root/nginxProxyManager/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion 
nginx_proxy_manager  | ❯ Configuring npm user ...
nginx_proxy_manager  | useradd warning: npm's uid 0 outside of the UID_MIN 1000 and UID_MAX 60000 range.
nginx_proxy_manager  | ❯ Configuring npm group ...
nginx_proxy_manager  | ❯ Checking paths ...
nginx_proxy_manager  | ❯ Setting ownership ...
nginx_proxy_manager  | ❯ Dynamic resolvers ...
nginx_proxy_manager  | ❯ IPv6 ...
nginx_proxy_manager  | Enabling IPV6 in hosts in: /etc/nginx/conf.d
nginx_proxy_manager  | - /etc/nginx/conf.d/default.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/log.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/ssl-ciphers.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/letsencrypt-acme-challenge.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/proxy.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/force-ssl.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/ip_ranges.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/block-exploits.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/assets.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/resolvers.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/production.conf
nginx_proxy_manager  | Enabling IPV6 in hosts in: /data/nginx
nginx_proxy_manager  | ❯ Docker secrets ...
nginx_proxy_manager  | 
nginx_proxy_manager  | -------------------------------------
nginx_proxy_manager  |  _   _ ____  __  __
nginx_proxy_manager  | | \ | |  _ \|  \/  |
nginx_proxy_manager  | |  \| | |_) | |\/| |
nginx_proxy_manager  | | |\  |  __/| |  | |
nginx_proxy_manager  | |_| \_|_|   |_|  |_|
nginx_proxy_manager  | -------------------------------------
nginx_proxy_manager  | User:  npm PUID:0 ID:0 GROUP:0
nginx_proxy_manager  | Group: npm PGID:0 ID:0
nginx_proxy_manager  | -------------------------------------
nginx_proxy_manager  | 
nginx_proxy_manager  | ❯ Starting nginx ...
nginx_proxy_manager  | ❯ Starting backend ...
nginx_proxy_manager  | [8/15/2024] [10:28:14 AM] [Global   ] › ℹ  info      Using Sqlite: /data/database.sqlite
nginx_proxy_manager  | [8/15/2024] [10:28:14 AM] [Global   ] › ℹ  info      Creating a new JWT key pair...
nginx_proxy_manager  | [8/15/2024] [10:28:24 AM] [Global   ] › ℹ  info      Wrote JWT key pair to config file: /data/keys.json
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      Current database version: none
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [initial-schema] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [initial-schema] auth Table created
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [initial-schema] user Table created
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [initial-schema] user_permission Table created
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [initial-schema] proxy_host Table created
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [initial-schema] redirection_host Table created
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [initial-schema] dead_host Table created
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [initial-schema] stream Table created
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [initial-schema] access_list Table created
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [initial-schema] certificate Table created
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [initial-schema] access_list_auth Table created
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [initial-schema] audit_log Table created
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [websockets] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [websockets] proxy_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [forward_host] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [forward_host] proxy_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [http2_support] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [http2_support] proxy_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [http2_support] redirection_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [http2_support] dead_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [forward_scheme] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [forward_scheme] proxy_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [disabled] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [disabled] proxy_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [disabled] redirection_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [disabled] dead_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [disabled] stream Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [custom_locations] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [custom_locations] proxy_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [hsts] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [hsts] proxy_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [hsts] redirection_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [hsts] dead_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [settings] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [settings] setting Table created
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [access_list_client] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [access_list_client] access_list_client Table created
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [access_list_client] access_list Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [access_list_client_fix] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [access_list_client_fix] access_list Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [pass_auth] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [pass_auth] access_list Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [redirection_scheme] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [redirection_scheme] redirection_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [redirection_status_code] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [redirection_status_code] redirection_host Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [stream_domain] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [stream_domain] stream Table altered
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Migrate  ] › ℹ  info      [stream_domain] Migrating Up...
nginx_proxy_manager  | [8/15/2024] [10:28:25 AM] [Setup    ] › ℹ  info      Creating a new user: [email protected] with password: changeme
nginx_proxy_manager  | [8/15/2024] [10:28:26 AM] [Setup    ] › ℹ  info      Initial admin setup completed
nginx_proxy_manager  | [8/15/2024] [10:28:26 AM] [Setup    ] › ℹ  info      Default settings added
nginx_proxy_manager  | [8/15/2024] [10:28:26 AM] [Setup    ] › ℹ  info      Logrotate Timer initialized
nginx_proxy_manager  | [8/15/2024] [10:28:26 AM] [Global   ] › ⬤  debug     CMD: logrotate /etc/logrotate.d/nginx-proxy-manager
nginx_proxy_manager  | [8/15/2024] [10:28:26 AM] [Setup    ] › ℹ  info      Logrotate completed.
nginx_proxy_manager  | [8/15/2024] [10:28:26 AM] [IP Ranges] › ℹ  info      Fetching IP Ranges from online services...
nginx_proxy_manager  | [8/15/2024] [10:28:26 AM] [IP Ranges] › ℹ  info      Fetching https://ip-ranges.amazonaws.com/ip-ranges.json

一切正常并没有报错 但是一旦输入网址 (ip:81), 输入账号密码想要登录,就会报错Responsive Image

image.png

测试环节,

1
2
3
4
5
6
curl -X POST --location 'yourIPv4:81/api/tokens' \
--header 'Content-Type: application/json' \
--data-raw '{
    "identity": "[email protected]",
    "secret": "yourPassword"
}'
1
2
3
4
5
6
curl -X POST --location 'http://116.198.243.241:81/api/tokens' \
--header 'Content-Type: application/json' \
--data-raw '{
    "identity": "[email protected]",
    "secret": "changeme"
}'

输入上述看看,返回的 response 应该是这样的

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<html>
<head>
    <title>502 Bad Gateway</title>
</head>
<body>
    <center>
        <h1>502 Bad Gateway</h1>
    </center>
    <hr>
    <center>openresty</center>
</body>
</html>

1. 方法一

回滚至 2.9.18 版本不生效,有时候升级版本可能会出现问题

2. 方法二

The quickest/easiest workaround for this that doesn’t require direct config changes is to change the permissions on the mysql folder:
chmod 777 -R <mysql folder>

Permissions can be adjusted back to 755 once the issue has been resolved.

3. 方法三

先使用最简单版本的 nginx Proxy manager 进行判断 Guide | Nginx Proxy Manager

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

仍然没有效果

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
nginx_proxy_manager  | ❯ Configuring npm user ...
nginx_proxy_manager  | useradd warning: npm's uid 0 outside of the UID_MIN 1000 and UID_MAX 60000 range.
nginx_proxy_manager  | ❯ Configuring npm group ...
nginx_proxy_manager  | ❯ Checking paths ...
nginx_proxy_manager  | ❯ Setting ownership ...
nginx_proxy_manager  | ❯ Dynamic resolvers ...
nginx_proxy_manager  | ❯ IPv6 ...
nginx_proxy_manager  | Enabling IPV6 in hosts in: /etc/nginx/conf.d
nginx_proxy_manager  | - /etc/nginx/conf.d/default.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/log.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/ssl-ciphers.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/letsencrypt-acme-challenge.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/proxy.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/force-ssl.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/ip_ranges.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/block-exploits.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/assets.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/include/resolvers.conf
nginx_proxy_manager  | - /etc/nginx/conf.d/production.conf
nginx_proxy_manager  | Enabling IPV6 in hosts in: /data/nginx
nginx_proxy_manager  | ❯ Docker secrets ...
nginx_proxy_manager  | 
nginx_proxy_manager  | -------------------------------------
nginx_proxy_manager  |  _   _ ____  __  __
nginx_proxy_manager  | | \ | |  _ \|  \/  |
nginx_proxy_manager  | |  \| | |_) | |\/| |
nginx_proxy_manager  | | |\  |  __/| |  | |
nginx_proxy_manager  | |_| \_|_|   |_|  |_|
nginx_proxy_manager  | -------------------------------------
nginx_proxy_manager  | User:  npm PUID:0 ID:0 GROUP:0
nginx_proxy_manager  | Group: npm PGID:0 ID:0
nginx_proxy_manager  | -------------------------------------
nginx_proxy_manager  | 
nginx_proxy_manager  | ❯ Starting nginx ...
nginx_proxy_manager  | ❯ Starting backend ...
nginx_proxy_manager  | [8/15/2024] [2:54:13 PM] [Global   ] › ℹ  info      Using Sqlite: /data/database.sqlite
nginx_proxy_manager  | [8/15/2024] [2:54:16 PM] [Migrate  ] › ℹ  info      Current database version: none
nginx_proxy_manager  | [8/15/2024] [2:54:16 PM] [Setup    ] › ℹ  info      Logrotate Timer initialized
nginx_proxy_manager  | [8/15/2024] [2:54:16 PM] [Global   ] › ⬤  debug     CMD: logrotate /etc/logrotate.d/nginx-proxy-manager
nginx_proxy_manager  | [8/15/2024] [2:54:16 PM] [Setup    ] › ℹ  info      Logrotate completed.
nginx_proxy_manager  | [8/15/2024] [2:54:16 PM] [IP Ranges] › ℹ  info      Fetching IP Ranges from online services...
nginx_proxy_manager  | [8/15/2024] [2:54:16 PM] [IP Ranges] › ℹ  info      Fetching https://ip-ranges.amazonaws.com/ip-ranges.json

在第四十行显示 Current database version: none, 对此表示疑问,有没有可能是因为这个问题出现了错误

我采用 npm+mysql 重新进行

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    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: "npm7410@"
      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: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm7410@'
      MARIADB_AUTO_UPGRADE: '1'
    volumes:
      - ./mysql:/var/lib/mysql

4. 方法四

原因:多个 nginx 导致了端口占用或是冲突

Responsive Image

image.png

4.1. 停止使用该镜像的容器

列出所有正在运行的容器:

1
docker ps

列出所有容器,包括已停止的容器:

1
docker ps -a

运行一个停止的容器

1
docker start container_id

停止运行的容器:

1
docker stop <container_id>

删除容器:

1
docker rm <container_id>

4.2. 删除 Docker 镜像

一旦确认没有任何容器在使用该镜像,就可以删除该镜像。你可以使用镜像的名字或 ID 删除镜像。

使用镜像名字删除:

1
docker rmi my-image:latest

使用镜像 ID 删除:

1
docker rmi d64d3505b0d2

如果镜像有多个 tag,可以使用 -f 强制删除:

1
docker rmi -f <image_id>

确认镜像已删除: 再次列出所有镜像,确认镜像已成功删除。

1
docker images

注意:如果你在删除镜像时遇到问题,确保没有任何容器在使用该镜像。你可以通过删除所有未使用的镜像来清理系统:

1
docker image prune -a

docker images 显示的和 docker-compose ps -a 显示的不一样

有多个 nginx 或者是 nginx proxy manager的存在

重新

1
docker-compose up -d

用命令检查一下是否还同时存在 nginx 和 nginx proxy manager 排除问题后,登录测试,成功登录!