nginx获取真实的ip客户端

djmepvbi  于 2023-11-17  发布在  Nginx
关注(0)|答案(1)|浏览(274)

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

  1. worker_processes 1;
  2. events {
  3. worker_connections 1024;
  4. }
  5. http {
  6. include mime.types;
  7. default_type application/octet-stream;
  8. sendfile on;
  9. keepalive_timeout 65;
  10. ssl_certificate ./ssl/my-sert.crt;
  11. ssl_certificate_key ./ssl/my-key.key;
  12. upstream apispring {
  13. server 127.0.0.1:8080;
  14. }
  15. server {
  16. listen 443 ssl;
  17. server_name apis.sad.com;
  18. proxy_set_header Host $host;
  19. proxy_set_header X-Real-IP $remote_addr;
  20. #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  21. // https://www.cyberciti.biz/faq/nginx-restore-real-ip-address-when-behind-a-reverse-proxy/
  22. proxy_set_header CF-Connecting-IP $proxy_add_x_forwarded_for;
  23. location / {
  24. proxy_pass http://apispring;
  25. }
  26. }
  27. }

字符串

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

相关问题