Jeg har en loadbalancer (haproxy) foran mine web-server / web-services, primært fordi jeg kun har 1 offentlig ip til rådighed, dette giver lidt forskellige udfordringer.
I laaaangtid har jeg kunne klare mig med en apache reverse proxy, men da jeg pt. roder / tester nogle Microsoft Rpc_over_http(s) ting, som apache2 ikke understøtter/vil understøtte, er HAproxy kommet i spil, hvilket er helt fint, når man lige lære den lidt af kende.

Et par ting jeg har lært.

Klassisk har jeg haft nogle <Directory>  som er blokkeret sådan de ikke kan tilgåes ude fra internettet eller kun meget få offentlige ipaddresser f.eks. administrations sider, dette er ingen problem sålangt tid at den gamle Apache reverse proxy videre gav client site ipaddressen til backenden, men da jeg nu er afhængig af Haproxy og  X-Forwarded-For mulighederne, ser en <Directory> nu lidt anderledes ud.

De 2 nestående er eksemple IP, samt intern lan som vil få adgang til websiden "/admin" 

<Directory /var/www/mitweb/admin>
        SetEnvIF X-Forwarded-For "192.168.1.[1-254]|173.12.19.2" AllowIP
        Options Indexes Multiviews FollowSymLinks
        AllowOverride All
        Order Deny,Allow
        Deny from all
        Allow from env=AllowIP
</Directory>

For at dette kan lade sig gøre skal Option forwardfor være i Haproxy's Backend config til webserveren.

backend bk_webhotel
mode http
option forwardfor
option http-server-close
cookie JSESSIONID prefix
server webhotel 192.168.2.2:80 check

Naturligvis skal apache2.conf på Debian ændres sådan man ser client ipaddresse  apache log'en også, på debian skal følgende linjer ændres, hvilket blot er at følge hvad der er angivet i conf filen.

vi /etc/apache2/apache2.conf

# If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i
#
#LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
#LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
#LogFormat "%h %l %u %t \"%r\" %>s %O" common

LogFormat "%v:%p %{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O" common

Herefter skal apache2 naturligvis en tur rundt før dette får en effekt.