我使用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;
}
}
}
字符串
1条答案
按热度按时间mbjcgjjk1#
当我们讨论IP地址和客户端地址时,您可能需要考虑一些网络基础设施基础知识。没有问题,
localhost
只是当前机器的地址。使用cmdipconfig
获取本地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
路由到本地计算机IP192.168.1.102:8080
。