Linux

Linux

NuSTER: HTTP 协议,面向用户, RESTful 的 NoSQL 缓存服务器

开源程序nuster 发表了文章 • 0 个评论 • 435 次浏览 • 2018-07-09 09:01 • 来自相关话题

NuSTER 是一个基于 HAProxy 的高性能 HTTP 缓存服务器和 RESTful NoSQL 缓存服务器,既可以用作类似 Varnish 或者 Nginx 那样的 HTTP 缓存服务器,来缓存动态或者静态的 HTTP 资源,也可以用作 RESTful ...查看全部
NuSTER 是一个基于 HAProxy 的高性能 HTTP 缓存服务器和 RESTful NoSQL 缓存服务器,既可以用作类似 Varnish 或者 Nginx 那样的 HTTP 缓存服务器,来缓存动态或者静态的 HTTP 资源,也可以用作 RESTful NoSQL 缓存服务器, 用 HTTP POST/GET/DELETE 来 添加 /取得 /删除 Key/Value。

https://github.com/jiangwenyuan/nuster

# RESTful NoSQL 缓存服务器

可以像 Memcached 或者 Redis 那样放在应用和数据库之间作为内部 KV 缓存使用,也可以放在用户和应用之间作为面向用户的 NoSQL 使用。 支持 header, cookie 等等,所以可以将不同的用户数据存到相同的路劲。

- HAProxy 的所有特性(HTTPS, HTTP/2, ACL, etc)
- 有条件的缓存
- 内部 KV 缓存
- 面向用户缓存
- 支持任何类型的数据
- 支持所有编程语言,不需要特定的库,只需 HTTP 支持

## 基本操作

### Set
```bash
curl -v -X POST -d value1 http://127.0.0.1:8080/key1
curl -v -X POST --data-binary @icon.jpg http://127.0.0.1:8080/imgs/icon.jpg

```
### Get

curl -v http://127.0.0.1:8080/key1

### Delete

curl -v -X DELETE http://127.0.0.1:8080/key1

## Response

Check status code.

200 OK
POST/GET: 成功
DELETE: 总是
400 Bad request
空值
不正确的 acl, rules, etc
404 Not Found
POST: rule tests 失败
GET: not found
405 Method Not Allowed
其他的 methods
500 Internal Server Error
发生未知错误
507 Insufficient Storage
超过 data-size

## 分用户的 data

通过在 key 里加入 header, cookie 等等,可以将不同的用户数据存到相同的路劲。

nuster rule r1 key method.scheme.host.uri.header_userId if { path /mypoint }
nuster rule r2 key method.scheme.host.uri.cookie_sessionId if { path /mydata }

### Set

```bash
curl -v -X POST -d "333" -H "userId: 1000" http://127.0.0.1:8080/mypoint
curl -v -X POST -d "555" -H "userId: 1001" http://127.0.0.1:8080/mypoint

curl -v -X POST -d "userA data" --cookie "sessionId: ijsf023xe" http://127.0.0.1:8080/mydata
curl -v -X POST -d "userB data" --cookie "sessionId: rosre329x" http://127.0.0.1:8080/mydata

```
### Get

```bash
curl -v http://127.0.0.1:8080/mypoint
< 404 Not Found

curl -v -H "userId: 1000" http://127.0.0.1:8080/mypoint
< 200 OK
333

curl -v --cookie "sessionId: ijsf023xe" http://127.0.0.1:8080/mydata
< 200 OK
userA data


```

开源高性能 web 缓存服务器 nuster

开源程序kehokoduru 发表了文章 • 0 个评论 • 1629 次浏览 • 2018-02-22 11:09 • 来自相关话题

nuster, 一个基于 HAProxy 的高性能 web 缓存服务器 。 完全兼容 HAProxy,并且利用 HAProxy 的 ACL 功能来提供非常细致的缓存规则。 项目地址 https://github.com/jiangwe ...查看全部
nuster, 一个基于 HAProxy 的高性能 web 缓存服务器 。 完全兼容 HAProxy,并且利用 HAProxy 的 ACL 功能来提供非常细致的缓存规则。

项目地址 https://github.com/jiangwenyuan/nuster

