nginx是一款强大的服务器,经常用来转发或者代理,它与另一款强大的服务器Apache有一点区别。
nginx是基于事件驱动的,Apache是基于进程的。nginx处理请求的时候都是在一个进程(或者几个,要看你启动的方式),而Apache每接受一个请求则需要重新开辟一个进程负责该请求连接。nginx对静态文件(使用sendfile避免了用户态和内核态切换)和短连接(epoll多路复用)的处理有强大的优势。
nginx也可以查看当前并发连接数,一般会有两种方式去查看当前连接的并发数。一种是通过web的方式,当想要通过web的方式查看的时候,你必须配置了status的模块,然后再在配置文件中进行相应的配置。一种是通过命令的方式,通过如下命令:
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
nginx的所有配置都在nginx.conf文件中,修改配置以后可以平滑重启,不用停止服务。
nginx -s reload(具体nginx其他命令请查看相关文档),在平滑启动之前最好测试一下配置文件格式是否正确,可以使用命令nginx -t -c nginx.conf。
介绍常见的配置:
location匹配命令
~ #波浪线表示执行一个正则匹配,区分大小写
~* #表示执行一个正则匹配,不区分大小写
^~ #^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
= #进行普通字符精确匹配
@ #“@” 定义一个命名的 location,使用在内部定向时,例如 error_page, t