Nginx官方推出的web应用服务器-nginx unit

近日Nginx官方发布了nginx unit的1.0版本,作为靠Nginx混饭吃的一员,免不了先体验一把。 unit是一个动态的web应用服务器,采用了类似php-fpm的机制,不过支持Python/Go/Perl/Ruby/PHP等多种语言,后面也会增加对Java/Javascript的支持。 配置源码 clone源码仓库 $ git clone https://github. ...

第一个tensorflow程序

使用docker镜像运行一个tensorflow的Hello World项目。 安装了ubuntu 18.04后,通过pip安装tensorflow总是莫名奇妙出错,只能祭出docker大法。用docker的话只要一个镜像就可以运行,没有其他依赖。 docker安装tensorflow 1. 安装 docker $ sudo apt install docker.io 2. 将用户加入到docker组中, ...

ngx_lua的代码缓存

Lua代码的执行一般要先将代码变成成字节码,然后再Lua虚拟机中执行字节码。lua-nginx-module将编译后的结果保存了下来,这样只需要编译一次,之后便可以直接使用,省去了编译的消耗。 Lua代码的加载 以access_by_lua为例,在Access阶段会执行指定的一段Lua代码,这是会调用ngx_http_lua_cache_loadbuffer来加载Lua代码,函数的实现如下所示 ngx_int_t ...

Nginx的文件分片-slice模块

Nginx的slice模块可以将一个请求分解成多个子请求,每个子请求返回响应内容的一个片段,让大文件的缓存更有效。 HTTP Range请求 HTTP客户端下载文件时,如果发生了网络中断,必须重新像服务器发起HTTP请求,这时客户端已经有文件的一部分,只需要请求剩余的内容,而不需要传输整个文件,Range请求就用来处理这种问题。 如果HTTP请求的头部有Range字段,如下面所示 Range: bytes=1024-2047 表示客户端请求文件的第1025到第2048个字节,这时服务器只会响应文件的这部分内容,响应的状态码为206, ...