nginx的使用nginx的服务集群

1.反向代理说明:

当用户发起请求时,首先请求被nginx(此处可以理解为转化器)拦截。根据背部配置文件的约定。将请求的URL地址进行替换。由转换器发起请求,去访问真实的网络资源,之后由转化器将资源交还给用户的过程。
在这里插入图片描述
核心特点:
用户无需关心真实的服务器资源到底是谁,由代理服务器代替用户访问。

2.正向代理:

在这里插入图片描述
核心特点:
用户了解自己访问的资源的位置。并且由用户自己去获取真实的资源。

3.nginx:

3.1nginx核心介绍

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
内存少:不到2M 开发语言:C语言(小,贴近硬件)
并发能力强:
Tomcat服务器 250± 实际150±
nginx服务器 5万/秒 实际3万/秒

3.2nginx下载:http://nginx.org/en/download.html

在这里插入图片描述
3.2.1安装要求:
重要说明:
1.nginx软件不要安装到c盘(防止由于权限问题,导致软件无法使用)
2.安装文件路径不要有中文 nginx
3.2.2安装步骤:
1.以管理员身份运行(获取管理员权限)
在这里插入图片描述
2.通过路径访问,测试nginx启动是否正常。
http://localhost:80 nginx会占用80端口,所以其他软件不能占用。
3.线程说明:
nginx启动时,会启动2个服务项
在这里插入图片描述
1.主线程:提供反向代理服务。
2.守护进程:防止主进程意外关闭。
关闭nginx步骤:1.先关闭守护进程(内存小的),之后关闭主进程(内存大的。)
4.nginx命令
要求:执行nginx命令需要在nginx.exe根目录中执行。
1.启动命令:start nginx
2.重启命令:nginx -s reload
3.关闭命令:nginx -s stop
5.反向代理入门:
在这里插入图片描述
模板:

server {
     #nginx默认监听的端口号80
        listen       80;
        #拦截用户的请求路径  
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
#反向代理配置  / 代表全部请求
        location / {
         #root是关键字  代表跳转文件目录
            root   html;
            #index是关键字 默认欢迎页面
            index  index.html index.htm;
        }
  }

反向代理图片:

#配置图片服务器
server {
	listen 80;
		server_name lx.com;
	
	#个别计算机,不能识别\,换位/
	location / {
		root D:/lx/image;
	}
}

单击测试和注意事项:

在这里插入图片描述
修改hosts里面的相关配置。
(如果不能修改的话,按照下面的流程进行取消只读就好)
在这里插入图片描述
在这里插入图片描述

4.Tomcat集群搭建:

4.1数据测算:
单台Tomcat服务器一天可以为用户提供多少次响应?
大约600万-700万之间。大约为10000个用户提供支持。
4.2集群说明:
搭建Tomcat服务器集群,是抗击高并发的有效手段。使用多台服务器,其中部署的项目是相同的。
在这里插入图片描述
4.3nginx实现域名代理:
1.配置nginx配置文件:

#配置后台管理服务器 manage.jt.com localhost:8091
server{
	listen 80;
		server_name lx.com;
	 
	location / {
		proxy_pass http://localhost:8091;
	}
}

可以直接使用lx.com来代理localhost:8091
4.4nginx中常见报错:
1.安装和配置
C盘/中文路径 nginx一定不能正常使用。
2.nginx配置问题:
nginx -s reload 如果配置有错,则报错提示(90%)
nginx配置出问题。但是reload没有报错现象。nginx重新解压nginx 检查重启项可以启动多次。
3.hosts不生效 将计算机重启
4.localhost 关键字不生效 将localhost换成计算机名
5.项目打包:
分别打8081,8082,8083三个jar包。
然后通过
java -jar 8081.war
java -jar 8082.war
java -jar 8083.war 关闭 ctrl + c
6.nginx实现负载均衡
6.1轮询策略:
策略说明:根据配置文件的顺序,依次访问tomcat服务器.

server{
	listen 80;
		server_name lx.com;
	 
	location / {
		proxy_pass http://jtWindows;
	}
}
#定义windows集群
upstream jtWindows {
	server localhost:8081;
	server localhost:8082;
	server localhost:8083;
}

修改完成之后,重启nginx服务器.
6.2权重方式(旧公司)
需求:公司中服务器可能会更新迭代.导致物理设备处理能力不同.如果这时采用轮询的机制,可能会影响用户使用.

#定义windows集群  1.默认 轮询 2.权重
upstream jtWindows {
	server localhost:8081 weight=6;
	server localhost:8082 weight=3;
	server localhost:8083 weight=1;
}

6.3IP_HASH(了解)
业务需求:要求实现session共享!!!,用户要求只登陆一次,即可访问全部的tomcat集群.
A: 利用Ngninx服务器实现Session共享.
缺点:

  1. 如果nginx服务器宕机,则直接影响用户.
  2. nginx服务器中保存了大量的用户Session信息.内存开销大.
    B:采用IPHASH策略
    优点:利用用户的IP地址之后进行hash运算.之后与服务器进行动态的绑定.变相的实现Session共享.
    缺点:
  3. 会导致严重的负载不均.
  4. 如果其中某台服务器宕机.则直接影响绑定用户.

C:实现SSO(单点登录操作)
说明:SSO是一种实现用户登录一次即可访问相互之间信任系统的解决方案. 思想相同,实施可能不同.

7. Nginx高级属性配置

1.1.1 down属性
说明:有时tomcat服务器可能会发生意外宕机.这时nginx服务器做负载均衡时,如果访问故障机,nginx首先会连接故障机,如果1-3秒连接不同,则访问下一太个
属性作用:标识故障机. nginx以后不再访问该机器.

1.1.2 backup属性
说明:一般配置集群时会添加一些备用机.防止主机宕机之后没有足够的服务器响应用户.导致服务器异常.
触发策略: 当主机遇忙时/主机全部宕机时.backup主机生效.

#定义windows集群  1.默认 轮询 2.权重 3.IPhash
upstream jtWindows {
#ip_hash;
   server localhost:8081 down;
   server localhost:8082 down;
   server localhost:8083 backup;
}

1.1.3 Nginx高可用策略
1.1.3.1 高可用(HA)
为了屏蔽负载均衡服务器的失效,需要建立一个备份机。主服务器和备份机上都运行High Availability监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主管理器就开始再次进行集群管理的工作了。为在主服务器失效的情况下系统能正常工作,我们在主、备份机之间实现负载集群系统配置信息的同步与备份,保持二者系统的基本一致。
总结:首先有主从结构,当主机发生了宕机现象,则可以自动的实现故障的迁移.

1.1.3.2 Nginx高可用配置

max_fails=1   :定义最大的失败次数,该服务器连续失败几次,不再访问该服务器.
fail_timeout=60s   定义访问的周期 60秒
#定义windows集群  1.默认 轮询 2.权重 3.IPhash
upstream jtWindows {
#ip_hash;
	server localhost:8081 max_fails=1 fail_timeout=60s;
	server localhost:8082 max_fails=1 fail_timeout=60s;
	server localhost:8083 max_fails=1 fail_timeout=60s;
}

执行过程:
当用户访问nginx时,如果该服务器访问失败,则在指定的周期内,不会再次访问故障机.到了下一个周期会自动的校验,如果依然访问不同,在等下一个周期.

#定义超时时间
proxy_connect_timeout       1;  
proxy_read_timeout          1;  
proxy_send_timeout          1;  

Linux集群配置:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值