【nginx学习笔记】

1.正向代理:代理的是客户端,一般有明确的访问对象

比如:我现在通过v-p-n去访问YouTube,那么就是正向代理。

2.反向代理:代理的是服务器

最常见的就是web中,nginx去代理一群后端的服务器。

3.负载均衡:在反向代理的基础上,

比如:后代集群每一台机器的处理能力不同,nginx根据配置权重,请求来了去分一个机器处理。

--------------------

共享内存中的锁

----------------------------------

通过master启动worker,master负责listen,worker负责accept

模块化架构:

        不同阶段对应不同的钩子函数。

        void* ctx表示上下文?

worker中的锁:

        主线程通过epoll感知任务。

        线程池负责处理任务

        完成队列

------------------

锁的分类:

        互斥锁。

        自旋锁: 适合push和pop这种很轻量级的,这样子可以避免cpu上下文切换。

       读写锁。

        条件变量:在单进程内,信号量能解决的问题,条件变量都可以解决。

                比如可以实现:任务少的时候休眠,任务多的时候唤醒。

                但是只能解决多线程之间的互斥问题。

        信号量:可以解决多进程的问题。

        

--------------------

高性能服务器影响因素:

        内存池:大量的请求下,波动很小。

        锁:互斥锁(会 引起上下文切换)和spinlock(浪费一点cpu,但是不切换)

----------------

一个好的开源项目,以nginx为例子:

     1.代码可读性好

     2.性能高、稳定性强、内存池、http协议

     3.文档齐全,社区维护较好

     4.代码迭代很频繁

     5.代码结构稳定,写代码的人有一定的预见能力,应对后续的变更,代码结构基本不变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值