什么是网络服务器。
安装Nginx,在网络服务器上部署应用。
当你输入浏览器地址时,你观察到了什么。
奇怪过过程你输入URL输入Enter,页面出现,很多事情发生。
一个请求被浏览器初始化离开你的本地局域网穿过全域网(global area network)直到其中一个电脑。
它被指派来服务你的主页,这个电脑返回一个响应包含页面的所有内容。
响应采取相似的路径穿过全域网直到到达本地局域网,最后到达你的网络浏览器。
你从这里观察到了什么。
当你输入一个url,一个请求被产生到一个电脑连接到那些网页上。、
当那台电脑初始化初始化一个响应包含你请求的网页。
这些网页穿过全域网抵达你的本地局域网。
提供给你网页的电脑是一个网络服务器(Web Server)。
What is a Web Server?
Web servers are computers which deliver the requested web pages.Every web server has an IP address and a Domain name.
网络服务器是电脑请求的网页在哪。
当你输入URL后,一个请求被生成,传递到你的本地局域网。
请求到一个网络服务器,域名是你输入的域名。
网络服务器做的是:
它取得名字为路由的页面,它是我们想要获得的索引页。
路由名字的页面被获得,那个特别的页面被送到你的浏览器中。
任何的电脑都可以成为一个Web服务器。
如果你想让你的电脑成为一个Web服务器,你需要安装服务器软件,连接机器到网络上。
市场上有各种的Web服务器软件。
Web server for reverse proxying, caching and load balancing。
NginX是什么?
Nginx是一个web服务器你可以确保你的页面加载时间被减少。
如果你在企业工作,你需要确保用户到你的页面,或者是搜索你的页面不需要等待很长的时间来让页面加载。
Nginx Architecture
Nginx uses Master-Slave architecture by supporting event-driven,asynchronous and non-blocking model.
传统的基于进程或者是线程的模型处理并发连接,用单独的进程和线程来处理连接,在网络或者IO操作中阻塞。
当你有一个进程线程模型时,每个独立的进程可以用来,可以为每个连接生成独立的线程。
依照项目,在内存和CPU消耗上可能非常低效,设想你想要为一个大公司做这个。
生成独立的进程或者线程需要准备一个新的运行时环境,包括分配堆栈内存和新的执行环境。
额外的CPU时间也被花费用来创建这些项目。性能不好由于线程崩溃或者过度的上下文切换。
为了避免这些症状,Nginx使用主从的架构。
Nginx主要专注于持续的在很多操作系统中的事件驱动机制。
Nginx大量使用多路复用甚至是通知,特殊的任务到分别的进程中。
如果你有10个任务,那么你可以有10个进程。
除了这个,连接也被处理在单线程进程中,叫做Workers。
在每个Worker里,Nginx可以每秒处理几千个并发连接和请求。
Nginx并不为了每个连接生成进程或者线程。
Worker从共享监听套接字中,执行一个高效的运行循环。
Worker进程主要做的是从一个共享监听套接字中接受请求。
每个Worker可以处理几千个请求。
单一的Master,有一些Worker进程,也有一些特殊用途的进程,例如代理缓存。
缓存加载器和缓存代理器。
Master进程的主要责任是负责读和确认配置。
Master负责创建,绑定,交叉套接字。它也负责开始,暂停,和维持。
在Nginx中,所有东西被定义在一个配置文件中。