Devise always recorded remote_ip as 127.0.0.1
Problem
ใน Devise หลังจากเพิ่ม modules :trackable
เข้าไปแล้ว ปรากฏว่า IP ที่ track ได้มักจะเป็น 127.0.0.1
ตลอด
Solution
เพิ่ม proxy_set_header HTTP_CLIENT_IP $remote_addr;
ใน /etc/nginx/nginx.conf
1
2
3
4
5
6
7
8
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HTTP_CLIENT_IP $remote_addr; # <-- add this line
proxy_redirect off;
proxy_pass http://unicorn;
}
เสร็จแล้ว restart nginx
Conclusion
เป็นปัญหาที่การ config nginx ไม่เกี่ยวอะไรกับ devise
References
This post is licensed under CC BY 4.0 by the author.