--- title: Troubleshooting nginx-proxy --- The `nginx-proxy` container is deployed on every node that does not have the `controlplane` role. It provides access to all the nodes with the `controlplane` role by dynamically generating the NGINX configuration based on available nodes with the `controlplane` role. ## Check if the Container is Running The container is called `nginx-proxy` and should have status `Up`. The duration shown after `Up` is the time the container has been running. ``` docker ps -a -f=name=nginx-proxy ``` Example output: ``` docker ps -a -f=name=nginx-proxy CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c3e933687c0e rancher/rke-tools:v0.1.15 "nginx-proxy CP_HO..." 3 hours ago Up 3 hours nginx-proxy ``` ## Check Generated NGINX Configuration The generated configuration should include the IP addresses of the nodes with the `controlplane` role. The configuration can be checked using the following command: ``` docker exec nginx-proxy cat /etc/nginx/nginx.conf ``` Example output: ``` error_log stderr notice; worker_processes auto; events { multi_accept on; use epoll; worker_connections 1024; } stream { upstream kube_apiserver { server ip_of_controlplane_node1:6443; server ip_of_controlplane_node2:6443; } server { listen 6443; proxy_pass kube_apiserver; proxy_timeout 30; proxy_connect_timeout 2s; } } ``` ## nginx-proxy Container Logging The logging of the containers can contain information on what the problem could be. ``` docker logs nginx-proxy ```