Nginx
一.概念
1.是什么,做什么的
高性能HTTP和反向代理服务器,特点是占用内存少,并发力强。专门未性能优化而开发,能支持50000个并发连接
2.反向代理
(1)正向代理
再服务器端配置代理服务器进行访问互联网内容
(2)反向代理
客户端对代理是无感知的,因为客户端不许要配置就可以访问,客户端将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个完整的服务器,暴露在外的是代理服务器地址,隐藏了真实的服务器IP地址
3.负载均衡
增加服务器的数量,将请求分发到服务器上,将原来请求集中到单个服务器上的情况改为请求分发到多个服务器上,将负载分发到不同的服务器上,也就是负载均衡
4.动静分离
为什么: 为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力
通过location指定不同的后缀名实现不同的请求转发,通过expires参数设置,可以使浏览器缓存过期时间,减少与服务器之间的请求与流量,expires定义:是个一个资源设定一个过期时间,也就是说无需去服务点验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量。此种方法适合不经常变动的资源,设置3d表示三天之内访问这个URL,发送一个请求,比对服务器该文件的最后更新时间有没有发生变化,若没有则不会从服务器获取数据,返回给浏览器状态码304(让他用缓存),若发生变化,则重新从服务器获取,返回状态码200
二.nginx安装与配置
1.安装与配置
# yum -y install vim* //安装vim编辑器 # yum -y install gcc gcc-c++ autoconf automake //gcc、gcc-c++库文件(-y:全部yes,autoconf:自动配置,automake:自动编译) # yum -y install pcre pcre-devel //Nginx依赖包 # yum -y install zlib zlib-devel # yum -y install openssl openssl-devel //openssl库 # wget -P /usr/local http://nginx.org/download/nginx-1.12.2.tar.gz # cd /usr/local # tar -zxvf nginx-1.12.2.tar.gz //解压缩 # cd nginx-1.12.2 # ./configure //配置 # make # make install //安装 # cd /usr/local //如果存在nginx文件夹,则安装成功 # cd /usr/local/nginx/sbin //进入启动目录 # ./nginx //启动nginx 访问服务ip+80端口成功及代表成功 --记得开放LINUX端口 2.常用命令 要先进入nginx的目录的sbin文件夹 1.查看nginx版本 ./nginx -v 2.启动nginx ./nginx 3.关闭nginx ./nginx -s stop (强制退出) 4.重新加载nginx的配置文件(nginx/conf/nainx.conf) ./nginx -s reload 3.配置文件 (/usr/local/nginx/conf/nainx.conf)新版本在etc目录
(1).配置文件由三部分组成
第一部门 全局快
从配置文件开始到events块之间都是全局快,主要设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行nginx服务器的用户(组)。允许生成的worker process数,进程PID存放路径,日志存放路径和类型以及配置文件的引入等
第一行: worker_processes值越大,可以支持的并发量越多-- worker角色的进程个数,根据CPU个数而定
worker_processes 1; 第二部门 events块 events块涉及的指令主要影响nginx服务器与用户的网络连接 worker_connections 1024; 支持最大连接数 第三部分 http块 包含http全局块,server快
三.配置实例--反向代理
在配置文件中修改
实现访问路劲中有esc/edu分发到8081/8080端口所在服务器
先配置两个tomcat服务器并且修改端口,再修改nginx配置文件
访问:
location
语法规则: location [=|~|~*|^~] /uri/ { … }
= 开头表示精确匹配
^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
~ 开头表示区分大小写的正则匹配
~* 开头表示不区分大小写的正则匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
/ 通用匹配,任何请求都会匹配到。
四.配置实例--负载均衡
nginx分配服务器策略
1.轮询(默认)
每个请求安时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,会自动剔除
2.weight(权重)
weight代表权重默认为1,权重越高被分配到的请求越多,在后面直接加上weight和数值就行
3.IP_HASH
每个请求按照访问IP的hash结果分配,同一个客户端的请求会被分配到相同的后端服务器
配置方式
4.fair(第三方)
根据服务端的响应时间来分配,响应时间越短,分配越多
配置方式
五.配置实例--动静分离
在服务器中添加静态文件
配置文件
访问效果