nginx多启动问题
当有多个nginx启动,修改的配置不生效,只能在启动一个时配置生效,那么先关闭所有nginx进程,然后重启nginx,配置nginx。
1). 通过任务管理器,先关闭守护,再关闭主进程\
2).利用windows管理员命令强制关闭nginx
taskkill /f(强制关闭) /im(镜像名称) nginx.exe(服务名称)
start nginx 启动nginx服务
nginx -s reload 重启nginx服务
nginx -s stop 关闭nginx服务
重点知识: nginx监听80端口,不是占用.同时要求80端口不能被其他的服务占用.
nginx实现域名代理
需求说明:通过http://manage.jt.com访问http://localhost:8091服务器.
Nginx配置
#配置后台管理服务器
server {
listen 80;
server_name manage.jt.com;
# /代表拦截所有的请求路径
location / {
#代理的是请求路径
proxy_pass http://127.0.0.1:8091;
}
}
nginx负载均衡策略
1.说明:根据特定的负载均衡服务器,用户发起请求之后,根据配置文件中的配置顺序依次访问服务器. 减少单台服务器并发压力.
2.利用dos命令的方式启动tomcat服务器.
java -jar 8081.war
java -jar 8082.war
java -jar 8083.war
在dos命令窗口中执行
ctrl + c 关闭服务器
nginx负载均衡策略
1轮询策略
说明:根据配置文件的顺序,访问tomcat服务器.
#配置后台管理服务器
server {
listen 80;
server_name manage.jt.com;
# /代表拦截所有的请求路径
location / {
#代理的是请求路径
#proxy_pass http://127.0.0.1:8091;
proxy_pass http://jtWindows;
}
}
#tomcat集群配置 windows集群 upstream 集群的定义
#默认规则 轮询策略
upstream jtWindows {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
server 127.0.0.1:8083;
}
2权重策略
说明:通过人为的配置,指定某些服务器多处理请求. 一般都是让性能更优的服务器多处理用户的请求.(能者多劳)
#tomcat集群配置 windows集群 upstream 集群的定义
#默认规则 轮询策略
upstream jtWindows {
server 127.0.0.1:8081 weight=6;
server 127.0.0.1:8082 weight=3;
server 127.0.0.1:8083 weight=1;
}
3IPhash策略
用户频繁的登录.并且不能保证用户数据的一致性.
说明:可以将用户的IP地址与tomcat服务器进行绑定.
配置nginx:
#tomcat集群配置 windows集群 upstream 集群的定义
#默认规则 轮询策略
upstream jtWindows {
ip_hash;
server 127.0.0.1:8081 weight=6;
server 127.0.0.1:8082 weight=3;
server 127.0.0.1:8083 weight=1;
}
弊端:
1.如果tomcat服务器后台宕机,则直接影响用户的使用
2.如果使用IPhash方式,则可能导致负载不均的现象.
总结:
IPHASH一般不会出现在公司的配置中,一般会在测试环境中配置.
nginx 常用属性
down属性
如果tomcat服务器宕机,可以将配置文件信息,标识为down.以后用户就不会再次访问故障机.
backup属性
该属性配置标识该服务器为备用机,正常情况下用户不会访问故障机.只有当主机遇忙,或者主机宕机时才会访问.
upstream jtWindows {
#ip_hash;
server 127.0.0.1:8081 down;
server 127.0.0.1:8082;
server 127.0.0.1:8083 backup;
}
tomcat高可用实现
说明: 如果tomcat服务器宕机,可以通过程序实现自动的检测,如果发现服务器宕机,则自动的标识为down(内存中), 在指定的时间内用户不会再次去访问故障机.如果到了下一个周期尝试访问故障机是否可用.
1.max_fails=设定最大的失败次数 用户通过负载均衡访问服务器,如果访问服务不能正常连接则失败次数+1 则开始进行高可用策略
2.fail_timeout 60秒
如果服务器宕机,则在60秒内用户不会再次访问故障机.直到下一个周期.会重新检测
server {
listen 80;
server_name manage.jt.com;
# /代表拦截所有的请求路径
location / {
#代理的是请求路径
#proxy_pass http://127.0.0.1:8091;
proxy_pass http://jtWindows;
#请求链接的超时时间
proxy_connect_timeout 1;
#如果读取服务器资源时 不能及时响应,则超时
proxy_read_timeout 1;
#向服务器发送数据时的超时时间
proxy_send_timeout 1;
}
}
#tomcat集群配置 windows集群 upstream 集群的定义
#默认规则 轮询策略
upstream jtWindows {
#ip_hash;
server 127.0.0.1:8081 max_fails=1 fail_timeout=60s;
server 127.0.0.1:8082 max_fails=1 fail_timeout=60s;
server 127.0.0.1:8083 max_fails=1 fail_timeout=60s;
}