关闭

dns lvs webserver

1:dns 说到dns,大家可能比较熟悉,都知道是域名解析服务,通俗的讲就是把域名(www.baidu.com)对应到服务器上,这些服务器提供一个或多个ip地址的映射给浏览器等客户端。如果是多个ip地址呢,就相当于在dns层面上做了负载均衡。 首先谈谈A记录: A记录实现了DNS的基本功能,就是做域名到ip的映射,(dns系统有linux提供的bind,windows提供的dns) 常...
阅读(982) 评论(0)

nginx http请求PHASE

当客户端的一个request到达服务器的时候,可以想象一下,一个服务器应该怎么处理这个请求呢?nginx又是怎么处理请求的呢? 客户端一个请求到达nginx后,一个worker进程accept后开始处理,首先解析此次请求的请求行(request line),然后处理请求头(request headers),然后再经过http各功能模块,实现对不同请求的特定处理,最后将result返回给客户端。...
阅读(707) 评论(0)

nginx 变量

nginx的变量是怎么work的? 现在考虑一个需求,要写一个第三方模块,需要一个变量,对应着每个request,这个变量放在哪里呢?怎么获取值,怎么传递给客户端,传给后端服务器呢? 那么首先需要了解一下nginx中变量的组织结构,nginx变量可以归为两类: 类型1:nginx内部变量     nginx核心变量:ngx_http_core_variables 变量集...
阅读(1157) 评论(0)

nginx apache lighttpd

对于几大主流服务器,nginx,apache,lighttpd,总是被比较来比较去,下面来说说自己见到的几个应用状况先。 1、apache单枪匹马上阵: 对于追求服务器性能的大公司,或者流量非常大的产品来说,不可能只用apache。 apache稳定,但是因为是多进程同步服务,一个进程对应一个请求,造成其在处理静态资源,大并发请求的时候,hold不住。 不能使用长连接。 不能防止...
阅读(767) 评论(0)

php编译

php编译的参数: 路径相关的:--prefix=/   ;--with-config-file-path=/ ; dubg与否:--disable-debug; 启动模式相关的:--enable-sockets ;--enable-fastcgi ; 功能相关的:--with-mysql= ;--with-curl ; --enable-pcntl;--enable-zip ; --wi...
阅读(406) 评论(0)

说说php的sapi (cgi fastcgi .etc.)

sapi这是神马?Server Application Programming Interface ,服务器应用编程接口。 sapi是应用层(比如apache,nginx,cli .etc)和php交互数据的入口。 而就是sapi这个入口,使得php和其上面的应用层解耦合了。 sapi实现了和各种应用层的兼容,应用层可以根据自身情况,定制sapi,比如: 1)apache2handler和...
阅读(1777) 评论(0)

nginx的error_log和access_log分析

nginx配置中有关日志的配置主要是围绕着下面两个指令: 1、error_log 2、access_log:记录访问日志  首先要强调的一点是,如果access日志和error日志都是常量文件名(因为access支持变量文件名,后续会讲到),那么nginx进程会缓存文件描述符直到进程结束。 什么时候日志的fd会改变呢? 1)进程重启 2)收到了NGX_REOPEN_SIGNAL信号,会...
阅读(5715) 评论(0)

nginx request的几个变量

nginx配置: fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTE...
阅读(3530) 评论(0)

nginx slab算法

nginx中实现了slab算法,只用在了管理共享内存的时候: static ngx_int_t ngx_init_zone_pool(ngx_cycle_t *cycle, ngx_shm_zone_t *zn) { u_char *file; ngx_slab_pool_t *sp; sp = (ngx_slab_pool_t *) z...
阅读(1090) 评论(2)

nginx 进程间通信

进程间通信(IPC) 一:父进程与子进程间通信 nginx是master-worker服务器模型,master负责接收外部信号,并给子进程发送信号,比如:重启,二进制文件替换等。 在这里采用的是高级进程间通信方式:unix域套接字,socketpair nginx细节: 子进程只保留自己的channel[1],并把其他子进程的channel[1]给关闭了,避免本进程误...
阅读(1881) 评论(0)

进程通信:管道(pipe)和socketpair区别

管道pipe是半双工的,pipe两次才能实现全双工,使得代码复杂。socketpair直接就可以实现全双工 socketpair对两个文件描述符中的任何一个都可读和可写,而pipe是一个读,一个写 详间代码: 一:pipe实现父子进程全双工通信: #include #include int main () { int fd1[2],fd2[2]; pipe(f...
阅读(2367) 评论(0)

nginx lingering_close

socket属性so_linger struct linger { int    l_onoff;   /* Linger active        */ int    l_linger;  /* How long to linger for   */ }; 一:close() 1:l_onoff = 0; 这是close()  SO_LINGER属性的默认值...
阅读(1698) 评论(0)

select和epoll ET和LT

select&&epoll select: 1.监听fd数量有限制,受控于fd_set数组大小 2.每次select均要重新设置fd_set 3.select函数内是通过poll依次轮询fd_set中的fd, 4.select后,要依次轮训fd_set,使用FD_ISSET(fd,&fd_set)判断标志位是否置为1,然后进行处理 5.需要从内核拷贝到用户空间 epoll:...
阅读(721) 评论(0)

nginx连接池

nginx连接池: 每个进程有自己独立的连接池,连接数配置:worker_connections(当然这个连接数受限于进程ulimit open files ;连接数还包括upstream建立的连接) 连接池实际上是一个数组单链表,初始化是在ngx_event_process_init中进行的,包括读写事件链表。 连接池(cycle->connections)是分配在连续的n个ngx...
阅读(1056) 评论(0)
    个人资料
    • 访问:24483次
    • 积分:375
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档
    最新评论