
nginx
kutim
这个作者很懒,什么都没留下…
展开
-
nginx的安装和配置
zlib pcre openssl内核参数的优化/etc/sysctl.conffs.file.max=999999 #进程可以同时打开的最大句柄数,直接限制最大并发连接数net.ipv4.tcp_tw_reuse=1 #为1 表示TIME-WAIT状态的socket重新用于新的TCP连接net.ipv4.tcp_keepalive_time=600 #keepalive参翻译 2016-04-28 16:59:23 · 3684 阅读 · 0 评论 -
编写http模块
开发一个简单的http模块如何调用http模块准备工作ngx_http_mytest_module ngx_http_mytest_module.c需要定义一个名称,以便在configure时显示是否执行成功。整型的封装ngx_int_t封装有符号整型,使用ngx_uint_t 封装无符号整型。ngx_str_t数据结构typedef struct{ size_t len; u_c翻译 2016-04-29 18:07:28 · 509 阅读 · 0 评论 -
配置、error日志和请求上下文
http配置项的使用场景http{ test_str main; server{ listen 80; test_str server80; location /url1{ mytest; test_str loc1; } location /url2{翻译 2016-05-01 14:53:37 · 6645 阅读 · 0 评论 -
访问第三方服务
upstream与subrequestupstream的使用方式 ngx_http_upstream_t结构体ngx_http_upstream_t中的subrequest_in_memory 为1,由input_filter方法处理包体;为0时,upstream会转发响应包体; ngx_http_upstream_conf_t中的buffering为1时,使用更多的内存和磁盘文件缓存上游的响应翻译 2016-05-01 16:41:34 · 512 阅读 · 0 评论 -
subrequest示例
访问/query?s_sh000001时,访问http://hq.sinajs.cn配置文件中子请求的设置location /list{ //决定访问的上游服务器地址是hq.sinajs.cn proxy_pass http://hq.sinajs.cn; //不希望第三方服务发来的http包体进行过gzip压缩 proxy_set_header Accept-Eco翻译 2016-05-01 17:01:44 · 506 阅读 · 0 评论 -
简单的http过滤模块
http过滤模块仅处理服务器发往客户端的http响应,不处理客户端发往服务器的http请求。过滤模块的调用顺序过滤链表在编译nginx源码时,已经定义了一个由所有http过滤模块组成的单链表(每个元素都是一个独立的c源码文件。这个文件会通过两个static指针指向下一个文件中的过滤方法)typedef ngx_int_t (*ngx_http_output_header_filter_pt)(ngx翻译 2016-05-01 17:37:29 · 2267 阅读 · 0 评论 -
nginx的高级数据结构
ngx_queue_t双向链表:不会负责内存; ngx_array_t动态数组:可以自动扩容; ngx_list_t单链表:负责元素内存的分配; ngx_rbtree_t红黑树:检索的首选; ngx_radix_tree_t基数树:必须以整形数据作为关键字; 支持通配符的散列表:只支持前置通配符、后置通配符。ngx_queue_t双向链表相比nginx其他顺序容器,nginx_queue_翻译 2016-05-02 17:41:40 · 622 阅读 · 0 评论 -
nginx基础架构
web服务器设计中的关键约束性能网络性能、单次请求的延迟性、网络效率可伸缩性简单性可修改性可进化性、可扩展性、可定制性、可配置性、可重用性可见性关键组件的运行情况可以被监控的程度可移植性可靠性nginx的架构设计优秀的模块化设计高度抽象的模块接口所有模块都遵循同样的ngx_module_t接口设计规范,这种方式带来了良好的简单性、静态可扩展性、可重用性模块接口非常简单,具有很高的灵活性模块的基本接口翻译 2016-05-03 11:19:51 · 554 阅读 · 0 评论