接了个客户,要架一个网站,全套阿里云,RDS之类我还是挺熟的,毕竟我也在用,不过SLB就比较蛋疼了,之前我用过腾讯云的SLB,不过是拿来搞DNS服务器负载均衡的,直接用的TCP,现在要搞网站那就得用HTTP(S)了,那么问题来了,SLB和CDN都会有的问题,如何处理访客的真实IP ?
其实解决方法挺简单的,配合Nginx的Realip模块就行,主要是配置问题,我之前折腾CDN的时候就搞过,不过来源IP各家都有所不同,所以这边记录下吧,辣鸡阿里云自己的文档里都不写,简直智障。
①首先确保你的Nginx安装了realip模块,nginx -V然后看看有没有http_realip_module就行,没有的话需要重新编译安装,在./configure后面添加--with-http_realip_module 然后一顿操作就行
②修改nginx.conf配置文件,在http区块部分添加如下内容(如果你还是不知道是哪部分,那就找一堆fastcgi那边,在最后一行fastcgi下面添加)
set_real_ip_from 127.0.0.1; set_real_ip_from 10.49.0.0/16; set_real_ip_from 10.158.0.0/16; set_real_ip_from 10.159.0.0/16; set_real_ip_from 100.64.0.0/10; real_ip_header X-Forwarded-For; real_ip_recursive on;
然后重启下nginx就行,这个对lnmpa也行,在nginx里面会显示真实ip,在apache那儿会显示127.0.0.1+真实ip
直接使用apache处理的情况下需要安装mod_rpaf这个模块,我就不多提了,网上搜下就有
文章评论