标签归档:X-Forwarded-For

laravel 获取真实ip的事项

# 这个逻辑可以放在中间件里,判断白名单(127.0.0.1或你的其他代理服务器ip)
$ip = $request->ip();
        if (in_array($ip, ['127.0.0.1']))
            $request->setTrustedProxies($request->getClientIps(), Request::HEADER_X_FORWARDED_ALL);

# nginx 配套配置,如果你是nginx转发,按照这个标准来
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;


# 获取IP
echo $request->ip();

X-Forwarded-For 相关连接:https://en.wikipedia.org/wiki/X-Forwarded-For

nginx: [emerg] unknown directive “proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for” in

nginx配置代理转发,部分配置如下

        location / {
            # index index.html index.htm index.php;
            # try_files $uri $uri/ /index.php$request_uri;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Real-Port $remote_port;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass https://10.29.185.61:8063;
        }

reload nginx,正常,配置和header生效
restart nginx,重启失败。。。。

运行nginx,返回:
nginx: [emerg] unknown directive “proxy_set_header X-Real-IP $remote_addr” in /etc/nginx/doufu.la.conf:54
注释掉
# proxy_set_header X-Real-IP $remote_addr;
运行nginx,返回:
nginx: [emerg] unknown directive “proxy_set_header X-Real-Port $remote_port” in /etc/nginx/doufu.la.conf:55
注释掉
# proxy_set_header X-Real-Port $remote_port;
运行nginx,返回:
nginx: [emerg] unknown directive “proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for” in /etc/nginx/doufu.la.conf:56
注释掉
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

MMP,咋回事啊?
nginx -t啊,先test,论test的重要性

正确:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

结论:
不要随便copy代码