wordpress评论ip异常问题

在多层nginx中,获取到的ip为最后一个nginx的上层nginxip

具体获取评论ip的代码为

wp-includes/comment.php

复制代码
if ( ! isset( $commentdata['comment_author_IP'] ) ) {
        $commentdata['comment_author_IP'] = $_SERVER['REMOTE_ADDR'];
    }

解决方法1

在wp-config中添加如下代码重写'REMOTE_ADDR'变量

复制代码
// Set the real IP address for clients behind a proxy or load balancer.
function set_real_client_ip() {
    if ( ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
        // Check if multiple IPs exist in the header, take the first one.
        $ip_address_list = array_map( 'trim', explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] ) );
        $real_ip = reset( $ip_address_list );
    } elseif ( ! empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
        // Fallback to HTTP_CLIENT_IP if available.
        $real_ip = $_SERVER['HTTP_CLIENT_IP'];
    } else {
        // Use REMOTE_ADDR as fallback.
        $real_ip = $_SERVER['REMOTE_ADDR'];
    }

    // Set the REMOTE_ADDR to the real IP address.
    $_SERVER['REMOTE_ADDR'] = $real_ip;
}

// Call the function to set the real IP address.
add_action( 'init', 'set_real_client_ip' );

方法2,安装reverse-proxy-comment-ip-fix插件

插件市场里搜不到,可以上github下载
Tags · WPPlugins/reverse-proxy-comment-ip-fix · GitHub

下载zip包上传到插件安装界面就可以

插件本质上在pre_comment_user_ip加了过滤器执行对应函数里的操作

相关推荐
yangshuo12811 小时前
解决node项目nginx静态缓存导致项目重建后页面无变化问题
linux·nginx·缓存
JVM高并发1 小时前
Nginx使用 Lua 脚本调用外部 API 验证 Token
nginx·全栈
昂子的博客2 小时前
Springboot仿抖音app开发之Nacos 分布式服务与配置中心(进阶)
java·spring boot·redis·后端·mysql·ip
皮皮林55115 小时前
负载均衡 LVS vs Nginx 对比!还傻傻分不清?
nginx
铃木隼.19 小时前
haproxy搭建nginx网站访问
运维·nginx
IT_102421 小时前
Nginx教程:概念+安装+SSL安装,通过调优Nginx来提高应用性能
运维·nginx·ssl
liulilittle1 天前
主流防火墙策略绕过漏洞的修复方案与加固实践
网络·安全·网络安全·信息与通信·ip·通信
周六放风筝1 天前
生成https免费证书并绑定到nginx
linux·nginx·https
笨手笨脚の1 天前
系统性能优化-2 CPU
redis·nginx·性能优化·numa·系统调优·cpu对性能的影响
北苇渡江2 天前
Nginx代理缓存静态资源
nginx