Nginx反向代理后无法获取客户端真实IP地址怎么解决

其他教程   发布日期:2023年07月30日   浏览次数:443

这篇文章主要介绍“Nginx反向代理后无法获取客户端真实IP地址怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Nginx反向代理后无法获取客户端真实IP地址怎么解决”文章能帮助大家解决问题。

当我们使用 Nginx 代理转发服务后,会发现我们无法获取客户端的真实IP地址,从而无法获取客户端的地理位置等信息。

1、原始配置文件如下

  1. worker_processes 1;
  2. events {
  3. worker_connections 1024;
  4. }
  5. http {
  6. include mime.types;
  7. default_type application/octet-stream;
  8. sendfile on;
  9. keepalive_timeout 65;
  10. server {
  11. listen 80;
  12. server_name localhost;
  13. location / {
  14. root html;
  15. index index.html index.htm;
  16. }
  17. error_page 500 502 503 504 /50x.html;
  18. location = /50x.html {
  19. root html;
  20. }
  21. }
  22. }

2、配置转发后

  1. worker_processes 1;
  2. events {
  3. worker_connections 1024;
  4. }
  5. http {
  6. include mime.types;
  7. default_type application/octet-stream;
  8. sendfile on;
  9. keepalive_timeout 65;
  10. server {
  11. listen 80;
  12. server_name localhost;
  13. location / {
  14. root html;
  15. index index.html index.htm;
  16. }
  17. # 代理转发
  18. location /api/{
  19. proxy_set_header Host $http_host;
  20. proxy_set_header X-Real-IP $remote_addr;
  21. proxy_set_header REMOTE-HOST $remote_addr;
  22. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  23. proxy_set_header Public-Network-URL http://$http_host$request_uri;
  24. proxy_pass http://localhost:8080/;
  25. }
  26. error_page 500 502 503 504 /50x.html;
  27. location = /50x.html {
  28. root html;
  29. }
  30. }
  31. }

这样,我们就将客户端的头部信息一起转发过去,就能获取用户的真实 IP 地址了。

以上就是Nginx反向代理后无法获取客户端真实IP地址怎么解决的详细内容,更多关于Nginx反向代理后无法获取客户端真实IP地址怎么解决的资料请关注九品源码其它相关文章!