nginx获取真实的ip客户端

djmepvbi  于 7个月前  发布在  Nginx
关注(0)|答案(1)|浏览(139)

我使用Nginx,Angular和Sping Boot 。
我无法获得客户端的真实的IP地址。我一直得到127.0.0.1
Cloudflare充当DNS。
我正在本地Windows计算机上测试所有这些。我通过VPN或电话向服务器(本地计算机)发出所有请求。
我做错了什么,如何解决问题?

worker_processes  1;


    events {
        worker_connections  1024;
    }


    http {

        include       mime.types;
        default_type  application/octet-stream;

        sendfile        on;
        keepalive_timeout  65;

        ssl_certificate ./ssl/my-sert.crt;
        ssl_certificate_key ./ssl/my-key.key;

        upstream apispring {
                server 127.0.0.1:8080;
            }

         server {

            listen              443 ssl;
            server_name  apis.sad.com;  

                 proxy_set_header Host $host;
                 proxy_set_header X-Real-IP $remote_addr;

                 #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                 // https://www.cyberciti.biz/faq/nginx-restore-real-ip-address-when-behind-a-reverse-proxy/
                 proxy_set_header CF-Connecting-IP $proxy_add_x_forwarded_for;

            location / {
                 proxy_pass http://apispring;
             }


         }


    }

字符串

mbjcgjjk

mbjcgjjk1#

当我们讨论IP地址和客户端地址时,您可能需要考虑一些网络基础设施基础知识。没有问题,localhost只是当前机器的地址。使用cmd ipconfig获取本地IPv4地址。

**简短回答:**您运行Web应用程序的客户端/Windows计算机具有(1)localhost:8080地址或(2)您家庭的DHCP IPv4本地192.168.1.100/xxx:8080地址。使用https://www.whatsmyip.org/获取您家庭的地理分配ISP IP。
冗长的回答
首先是一般的网络地址:你有(1)互联网协议地址和(2)端口地址。IP地址直接链接到主机/机器。IP地址后面的端口直接链接到该机器上运行的进程或服务。

您可以拥有三个级别的IP地址:

1本地主机级别如果您连接到127.0.0.1,您基本上是在告诉计算机连接到自己。如果您在工作的特定计算机上运行Web应用,地址将始终为localhost。当您运行Web应用时,地址将为localhost:8080
2本地网络级别每个本地网络都有自己的DHCP机制,这意味着设备由本地路由器而不是互联网管理和识别。这些通常通过192.168.1.100地址簿完成。您自己网络中的每个设备都被分配了这样一个唯一的地址。您可以在机器本身或路由器设置中查找这些地址。如果你在某台机器上部署你的应用程序,连接到的地址将得到192.168.1.100:8080
3互联网级别RIR按地理位置管理IP地址,例如,您作为家庭从ISP获得此类IP地址(例如,您从https://www.whatsmyip.org/获得的IP)。如果您想从外部互联网连接到您的家庭,您将需要此地址。如果您在连接到ISP的路由器上有端口转发,并且您配置了端口转发,您可以将ISP IP 226.124.59.27路由到本地计算机IP 192.168.1.102:8080

相关问题