All users have the same IP (the Servers IP)?

Yes, I am currently using the code you have sent me. The problem is that
even with the above code it seems that the servers IP is detected (you can
even put that IP in the url bar and it would bring you to the forums). I
have tried turning off cloud flare but I am still getting the same result.

Edit: I have used PHP on my machine to check my IP and the IP is returning fine. (outside of discourse) I am wondering if there is any way to debug what’s happening so that I know what the exact problem is. Currently all I know is that Discourse seems to be grabbing the servers address instead of the clients.

Edit 2: I have found that the issue is being caused because I am using a proxy port. Currently trying to fix the issue using a code similar to this configuration ( that was mentioned above by @bartv ). Will update this post once again with my progress.

Edit 3: No luck so far… Lets say I am using port 80 and port 1337, I am using port 80 to proxy over to 1337 because my port 80 is already in use by something else. My settings are…

"1337:80"   # fwd host port 1337 to container port 80 (http)

When I connect to example.com:1337 my IP resolves correctly however when I connect to example.com:80 my IP resolves to the servers IP.

My nginx settings to get to Discourse are…

location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_redirect off;
    # pass to the upstream discourse server mentioned above
    proxy_pass http://xx.xx.xx.xxx:1337;
}

I really hope I can get some help with this…