Pmm server inside docker with host nginx proxy pass and client connection

server1 (with pmm server):

services:
  pmm-server:
    image: percona/pmm-server:latest
    container_name: pmm-server
    ports:
      - '127.0.0.1:81:80'
      - '8443:443'
    restart: always
    environment:
      - SERVER_USER=<user>
      - SERVER_PASSWORD=<passwd>
      - METRICS_RETENTION=150h
      - METRICS_MEMORY=4194304
      - METRICS_RESOLUTION=1s
      - QUERIES_RETENTION=30
      - PMM_PUBLIC_ADDRESS=<domain>
    volumes:
      - ./storage:/srv

nginx:


upstream managed-grpc {
  server 127.0.0.1:8443;
  keepalive 32;
}

server {
    server_name <DOMAIN>;

    location / {
        proxy_pass http://127.0.0.1:81;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    
    location /agent. {
        grpc_pass grpcs://managed-grpc;
    client_max_body_size 0;
   }

   location /inventory. {
        grpc_pass grpcs://managed-grpc;
   }

   location /management. {
        grpc_pass grpcs://managed-grpc;
   }

   location /server. {
        grpc_pass grpcs://managed-grpc;
   }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/<DOMAIN>/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/<DOMAIN>/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
    if ($host = <DOMAIN>) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name <DOMAIN>;
    return 404; # managed by Certbot


}

server2 (pmm-agent)
docker:


version: '3'

services:
  pmm-agent:
    container_name: pmm-agent
    image: percona/pmm-client:2
    volumes:
      - pmm-client-data:/srv
        #      - .config/pmm-agent.yaml:/config/pmm-agent.yaml
    environment:
      - PMM_AGENT_SERVER_ADDRESS=<DOMAIN>
      - PMM_AGENT_SERVER_INSECURE_TLS=true
      - PMM_AGENT_SERVER_USERNAME=<PMM-USER>
      - PMM_AGENT_SERVER_PASSWORD=<PMM-PWD>
      - PMM_AGENT_SETUP=1
      - PMM_AGENT_CONFIG_FILE=config/pmm-agent.yaml

volumes:
  pmm-client-data:

Error:


 ✔ Container pmm-agent  Recreated                                                                                                                                                                                              0.2s 
Attaching to pmm-agent
pmm-agent  | time="2024-06-12T11:49:23.349+00:00" level=info msg="Run setup: true Sidecar mode: false" component=entrypoint
pmm-agent  | time="2024-06-12T11:49:23.350+00:00" level=info msg="Starting 'pmm-agent setup'..." component=entrypoint
pmm-agent  | time="2024-06-12T11:49:23.372+00:00" level=info msg="Loading configuration file /usr/local/percona/pmm2/config/pmm-agent.yaml." component=setup
pmm-agent  | time="2024-06-12T11:49:23.373+00:00" level=info msg="Temporary directory is not configured and will be set to /usr/local/percona/pmm2/tmp" component=setup
pmm-agent  | time="2024-06-12T11:49:23.373+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/node_exporter" component=setup
pmm-agent  | time="2024-06-12T11:49:23.373+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/mysqld_exporter" component=setup
pmm-agent  | time="2024-06-12T11:49:23.373+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/mongodb_exporter" component=setup
pmm-agent  | time="2024-06-12T11:49:23.373+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/postgres_exporter" component=setup
pmm-agent  | time="2024-06-12T11:49:23.373+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/proxysql_exporter" component=setup
pmm-agent  | time="2024-06-12T11:49:23.373+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/rds_exporter" component=setup
pmm-agent  | time="2024-06-12T11:49:23.373+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/azure_exporter" component=setup
pmm-agent  | time="2024-06-12T11:49:23.373+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/vmagent" component=setup
pmm-agent  | Checking local pmm-agent status...
pmm-agent  | pmm-agent is not running.
pmm-agent  | Registering pmm-agent on PMM Server...
pmm-agent  | Registered.
pmm-agent  | Configuration file /usr/local/percona/pmm2/config/pmm-agent.yaml updated.
pmm-agent  | Please start pmm-agent: `pmm-agent --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml`.
pmm-agent  | time="2024-06-12T11:49:23.792+00:00" level=info msg="'pmm-agent setup' exited with 0" component=entrypoint
pmm-agent  | time="2024-06-12T11:49:23.792+00:00" level=info msg="Starting 'pmm-agent run'..." component=entrypoint
pmm-agent  | time="2024-06-12T11:49:23.812+00:00" level=info msg="Loading configuration file /usr/local/percona/pmm2/config/pmm-agent.yaml." component=main
pmm-agent  | time="2024-06-12T11:49:23.813+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/node_exporter" component=main
pmm-agent  | time="2024-06-12T11:49:23.813+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/mysqld_exporter" component=main
pmm-agent  | time="2024-06-12T11:49:23.813+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/mongodb_exporter" component=main
pmm-agent  | time="2024-06-12T11:49:23.813+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/postgres_exporter" component=main
pmm-agent  | time="2024-06-12T11:49:23.813+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/proxysql_exporter" component=main
pmm-agent  | time="2024-06-12T11:49:23.813+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/rds_exporter" component=main
pmm-agent  | time="2024-06-12T11:49:23.813+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/azure_exporter" component=main
pmm-agent  | time="2024-06-12T11:49:23.813+00:00" level=info msg="Using /usr/local/percona/pmm2/exporters/vmagent" component=main
pmm-agent  | time="2024-06-12T11:49:23.813+00:00" level=info msg="Runner capacity set to 32, token capacity set to 2" component=runner
pmm-agent  | time="2024-06-12T11:49:23.814+00:00" level=info msg="Window check connection time is 1.00 hour(s)"
pmm-agent  | time="2024-06-12T11:49:23.814+00:00" level=info msg=Starting... component=client
pmm-agent  | time="2024-06-12T11:49:23.814+00:00" level=info msg="Connecting to https://<user>:***@<DOMAIN>:443/ ..." component=client
pmm-agent  | time="2024-06-12T11:49:23.814+00:00" level=info msg="Starting local API server on http://127.0.0.1:7777/ ..." component=local-server/JSON
pmm-agent  | time="2024-06-12T11:49:23.817+00:00" level=info msg=Started. component=local-server/JSON
pmm-agent  | time="2024-06-12T11:49:28.815+00:00" level=error msg="Failed to connect to <DOMAIN>:443: timeout." component=client
pmm-agent  | time="2024-06-12T11:49:29.778+00:00" level=info msg="Connecting to https://<user>:***@<DOMAIN>:443/ ..." component=client
pmm-agent  | time="2024-06-12T11:49:34.779+00:00" level=error msg="Failed to connect to <DOMAIN>:443: timeout." component=client
pmm-agent  | time="2024-06-12T11:49:36.268+00:00" level=info msg="Connecting to https://<user>:***@<DOMAIN>:443/ ..." component=client
pmm-agent  | time="2024-06-12T11:49:41.270+00:00" level=error msg="Failed to connect to <DOMAIN>:443: timeout." component=client
pmm-agent  | time="2024-06-12T11:49:43.657+00:00" level=info msg="Connecting to https://<user>:***@<DOMAIN>:443/ ..." component=client
pmm-agent  | time="2024-06-12T11:49:48.657+00:00" level=error msg="Failed to connect to <DOMAIN>:443: timeout." component=client
pmm-agent  | time="2024-06-12T11:49:52.155+00:00" level=info msg="Connecting to https://<user>:***@<DOMAIN>:443/ ..." component=client
pmm-agent  | time="2024-06-12T11:49:57.155+00:00" level=error msg="Failed to connect to <DOMAIN>:443: timeout." component=client
pmm-agent  | time="2024-06-12T11:50:01.063+00:00" level=info msg="Connecting to https://<user>:***@<DOMAIN>:443/ ..." component=client
pmm-agent  | time="2024-06-12T11:50:06.065+00:00" level=error msg="Failed to connect to <DOMAIN>:443: timeout." component=client

but, authorization is successful, inside pmm server was created “Failed” node

cert R3 valid, curl and telnet successful work

how to fix it?

Why are you using nginx? PMM Server already includes an Nginx server which is handling many pieces of functionality. I think you should first run PMM as intended, verify that it works, then try adding additional parts in the middle.