闲来无事,记录一下昨天消灭的一个自己造成的 BuG。
众所周知,Solo 有显示浏览量和当前在线人数的统计功能,但一般也不会去注意这些小细节,不知道从什么时候开始在线人数就一直显示为 2,这被有完美主义强迫症的我看到了还了得,必须把这个问题处理一下。
仔细一想,恍然大悟,不久前才刚刚处理了这个问题!!
同病相怜
在我的另一个小网站上,有一个上传 APK 获取应用信息的工具,是根据访问的 IP 对上传次数做了限制的,有一段时间限制一直不起作用,查看日志后发现,请求的 IP 一直都是 127.0.0.1
和 0:0:0:0:0:0:0:1
这两个地址,这不都是本机的地址吗?!所以这就一定是 Solo 在线人数一直显示为 2 的原因。
都是 Nginx 惹的祸
因为我的 Solo 服务一直在用独立模式,还有一个 itanken.cn 的服务也在同一台服务器上,所以后来就用了 Nginx 做了反向代理,发现上传功能的 IP 限制失效并查看日志之后,感觉这一定就是 Nginx 惹的祸,所以机智的我立马就用度娘搜索了 用 Nginx 反向代理后获取不到真实 IP,果不其然,需要在 Nginx 配置文件对应服务的 location / {}
中加上获取客户端真实 IP 地址的几个请求头的对应参数,在 Nginx 转发到的服务当中才可以获取到客户端请求的真实 IP,不然本机的 Nginx 转发到本机的 WEB 服务中,服务中获取到的 IP 只能是 Nginx 的 IP,就是那两个本机地址。配置参数:
location / {
# ...
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# ...
}
强迫症可能只是无聊的借口吧
这样在 Solo 对应的配置当中也加上这几条之后,重启 Nginx 之后 Solo 的在线人数果然就多了起来... 至少自己看着舒服一点,后悔当初自己为什么那么懒,不在每一个 server{}
中都加上这几条配置。话说强迫症有药吗 🤔 ? 有得治没...
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于