1、nginx是什么
nginx是一台高性能的服务器,主要用于反向代理以及域名解析,正向代理和反向代理的区别
nginx默认监听端口80
2、nginx 常用命令
./nginx -c /usr/local/nginx/conf/nginx.conf 开启nginx服务 -c 可以指定配置文件
./nginx -t 验证nginx配置文件是否正确
./nginx -s quit 优雅停止nginx,有连接时会等连接请求完成再杀死worker进程
./nginx -s stop 强制关闭,包括切断已经在连接中的客户端
./nginx -s reload 优雅重启,并重新载入配置文件nginx.conf
./nginx -v 当前版本号
./nginx -V 详细的版本信息
./nginx -c 加载指定的配置文件
3、原理
nginx模型有两种进程,master进程和worker进程。master进程主要用来管理worker进程,管理包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。而基本的网络事件,则是放在worker进程中来处理了。多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。worker进程的个数是可以设置的,一般我们会设置与机器cpu核数一致,这里面的原因与nginx的进程模型以及事件处理模型是分不开的。
4、配置
nginx conf配置文件结构如图
nginx 配置文件:
##代码块中的events、http、server、location、upstream等都是块配置项##
##块配置项可以嵌套。内层块直接继承外层快,例如:server块里的任意配置都是基于http块里的已有配置的##
##Nginx worker进程运行的用户及用户组
#语法:user username[groupname] 默认:user nobody nobody
#user用于设置master进程启动后,fork出的worker进程运行在那个用户和用户组下。当按照"user username;"设置时,用户组名与用户名相同。
#若用户在configure命令执行时,使用了参数--user=usergroup 和 --group=groupname,此时nginx.conf将使用参数中指定的用户和用户组。
#user nobody;
##Nginx worker进程个数:其数量直接影响性能。
#每个worker进程都是单线程的进程,他们会调用各个模块以实现多种多样的功能。如果这些模块不会出现阻塞式的调用,那么,有多少CPU内核就应该配置多少个进程,反之,有可能出现阻塞式调用