1、Nginx是什么?
Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。
2、Nginx的三大功能是什么?
1)反向代理
正向代理:特定情况下,代理用户访问服务器,需要用户手动的设置代理服务器的ip和端口号。
反向代理:是用来代理服务器,代理用户要访问的目标服务器。代理服务器接受请求,然后将请求转发给内部网络的服务器(服务集群模式),并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。
Nginx在反向代理上,提供灵活的功能,可以根据不同的正则采用不同的转发策略,如图设置好后不同的请求就可以走不同的服务器。
2)负载均衡
负载均衡:多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。
Nginx可使用的负载均衡策略有:轮询(默认)、权重、ip_hash、url_hash(第三方)、fair(第三方)。
3)动静分离
常用于前后端分离,Nginx提供的动静分离是指把动态请求和静态请求分离开,合适的服务器处理相应的请求,使整个服务器系统的性能、效率更高。
Nginx可以根据配置对不同的请求做不同转发,这是动态分离的基础。静态请求对应的静态资源可以直接放在Nginx上做缓冲,更好的做法是放在相应的缓冲服务器上。动态请求由相应的后端服务器处理。
3、文件配置
#web服务器
server {
listen 81; # 监听的端口
server_name localhost; # 域名或ip
location / { # 访问 / 路径配置
root index; # 根目录
index index.html index.htm; # 默认首页
}
location /demo { # 访问 /demo 路径配置
alias dist; # 根目录
index index.html index.htm; # 默认首页
}
error_page 500 502 503 504 /50x.html;
location = /50x.html { # 错误页面
root html;
}
}
# 虚拟主机
server {
listen 80;
server_name www.lishaojun.com;
location / {
root cart;
index cart.html;
}
}
server {
listen 80;
server_name abc.lishaojun.com;
location / {
root search;
index search.html;
}
}
#反向代理 + 负载均衡
#负载均衡参数(
weight=number 设定服务器的权重,默认是1;
max_fails=number 设定服务器通讯的失败次数;
fail_timeout=time 设定一段时间,服务器失败次数达到指定的尝试次数,服务器就被认为不可用;
)
upstream tomcat-travel { # 定义一组服务器,这些服务器可以监听不同的端口
server 192.168.177.129:8080 max_fails=3 fail_timeout=30s;
server 192.168.177.129:8081 weight=2;
server 192.168.177.129:8082;
}
server {
listen 80; # 监听的端口
server_name www.lishaojun.com; # 域名或ip
location / { # 访问路径配置
root index; # 根目录
proxy_pass http://tomcat-travel; # 别名
index index.html index.htm; # 默认首页
}
error_page 500 502 503 504 /50x.html;
location = /50x.html { # 错误页面
root html;
}
}