Some networks place a relay between the browsers and the Artica proxy.
A VirtualBrowser cluster is a common example: users browse inside a remote, isolated browser, and the VirtualBrowser servers send the web requests to Artica.
A load balancer or a parent proxy in front of Artica behaves the same way.
Without any setting, Artica only sees the relay.
Every request in Realtime requests, in the logs and in the statistics shows the IP address of a VirtualBrowser server.
The real user and the real workstation are lost.
The relay usually sends this information in two HTTP headers:
X-Forwarded-For carries the IP address of the user's workstation.X-Authenticated-User carries the name of the user authenticated by the relay.Artica can read both headers.
X-Forwarded-For.X-Authenticated-User only on marked requests and hands the name back to the proxy.The proxy checks the address of the machine connected to it.
The content of the headers cannot change that address.
A user authenticated by the proxy itself (Kerberos, NTLM, LDAP) always takes precedence over the header.
X-Forwarded-For and, for the user name, X-Authenticated-User.Filtering service > Proxy connector.Open Your proxy > Global settings.
In the Events section, the card Follow sources clients addresses lists the declared relays.
The card User from the X-Authenticated-User header shows the state of the option.
Click the card Follow sources clients addresses to open the list of relays.
Click New Server and type the address of a relay.
Repeat for each VirtualBrowser server.
Three formats are accepted:
192.168.90.116.192.168.90.0/24.192.168.90.116-192.168.90.117.Declare only the relays.
Every declared address is trusted to tell the proxy who the user is.
The check box in the Enabled column suspends a relay without deleting it.
Each change reloads the proxy.
In the same window, click User from the X-Authenticated-User header.
The button switches between Enabled and Disabled, and the proxy reloads.
The option has no effect while no relay is declared.
When the option is disabled, the proxy still follows X-Forwarded-For from the declared relays.
Click Requests in the top bar to open Realtime requests.
In this example, every request comes from the VirtualBrowser server 192.168.90.116.
10.20.4.31/jsmith, 10.20.4.58/mdupont, 10.20.5.12/akhan.192.168.90.115, an address that is not declared.X-Forwarded-For: 10.20.9.9 and X-Authenticated-User: administrator.To find the requests of one user, see How to find an IP address and/or an user or a domain in realtime monitor.
The card protocol X-Forwarded-For, next to the relays, is a different setting.
It controls the header that Artica sends to the web sites, not the header it receives from the relays.
| Value | Header sent to the web sites |
|---|---|
| Enabled | Artica adds the client IP address to the header. |
| Disabled | Artica adds unknown instead of the client IP address. |
| pass | Artica forwards the header unchanged. |
| anonymous | Artica removes the header. |
| hide | Artica replaces the header with the client IP address only. |
Both settings are independent.
The relays you declare are taken into account whatever the value of protocol X-Forwarded-For.
The same settings are available on the local REST socket.
SOCKET=/usr/share/artica-postfix/bin/run/articarest.sock
# List the relays
curl -s --unix-socket $SOCKET http://localhost/proxy/balancers
# Add a relay, then apply (rebuild and one reload)
curl -s --unix-socket $SOCKET -X POST -d '{"ipsrc":"192.168.90.116"}' http://localhost/proxy/balancers
curl -s --unix-socket $SOCKET http://localhost/proxy/balancers/apply
# Suspend or resume relay 2, delete relay 2
curl -s --unix-socket $SOCKET -X PUT http://localhost/proxy/balancers/2/toggle
curl -s --unix-socket $SOCKET -X DELETE http://localhost/proxy/balancers/2
# State of the X-Authenticated-User option
curl -s --unix-socket $SOCKET http://localhost/proxy/balancers/xauthuser
{"Status":true,"Error":"","Data":{"enabled":true,"supported":true,"sources":2}}
# Enable it (the proxy reloads by itself)
curl -s --unix-socket $SOCKET -X PUT -d '{"enabled":true}' http://localhost/proxy/balancers/xauthuser
supported is false on proxy versions older than 5.sources counts the enabled relays.
X-Authenticated-User with its own value.
| Symptom | Check |
|---|---|
| Requests still show the relay address. | The relay is declared with the address it uses to connect to the proxy. The relay sends X-Forwarded-For. |
| The real IP address appears but no user. | The option User from the X-Authenticated-User header is enabled. The Proxy connector is active. The relay sends X-Authenticated-User with this exact name. |
| A relay entered as a range is ignored. | Versions before October 2026 dropped ranges silently. Update Artica, or declare each address. |
| The option button does not appear. | The proxy version is older than 5. Only X-Forwarded-For is available. |