Trac uses REMOTE_ADDRESS to determine the client's IP address which can mislead the trac spam filters and flag a submission as spam. To change the behaviour, trac can be modified, to check the X-Real-IP and X-Forwarded-For headers by editing the trac/web/standalone.py file in the trac source and rebuilding trac:
--- trac/web/standalone.py.old 2011-12-12 14:01:33.546973494 +0000
+++ trac/web/standalone.py 2011-12-12 14:00:50.554973513 +0000
@@ -112,6 +112,11 @@
server_version = 'tracd/' + VERSION
def address_string(self):
+ # Get remote address of client if tracd is behind a proxy
+ ip = self.headers.get("X-Real-IP") or \
+ self.headers.get("X-Forwarded-For")
+ if ip:
+ return ip
# Disable reverse name lookups
return self.client_address[:2][0]