Nginx在运行时有一个主进程和多个worker进程,主进程负责总体管理等工作,比如重新加载配置文件以及管理worker进程等,具体对请求的处理由各个worker进程完成。
worker进程数通常和CPU的核数一致,worker进程中只有一个线程处理所有的请求。一个线程能达到很高的并发量是因为Nginx使用的异步+事件驱动架构,在底层使用了诸如epoll/kqueue这样的操作系统内核支持。
Nginx架构nginx的主配置文件为nginx.conf,在安装nginx之后,根据不同的Linux发型版,该文件可能存在于:/usr/local/nginx/conf、 /etc/nginx或者/usr/local/etc/nginx。
出于职责分离原则,不要在nginx.conf文件中使用server配置,该文件主要用于Nginx本身,而非某个网站的配置,可以通过include指令加入其它配置文件。
修改配置文件后,使配置立即生效:
nginx -s reload
nginx的配置主要包含4种指令(directive):
- 普通键值对directive
- 数组directive
- 动作执行directive
- try_file
指令只能在特定的context下才能生效,否则nginx将报错。
nginx的配置在父子上下文(context)可以继承,继承方式对于不同的directive是不同的:
- 对于普通键值对,子context会覆盖父context
- 对于数组:子context会全部覆盖父context,而不是向数组中追加元素
网友评论