Fetch real IP using proxy pass

July 3, 2017 4.7k views
Nginx Applications Development DigitalOcean Python Ubuntu

I am attempting to fetch the real IP of the visitor on a Flask application that I am serving using Nginx server blocks on Ubuntu, but I get the same IP with all the visitors (my droplet's IP). How do I fix this?

This is my current server config for my application.

server {
    listen 80;
    server_name subdomain.mysite.com;

    location / {
        proxy_redirect http://subdomain.mysite.com;

1 Answer

You need to setup the x-forwarded-for header, then read this header in your flask app to get the client's real ip address.
Check out this tutorial for more info.

Hope this helps.

by Justin Ellingwood
Nginx is a high performance reverse proxy server and web server. In this guide, we will explore Nginx's http proxying and load balancing capabilities. We will cover how Nginx can use buffers and caching to improve the proxying experience for clients.
Have another answer? Share your knowledge.