nginx
Nginx
Nginx 是一个强大的 Web 服务器软件,用于处理高并发的 HTTP 请求和作为反向代理服务器做负载均衡。具有高性能、轻量级、内存消耗少,强大的负载均衡能力等优势。
nginx 软件的特点
高性能:
一、epoll 多路复用
二丶master worker 进程模型
一个 master,多个 worker,master 管理 worker,worker 处理请求,且 worker 进程为单线程
三丶协程机制
- 进程的出现是为了更好的利用CPU资源使到并发成为可能
- 线程的出现是为了降低上下文切换的消耗,提高系统的并发性,并突破一个进程只能干一样事的缺陷,使到进程内并发成为可能
- 协程通过在线程中实现调度,避免了陷入内核级别的上下文切换造成的性能损失,进而突破了线程在IO上的性能瓶颈
支持高并发:能支持几万并发连接(特别是静态小文件业务环境)
资源消耗少:在 3 万并发连接下,开启 10 个 Nginx 线程消耗的内存不到 200MB、进程占用系统资源比较低
nginx源码安装
安装nginx依赖
yum -y install gcc gcc-c++ pcre-devel zlib-devel
上传源码包并编译安装
上传nginx源码包到/usr/local/src tar -zxf nginx-1.16.1.tar.gz -C /usr/local/ cd /usr/local/nginx-1.16.1 ./configure && make && make install
nginx匹配模式
location = /uri =开头表示精确匹配,只有完全匹配上才能生效。
location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前。
location ~ pattern ~开头表示区分大小写的正则匹配。
location ~* pattern ~*开头表示不区分大小写的正则匹配。
location /uri 不带任何修饰符,也表示前缀匹配,但是在正则匹配之后。
location / 通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default。
location ^~ /admin { deny all; } location = /50x.html { #root html; return 600; } location ~ /helloword { return 601; } location ~* /Helloword { return 602; }