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;


These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

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.
Submit an Answer