这是我参与8月更文挑战的第20天,活动详情查看:8月更文挑战
前言
吃饱饭才有力气写代码~
今天把我师傅写的代码找出了两个bug,还挺骄傲嘿嘿~
但是我还是啥也不会呀......现在学的好杂,接下来记录一下Nginx的知识点!参考了zhuanlan.zhihu.com/p/349433 这篇文章,帮助很大,感谢~
基本概念
它是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的。
源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
以下是参考这个回答里的图片:zhuanlan.zhihu.com/p/349433
下面这个图片说明了当下流行的技术架构,其中Nginx的作用类似于入口网关;
正向代理
由于有防火墙,我们不能直接访问谷歌,这个时候就借助VPN来实现,这个感觉就是正向代理;这里面的逻辑像是,代理跟中介一样,客户端就是客户,客户通过中介与目标沟通!
反向代理
反向代理就是说代理的是服务器端,这一过程对于客户端透明,就跟房屋租赁中介帮房东联系租客一样的感觉?!
Nginx 的 Master-Worker
启动Nginx后,其实就是在80端口启动了Socket服务进行监听,如图所示,Nginx涉及Master进程和Worker进程。
Master进程的作用:
读取并验证配置文件nginx.conf;来对worker进程进行管理;
Worker进程的作用:
每一个Worker进程为了避免线程切换都维护一个线程,处理连接和请求;Worker进程的个数由nginx.conf配置文件决定,配置几个就有几个Worker进程。
Nginx 的热部署
它有一个nginx.conf配置文件,修改这个文件就行,不需要停掉nginx,也不用中断那些请求,这个配置文件就能生效。
联系到进程,就是修改完配置文件,会用新的配置去处理请求,这些都会进入到新的worker进程里,老的那些worker进程会在以前的那些处理请求完成后被kill掉。