当前位置:Gxlcms > PHP教程 > tomcat获取Nginx的真实用户IP

tomcat获取Nginx的真实用户IP

时间:2021-07-01 10:21:17 帮助过:17人阅读

需要:添加 proxy_set_header X-Real-IP $remote_addr;

  1. upstream tomcat_server {
  2. server localhost:8080 weight=1;
  3. }
  4. server {
  5. listen 80;
  6. server_name 192.168.40.116;
  7. #charset koi8-r;
  8. #access_log logs/host.access.log main;
  9. location ~* "\.(jsp|do)$" { #当请求的是jsp或do文件时直接到tomcat上去取
  10. #root html;
  11. #index index.html index.htm;
  12. #proxy_pass http://192.168.18.201/;
  13. proxy_pass http://tomcat_server;
  14. client_max_body_size 2048m;
  15. client_body_buffer_size 128k;
  16. proxy_connect_timeout 600;
  17. proxy_read_timeout 600;
  18. proxy_send_timeout 6000;
  19. proxy_buffer_size 16k;
  20. proxy_buffers 64k;
  21. proxy_busy_buffers_size 64k;
  22. proxy_temp_file_write_size 64k;
  23. }
  24. location / {
  25. #发布目录/data/www
  26. # root /home/ding/ITsoftware/tomcat/webapps/100mshCloud;
  27. # fastcgi_pass 192.168.40.116:8080;
  28. <strong> proxy_set_header X-Real-IP $remote_addr; </strong>
  29. proxy_pass http://tomcat_server/; #注释默认两行,新增一行。
  30. # index index.html index.htm;
  31. }

tomcat 获取:

  1. public static String getRemoteAddrIp(HttpServletRequest request) {
  2. String ipFromNginx = getHeader(request, "X-Real-IP");
  3. System.out.println("ipFromNginx:" + ipFromNginx);
  4. System.out.println("getRemoteAddr:" + request.getRemoteAddr());
  5. return StringUtil.isEmpty(ipFromNginx) ? request.getRemoteAddr() : ipFromNginx;
  6. }
  7. private static String getHeader(HttpServletRequest request, String headName) {
  8. String value = request.getHeader(headName);
  9. return !StringUtils.isBlank(value) && !"unknown".equalsIgnoreCase(value) ? value : "";
  10. }

以上就介绍了tomcat 获取Nginx的真实用户IP,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

人气教程排行