首页 > 解决方案 > uv_ip4_name 总是得到 127.0.0.1

问题描述

这是我当前的代码:

        struct sockaddr_storage addr;
        
        int addr_len = sizeof(addr);
        uv_tcp_getpeername(client, (struct sockaddr*) &addr, &addr_len);
        
        char buf[128];
        if(uv_ip4_name((struct sockaddr_in*) &addr, buf, sizeof buf) != 0) buf[0] = '\0';

这在没有 nginx 的情况下工作,但现在我将 ngnix 用于 ssl。这是我的配置的一部分:

        proxy_http_version 1.1;
        proxy_pass http://localhost:2828;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Client-IP $remote_addr;
        proxy_set_header X-Real-IP $remote_addr;
        real_ip_header CF-Connecting-IP;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;

这仍然对什么bufbuf是ip)没有任何影响。它总是 127.0.0.1

标签: c++nginxlibuv

解决方案


推荐阅读