在 Meteor 上安装 IP 跟踪工具的最佳/最快/最经济的方法是什么?



假设我想跟踪用户的IP并限制特定用户访问我的网站。

在我的脑海中,我可以通过服务器上的流星方法调用像this.connection.clientAddress这样的东西,并访问用户的IP地址,然后将该IP地址存储在MongoDB文档上。然后将每个访问者的IP与现有被禁止的IP进行检查,并相应地限制他们的访问。

但我的想法是,这将是一个昂贵的和缓慢的过程,一旦我们进入成千上万的ID和必须调用和访问一个MongoDB文档为每一个用户似乎是一个非常糟糕的主意。

有没有更好的方法来做到这一点,而不必不断调用MongoDB?

当有人通过Accounts登录时可以查看IP地址。onLogin并相应地更新用户的文档

根据您需要更新ip列表的频率,您可以在单独的URL中使用静态文件来检索ip列表并将其缓存到服务器上。

例如,在AWS (https://mybucket.s3.amazonaws.com/restricted-ips.json)的S3桶中创建文件。当您的应用程序被访问时,它可以检索该文件,将其缓存到服务器上(根据您的需要在给定的时间内),并根据该列表检查客户机的IP。当你想从受限制的IP列表中添加或删除一个IP时,你只需要更新文件,在缓存过期后,你的应用程序的任何实例都会收到更新的列表。

当然,如果这个列表不经常更新,您也可以将其放入应用程序本身。但是,当您需要更新IP列表时,这将需要重新部署。

最新更新