可以根据 url, path, query, header, cookie,请求速率等等来动态生成缓存,并设置有效期。支持 purge,支持前后端 HTTPS。

* 完全兼容 HAProxy,支持所有 HAProxy 的特性和功能
* 强大的动态缓存功能
* 根据 HTTP method, uri, path, query, header, cookie 等等进行缓存
* 根据 HTTP 请求和响应内容等等进行缓存
* 根据环境变量服务器状态等等进行缓存
* 根据 SSL 版本, SNI 等等进行缓存
* 根据连接数量,请求速率等等进行缓存
* 等等
* 非常快
* 删除缓存
* 前后端 HTTPS
* HTTP 压缩
* HTTP 重写重定向
* 等等

性能

非常快, 单进程模式下是 nginx 的 3 倍,多进程下 nginx 的 2 倍,varnish 的 3 倍。

详见[https://github.com/jiangwenyuan/nuster/wiki/Web-cache-server-performance-benchmark:-nuster-vs-nginx-vs-varnish-vs-squid](https://github.com/jiangwenyuan/nuster/wiki/Web-cache-server-performance-benchmark:-nuster-vs-nginx-vs-varnish-vs-squid)

请问有没有比较实用的go日志分析程序?

有问必答九命猫 回复了问题 • 7 人关注 • 4 个回复 • 6916 次浏览 • 2016-12-06 13:52 • 来自相关话题

Linux下一个程序正在写文件,另外一个程序删除该文件,会怎样?

有问必答astaxie 回复了问题 • 3 人关注 • 1 个回复 • 2922 次浏览 • 2016-10-16 20:46 • 来自相关话题

进程退出时如何保证占用的端口完全释放?

有问必答vz 回复了问题 • 8 人关注 • 6 个回复 • 4307 次浏览 • 2016-10-16 08:55 • 来自相关话题

Linux进程的exit 返回码有哪些?

有问必答astaxie 回复了问题 • 3 人关注 • 2 个回复 • 3226 次浏览 • 2016-10-13 08:10 • 来自相关话题

请问有没有比较实用的go日志分析程序?

回复

有问必答九命猫 回复了问题 • 7 人关注 • 4 个回复 • 6916 次浏览 • 2016-12-06 13:52 • 来自相关话题

Linux下一个程序正在写文件,另外一个程序删除该文件,会怎样?

回复

有问必答astaxie 回复了问题 • 3 人关注 • 1 个回复 • 2922 次浏览 • 2016-10-16 20:46 • 来自相关话题

进程退出时如何保证占用的端口完全释放?

回复

有问必答vz 回复了问题 • 8 人关注 • 6 个回复 • 4307 次浏览 • 2016-10-16 08:55 • 来自相关话题

Linux进程的exit 返回码有哪些?

回复

有问必答astaxie 回复了问题 • 3 人关注 • 2 个回复 • 3226 次浏览 • 2016-10-13 08:10 • 来自相关话题

NuSTER: HTTP 协议,面向用户, RESTful 的 NoSQL 缓存服务器

开源程序nuster 发表了文章 • 0 个评论 • 435 次浏览 • 2018-07-09 09:01 • 来自相关话题

NuSTER 是一个基于 HAProxy 的高性能 HTTP 缓存服务器和 RESTful NoSQL 缓存服务器,既可以用作类似 Varnish 或者 Nginx 那样的 HTTP 缓存服务器,来缓存动态或者静态的 HTTP 资源,也可以用作 RESTful ...查看全部
NuSTER 是一个基于 HAProxy 的高性能 HTTP 缓存服务器和 RESTful NoSQL 缓存服务器,既可以用作类似 Varnish 或者 Nginx 那样的 HTTP 缓存服务器,来缓存动态或者静态的 HTTP 资源,也可以用作 RESTful NoSQL 缓存服务器, 用 HTTP POST/GET/DELETE 来 添加 /取得 /删除 Key/Value。

https://github.com/jiangwenyuan/nuster

# RESTful NoSQL 缓存服务器

可以像 Memcached 或者 Redis 那样放在应用和数据库之间作为内部 KV 缓存使用,也可以放在用户和应用之间作为面向用户的 NoSQL 使用。 支持 header, cookie 等等,所以可以将不同的用户数据存到相同的路劲。

- HAProxy 的所有特性(HTTPS, HTTP/2, ACL, etc)
- 有条件的缓存
- 内部 KV 缓存
- 面向用户缓存
- 支持任何类型的数据
- 支持所有编程语言,不需要特定的库,只需 HTTP 支持

## 基本操作

### Set
```bash
curl -v -X POST -d value1 http://127.0.0.1:8080/key1
curl -v -X POST --data-binary @icon.jpg http://127.0.0.1:8080/imgs/icon.jpg

```
### Get

curl -v http://127.0.0.1:8080/key1

### Delete

curl -v -X DELETE http://127.0.0.1:8080/key1

## Response

Check status code.

200 OK
POST/GET: 成功
DELETE: 总是
400 Bad request
空值
不正确的 acl, rules, etc
404 Not Found
POST: rule tests 失败
GET: not found
405 Method Not Allowed
其他的 methods
500 Internal Server Error
发生未知错误
507 Insufficient Storage
超过 data-size

## 分用户的 data

通过在 key 里加入 header, cookie 等等,可以将不同的用户数据存到相同的路劲。

nuster rule r1 key method.scheme.host.uri.header_userId if { path /mypoint }
nuster rule r2 key method.scheme.host.uri.cookie_sessionId if { path /mydata }

### Set

```bash
curl -v -X POST -d "333" -H "userId: 1000" http://127.0.0.1:8080/mypoint
curl -v -X POST -d "555" -H "userId: 1001" http://127.0.0.1:8080/mypoint

curl -v -X POST -d "userA data" --cookie "sessionId: ijsf023xe" http://127.0.0.1:8080/mydata
curl -v -X POST -d "userB data" --cookie "sessionId: rosre329x" http://127.0.0.1:8080/mydata

```
### Get

```bash
curl -v http://127.0.0.1:8080/mypoint
< 404 Not Found

curl -v -H "userId: 1000" http://127.0.0.1:8080/mypoint
< 200 OK
333

curl -v --cookie "sessionId: ijsf023xe" http://127.0.0.1:8080/mydata
< 200 OK
userA data


```

开源高性能 web 缓存服务器 nuster

开源程序kehokoduru 发表了文章 • 0 个评论 • 1629 次浏览 • 2018-02-22 11:09 • 来自相关话题

nuster, 一个基于 HAProxy 的高性能 web 缓存服务器 。 完全兼容 HAProxy,并且利用 HAProxy 的 ACL 功能来提供非常细致的缓存规则。 项目地址 https://github.com/jiangwe ...查看全部
nuster, 一个基于 HAProxy 的高性能 web 缓存服务器 。 完全兼容 HAProxy,并且利用 HAProxy 的 ACL 功能来提供非常细致的缓存规则。

项目地址 https://github.com/jiangwenyuan/nuster

可以根据 url, path, query, header, cookie,请求速率等等来动态生成缓存,并设置有效期。支持 purge,支持前后端 HTTPS。

* 完全兼容 HAProxy,支持所有 HAProxy 的特性和功能
* 强大的动态缓存功能
* 根据 HTTP method, uri, path, query, header, cookie 等等进行缓存
* 根据 HTTP 请求和响应内容等等进行缓存
* 根据环境变量服务器状态等等进行缓存
* 根据 SSL 版本, SNI 等等进行缓存
* 根据连接数量,请求速率等等进行缓存
* 等等
* 非常快
* 删除缓存
* 前后端 HTTPS
* HTTP 压缩
* HTTP 重写重定向
* 等等

性能

非常快, 单进程模式下是 nginx 的 3 倍,多进程下 nginx 的 2 倍,varnish 的 3 倍。

详见[https://github.com/jiangwenyuan/nuster/wiki/Web-cache-server-performance-benchmark:-nuster-vs-nginx-vs-varnish-vs-squid](https://github.com/jiangwenyuan/nuster/wiki/Web-cache-server-performance-benchmark:-nuster-vs-nginx-vs-varnish-vs-squid)