bmybbs / PrototypeDevManagement

1 stars 1 forks source link

获取客户端 IP 方法变更 #55

Open IronBlood opened 10 years ago

IronBlood commented 10 years ago

原始需求:使用 nginx 作为前置的服务器,用于处理和客户端的 HTTPS 连接,处理客户端的静态资源请求,并将 API 请求转发给 Onion 端口。 Nginx 配置参考:

server {
    root /var/www;

    location /api/ {
        proxy_pass http://localhost:8080/;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

真实的客户端 IP 被保存在 HTTP 头部名为 X-Real-IP 的变量里,因此获取 IP 的方法需要变更为如下,否则获取客户端的 IP 会为 127.0.0.1

onion_request_get_client_description(req);
onion_request_get_header(req, "X-Real-IP");
Liu-Ameng commented 10 years ago

嗯。main.c该一下就好了吧。

IronBlood commented 10 years ago

main.c 无关啊,绝大多数api内部调用的时候都应当获取请求来源,并且更新 userinfo。