nginx: 是一个web服务器,反向代理服务器;
一、特点: 占用内存小;并发能力强;
二、常用命令(linux系统):
1.启动: nginx安装目录/sbin/nginx -c nginx安装目录/conf/nginx.conf
2.重启: nginx安装目录/sbin/nginx -s reload
3.关闭: 优雅的关闭: nginx安装目录/sbin/nginx -s quit ;当有请求正在处理的情况下关闭服务器,会先将已接收的请求处理 再关闭 ;
直接关闭: nginx安装目录 -s stop;
三、配置文件: nginx.conf
主要配置: 1.基本配置
2.event配置
3.http配置;
四、主要应用:
1.负载均衡(反向代理):
在请求比较多的情况下,服务器端可能不止一个服务器在接受请求;通常是搭建一个集群;此时nginx就相当于具有一个请求分发的功能(用户请求的是nginx服务器;而nginx将请求分发到集群中的服务器中),也就是“负载均衡”也可以说是反向代理原本的服务器;
1) 实现步骤:
(1) 在配置文件中的http配置中配置 upstream (2)配置访问路径 (3)重启nginx服务器
# 配置在http 配置中
upstream www.jk.com{
server 集群中某个服务器的访问地址;
server 集群中其他个服务器的访问地址;
}
然后在server配置中配置 nginx 某个路径的访问地址;
例如:
localhost /jk{
proxy_pass http://www.jk.com; //请求转发; 相当于访问nginx服务器的/jk路径就相当于访问上面
配置的upstream中server的地址
}
2) 负载均衡的策略:
(1)轮间:(默认)此种情况下请求会均匀的转发到upstream所配置的server服务器;就是上面代码块里的配置;
(2)权重:在每个server后面加上weight 数字; 数字越大的权重越大,nginx服务器会根据权重的比例来分发请求;
(3)ip_hash: 根据客户端的ip来计算相应的hash值;这样就是每个ip访问的是一台固定的服务器;可以解决session丢失 的问题;(在upstream{ ip_hash ; server……})
(4)最少连接: nginx服务器会检测配置的server服务器中哪个的连接数最少;就将请求转发到哪个服务器
(在upstream{least_conn; server……})
其他的负载均衡的配置:down :在server后配置; nginx不会分发请求到加了down的server;不论该server有没有开启;
backup:(备份);也是在server后配置;只有当其他没有配置backup的server全部down掉之后nginx才 会分发请求到配置了backup的服务器上;
2.静态代理:
在通常为web项目中;我们对于静态资源的访问也是通过apache tomcat或者其他web服务器访问;但是当请求特别多的时候;对于静态资源的访问就会更多;由于nginx有并发能力强的特点;所以可以将静态资源放在nginx服务器上;当访问静态资源时,请求nginx服务器,效率较快;
实现步骤:(1)将项目中的静态资源(css,js,img等)放到nginx服务器上;
(2)根据原本该静态资源的访问路径配置资源在nginx服务器的路径;
配置方式:(在server中配置)
(1)基于文件的后缀名配置;
(2)基于文件所在目录进行配置:
3.动静分离:
相当于负载均衡和静态代理的结合;对于动态数据的访问通过nginx服务器负载均衡访问;对于静态资源直接放在nginx服务器访问;
小知识点:
localhost 路径访问:root 和 alias的区别:
实际访问路径= root 的路径 +localhost后面的路径 =alias 的路径
例如: localhost /dev{ root /opt/test} 实际的访问路径就是 /opt/test/dev
localhost /dev{ alias /opt/test} 实际访问路径是 /opt/test;