myesn

myEsn2E9

hi
github

ASP.NET Core: Losing Client IP After nginx Reverse Proxy

Add the following directive in the nginx website configuration:

server {

    # reverse proxy
    location / {
        proxy_pass            http://127.0.0.1:5000;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header Forwarded         $proxy_add_forwarded;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host  $host;
        proxy_set_header X-Forwarded-Port  $server_port;
    }
}

Remember to nginx -s reload after modifying the nginx configuration.

Add the following middleware in the ASP.NET Core program:

app.UseForwardedHeaders(new ForwardedHeadersOptions
{
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});

After the configuration is complete, you can obtain the client IP in the original way, and the middleware will handle the adaptation issues properly.

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.