nginx是一个轻量级,高性能的http和反向代理的web服务器
在实际使用中常常和tomcat搭配使用
nginx下载页,选择对应的版本进行下载
解压到安装目录就可以直接使用了,需要注意的是,路径不能有中文名,linux环境下需要还需要安装gcc等环境
注意事项:nginx启动会占用80端口,如果启动异常,检查80端口是否被占用,如果被占用可以在nginx解压目录下找到conf/nginx.conf文件修改端口
server {
listen 90; #启动端口
server_name localhost; location / {
root html;
index index.html index.htm;
}
location = /50x.html {
root html;
}
nginx常用命令:
启动命令:start nginx
关闭命令:nginx -s stop
重启命令:nginx -s reload
温馨提示:每次修改配置文件后记得重新启动nginx哦
nginx.conf配置
#图片服务器
server {
listen 90;
server_name image.page.com;
location / {
#代理的路径
root E:/page/images/;
}
}
#后台商品管理服务器
server{
listen 90;
server_name manage.page.com;
location / {
#代理服务器路径
proxy_pass http://localhost:8080;
}
}
}
由于没有购买域名,dns服务器无法解析
可以在此路径下C:\Windows\System32\drivers\etc找到hosts文件,在文件末尾添加本地域名解析
在浏览器地址栏输入域名后,会先在这个文件查找,没有才通过dns服务器解析域名
添加本地域名解析
127.0.0.1 image.page.com
127.0.0.1 manage.page.com
#需要解析的域名和对应的ip地址
什么是负载均衡
在项目部署时有多台服务器,那么这几台服务器该如何来分配呢?nginx可以分配用户去访问不同的服务器
配置nginx.conf配置文件
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
#
server localhost:8091;
server localhost:8092;
server localhost:8094;
}
#后台商品管理服务器
server{
listen 90;
server_name manage.page.com;
location / {
#代理服务器路径
proxy_pass http://pageWindows;
}
}
}
通过以上配置nginx就会平均的分配用户访问的是那个服务器
轮询策略:平均分配
权重策略:按照比例分配
IPHASH策略:根据ip来分配
nginx默认配置为轮询
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
#默认轮询策略
server localhost:8091;
server localhost:8092;
server localhost:8094;
}
优点:每个服务器都平均分配访问
缺点:性能不是很好的服务器会承担它这个价格不该承受的压力
能力越大责任越大,性能越好的服务器应该允许更大的访问
关键字:weight
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
#配置权重策略
server localhost:8091 weight = 6;
server localhost:8092 weight = 3;
server localhost:8094 weight = 1;
}
基于客服端ip地址进行服务器分发,同一个ip只能访问且始终只能访问那一台服务器
缺点:如果一台服务器出现故障不能访问,那么他们对应的那一批用户将无法访问,显然这个缺点是致命的,当然负载不均也是肯定的,不推荐使用
关键字:ip_hash
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
#IPHASH策略
ip_hash
server localhost:8091;
server localhost:8092;
server localhost:8094;
}
当 nginx实现负载均衡时,后台服务器出现故障,可以用down标记,nginx就不会对该服务器进行分配
实现
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
server localhost:8091 down; #nginx不会对该服务器分配访问任务
server localhost:8092;
server localhost:8094;
}
backup 表示备用机 正常情况下该机器不参与用户的访问,留作备用,当服务器全部宏基或者主服务器繁忙时启用
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
server localhost:8091 down; #nginx不会对该服务器分配访问任务
server localhost:8092 down;
server localhost:8094 backup;
}
健康检查是为了在没有程序员表示down属性时,引起频繁访问故障机的情况,当服务器宕机,只需要影响用户2秒之后,在指定的周期中不在访问故障机提升用户体验
常用属性:
max_fails=1: 表示用户发起请求时链接不到服务器表示失败.
fail_timeout=60s 如果服务器访问失败次数1次之后则在60秒内不会再访问故障机.
proxy_connect_timeout 2; #服务器链接超时时间
proxy_read_timeout 2; #读取服务器资源超时时间
proxy_send_timeout 2; #向服务器发送资源的超时时间
配置
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
server localhost:8091 max_fails=1 fail_timeout=60s;
server localhost:8092 ;
server localhost:8094 ;
}