I have noticed that when running Drupal behind a cluster, it only returns the IP address of the outward facing servers, and not the actual IP address of the visitor.

You can imagine the chaos this creates when a module such as SPAM blocks that IP address..

The solution is relatively simple:

Change any references to REMOTE_ADDR in the code (in core it's in session.inc, session.inc, and bootstrap.inc), over to HTTP_X_CLUSTER_CLIENT_IP...

Unfortunately the modules don't receive this info from the core either, so you will have to check your module files.. (And windows search is horrible for searching through code without being modified try to use grep..)

Would be great if newer versions of Drupal passed this info to the modules, then it could be set in core whether to use REMOTE_ADDR or HTTP_X_CLUSTER_CLIENT_IP...

-Myke