如何修复“无效命令‘set_real_ip_from’”错误?

如何修复“无效命令‘set_real_ip_from’”错误?

我使用 centos 6、nginx 作为反向代理、directadmin 和 cloudflare。我按照以下说明获取真实访客 IP:

 $ nano /etc/nginx/nginx.conf

将这些添加到 http{

set_real_ip_from  192.168.1.0/24;
set_real_ip_from  192.168.2.1;
set_real_ip_from  2001:0db8::/32;
real_ip_header    X-Forwarded-For;
real_ip_recursive on;

重新启动 nginx 没问题,但是当我重新启动 httpd 时出现此错误:

   Invalid command 'set_real_ip_from', perhaps misspelled or defined 
by a module not included in the server configuration

然后我尝试启用ngx_http_realip_module。我什么也做不了,但我认为它是默认启用的。

$ nginx -V

结果:

nginx version: nginx/1.8.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/usr
 --sbin-path=/usr/s    bin --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid
 --http-log-p    ath=/var/log/nginx/access_log --error-log-path=/var/log/nginx/error_log --with-i   pv6 --without-mail_imap_module 
 --without-mail_smtp_module --with-http_ssl_module   --with-http_realip_module --with-http_stub_status_module 
 --with-http_gzip_stati   c_module --with-http_dav_module --with-cc-opt=''-D FD_SETSIZE=32768''

谁能帮我这个?

答案1

看起来这个模块已启用(--with-http_realip_module),但你只是复制了示例配置从模块页面

set_real_ip 指令应该在后端服务器中设置,而不是在代理服务器中设置。然后你只需要使用一行,应该是:

set_real_ip_from  192.168.2.1;

但将 192.168.2.1 替换为后端服务器正在监听的本地地址。

编辑:因此,为了回答您迄今为止在评论中添加的更多信息,httpd.conf 是 apache (httpd) 的配置文件,nginx 指令在其中不起作用。您应该阅读 apache 文档,以便按您需要的方式进行配置。(rpaf 模块似乎是您要找的模块。这可能对你有用

相关内容