如何实现让网站或者应用允许中国IP访问服务器

查了一些资料,实现思路主要是捕获IP,然后再IP库里面查,是否属于某个国家,或者IP段。 也可以自行实现对白名单的支持。 Web端和手机App(对IP的限制) web 端限制实现 实现方法: nginx加入限制逻辑(GeoIP) 服务器IPTABLES 应用服务端判断(tomcat、nodejs、) 手机app的实现 nginx加入限制逻辑(GeoIP)(其实是在接入层做这件事情) 网关限制 接口 … 继续阅读

一个基于spring-cloud的全站构建案例

想法&实践 最近有把一个站点的构建过程记录下来的想法,于是把所需要的技术关键点全部都一一罗列出来,当做技术笔记。我在自己的私人代码库里面,做成了脚手架,方便自己。更重要的是,在这个梳理过程,让我对以前的一些系统设计有了新的体会。重新搭建的过程,其实是愉悦、流畅的。 技术栈 语言:java 框架:spring-cloud 组件:zuul,eureka,spring-cloud feign,s … 继续阅读

阻塞和非阻塞&同步和异步的伪代码

在Medium上看到一个非常棒的用来描述各种IO模型的伪代码,这些例子很好地展示了阻塞非阻塞、同步和异步的特点。 常见的I/O 类型 Blocking Non-blocking Asynchronous API write, read write, read + poll / select aio_write, aio_read 以读操作为例,不同的IO模型。对象和函数都是抽象的: Followi … 继续阅读

面向对象设计的六大原则

在网上看了一个技术博主的一篇文章,讨论的的是代码质量。博主指出,目前国内普遍,都缺乏方法论和抽象能力的积累。有所感,于是回头看,也重新整理面向对象设计的六大原则。 1 单一职责(Single Responsibility Principle) 这个原则顾名就可以思义,就是一个类应该只负责一个职责,术语叫:仅有一个引起其变化的原因。简单点说:一个类中应该是一组相关性很高的函数及数据的封装,个中含义请 … 继续阅读

一个简单可用的Nginx负载均衡配置文件

记录一下,一个简单可用的Nginx负载均衡配置文件。 本地测试是可以用的。 本地环境: 开启了三个本地服务: 127.0.0.1:8082; 127.0.0.1:8083; 127.0.0.1:8084; 每个服务器,提供两个测试接口: 以127.0.0.1:8082服务为例: http://localhost:8082/ # index http://localhost:8082/user?us … 继续阅读