baidu「day3」

7-06 612 views

昨天回家里,遇到各种问题,忘了写总结啦,今天补上

一.学习

1.1 今天自己搭建了一个项目,然后在浏览器上跑起来了~挺好的~

1.2 当我们在浏览器请求一个url的时候,nginx+php-fpm做了什么?

其实nginx这个框架的系统就是,客户端来了一个请求,发送给nginx,然后nginx去链接php-fpm,让他去处理这个请求

php-fpm作为一个cgi,类似于插件的东西,专门为了处理php而用的,如果需要处理别的东西,就需要用别的插件。

①.首先要在nginx中进行rewrite,把url进行逆向解析,得到新的url:NewUrl.

②.在得到NewUrl之后,我们可以定位到index.php文件中,这个文件的php代码中可以把当前的NewUrl再定向到目标 php文件。

③.那么如何找到这个php文件,就要看框架设计规则或者自己的项目规则。

其实也可以直接用 rewrite定位到这个php文件,只不过麻烦一些,用index.php过渡一下会更清晰。

这也挺像java web中的action请求,当发起一个action请求的时候,配置文件会直接给你定位到目标的文件。

1.3 为什么nginx能处理高并发?

他采用的是异步非阻塞模型,用了epoll机制。每时每刻只有一个线程在执行,epoll中如果有事件准备好了,

就放到线程上去运行。这样区别于Apache的多线程模型,减少了上下文切换带来的代价。即使并发再多,也不

会引起内存爆炸,因为没有多余的线程被创建。

进程数就是系统核数,这样避免了进程间的切换。

nginx用了定时器来限制请求的响应时间,用红黑树来增加,删除,业务等。目的是防止对服务器发起恶意攻击,一直占用服务器。

1.4 nginx如何实现负载均衡的?

使用反向代理服务器

代理服务器来接受外部的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给外部的请求连接的客户端,此时代理服务器对外就表现为一个服务器。

反向代理一般作用:
①:减轻源服务器负载
②:保障源服务器安全
③:对源服务器进行负载均衡(Load Balance)。

一般反向代理置于源服务器的前端,配备大容量的内存和高速磁盘,缓存客户的请求,所以反向代理又称为服务器加速(Server accelerate)。源服务器一般不再和客户直接通讯,当客户请求没有缓存的内容或者动态内容时,反向代理向源服务器发送请求,然后把回应转发给客 户,在这种情况下,反向代理服务器通常要为一个请求同时维护两个会话。和普通的代理不同,反向代理一般只代理一台或者有限的几台服务器,对于客户而言,反 向代理服务器对于他们就相当于源服务器,对于源服务器而言,反向代理服务器通常就是唯一的客户,因为一般客户不和源服务器直接通信。典型情况下,源服务器 对于客户或者客户对于源服务器,都是不可见的。

1.5 vector源码细节

vector 内存的申请并不是一个一个的申请,而是与当前内存的大小有关,如果当前元素数量与内存大小相等,
再申请的内存是当前内存一员大。这样在时间效率上有较大提高。

即便是erase元素,也不会影响总的内存大小,而是把迭代器往前移动,释放掉最后一个元素,代码很精巧

iterator erase(iterator position) {
if (position + 1 == end())
copy(position + 1, finish, position);
—finish;
destroy(finish);
return position;
}
这样删除finish指针还是满足了vector内存连续的特点。

当vector在扩充内存的时候,并不是在原来的vector上申请内存,而是新的vector直接申请当前大小内存的两倍,然后把数据拷贝过去。然后释放掉原来的vector,这样做的好处还是考虑到内存不连续的问题。

二. 计划

好像并没有什么任务需要我去做,准备看一下贴吧的框架,看看那一套东西。

看源码剖析,一天看一个容器。

刷一刷leetcode

「中国软件杯」总结

1.比赛的初衷 参加这次比赛,本来是没有抱着很大的期望能拿什么大奖的,而是抱着一颗学习新技能的心态来参加的。 不过最终进入了全国总决赛,算是意外之喜,...

阅读全文

baidu「周总结」

一.学习 这周相对来说比较充实,主要是了解贴吧的架构,导师给的问题又比较好,所以我顺藤摸瓜,去学习就行。 这周学习总体来说还是以nginx为主线进行延伸的...

阅读全文

baidu「day2」

一.学习 1.1 今天又看了一点nginx的原理,不过如果可以去深入的学习一下源码,那就更好了。 1.2 上午去看了一些 nginx的rewrite,发现不同的页面的rewrite不...

阅读全文

欢迎留言

*