.. meta:: :description: Information about setting up a reverse proxy for ThinLinc Web Access in a distributed cluster. .. _reverse_proxy_distributed: Distributed agents ~~~~~~~~~~~~~~~~~~ In complex or geographically distributed environments, you may not want to proxy all agent connections through a single entry point. A more scalable approach is to use a main proxy for the login page, which then redirects clients to their specific agent connections. .. code:: nginx location ~ /connect/tl.sweden.example.com/(.*) { return 307 https://tl.sweden.example.com/$1; } The redirection sends the client to a new hostname. This can be the agent server directly, if it is exposed on the network. Alternatively, it can be a dedicated proxy server configured to forward the traffic to the internal agent as below. .. code:: nginx server { listen 443 ssl; server_name tl.sweden.example.com; # ... (SSL configuration) ... location / { proxy_pass https://tl.internal.sweden.example.com:300/; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; } } The following configuration brings together all the concepts discussed in this guide for a more advanced example. .. code:: nginx server { listen 443 ssl; server_name tl.example.com; # ... (SSL configuration) ... proxy_read_timeout 999h; location /subpath/ { proxy_pass https://tl.internal.example.com:300/; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; } location /subpath/connect/tl.internal.example.com/ { proxy_pass https://tl.internal.example.com:300/; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; } location ~ /subpath/connect/tl.sweden.example.com/(.*) { return 307 https://tl.sweden.example.com/$1; } } server { listen 443 ssl; server_name tl.sweden.example.com; # ... (SSL configuration) ... location / { proxy_pass https://tl.internal.sweden.example.com:300/; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; } }