nginx 初探

nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。咱们也能够手动地关掉后台模式,让nginx在前台运行,而且经过配置让nginx取消master进程,从而可使nginx以单进程方式运行(用于调试)。nginx

  • master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常状况下),会自动从新启动新的worker进程。
  • 而基本的网络事件,则是放在worker进程中来处理了。

 

  • 在nginx中connection就是对tcp链接的封装,其中包括链接的socket,读事件,写事件。不少人会误解worker_connections这个参数的意思,认为这个值就是nginx所能创建链接的最大值。其实否则,这个值是表示每一个worker进程所能创建链接的最大值,因此,一个nginx能创建的最大链接数,应该是worker_connections * worker_processes。固然,这里说的是最大链接数,对于HTTP请求本地资源来讲,可以支持的最大并发数量是worker_connections * worker_processes,而若是是HTTP做为反向代理来讲,最大并发数量应该是worker_connections * worker_processes/2。由于做为反向代理服务器,每一个并发会创建与客户端的链接和与后端服务的链接,会占用两个链接。

指令上下文

nginx.conf中的配置信息,根据其逻辑上的意义,对它们进行了分类,也就是分红了多个做用域,或者称之为配置指令上下文。不一样的做用域含有一个或者多个配置项。后端

当前nginx支持的几个指令上下文:服务器

main: nginx在运行时与具体业务功能(好比http服务或者email服务代理)无关的一些参数,好比工做进程数,运行的身份等。
http: 与提供http服务相关的一些配置参数。例如:是否使用keepalive啊,是否使用gzip进行压缩等。
server: http服务上支持若干虚拟主机。每一个虚拟主机一个对应的server配置项,配置项里面包含该虚拟主机相关的配置。在提供mail服务的代理时,也能够创建若干server.每一个server经过监听的地址来区分。
location: http服务中,某些特定的URL对应的一系列配置项。
mail: 实现email相关的SMTP/IMAP/POP3代理时,共享的一些配置项(由于可能实现多个代理,工做在多个监听地址上)。
相关文章
相关标签/搜索