Nginx

一.Nginx介绍

1.1前言

随着客户端用户不断增多,请求量增加,并发量增高,那么咱们需要搭建服务器的集群。

为什么使用Nginx?

  1. 客户端发送请求要发给哪台服务器?
  2. 如果所有客户端的请求都发给了服务器1?
  3. 客户端请求可能是静态资源也可能是动态资源?

这时候,我们就需要追加一个Nginx来反向代理,客户端只需要发送请求给Nginx,让它帮我们解决上面的全部问题。
在这里插入图片描述

1.2 Nginx介绍

特点:

  1. 稳定性强,7*24不间断运行
  2. Nginx提供了非常丰富的配置实例
  3. 内存占用小,并发能力强(TB,JD双11都在使用,是对Nginx的额外封装)

二.下载安装

进入官网如下图:
在这里插入图片描述

下载后解压即可(注:不要放在有中文路径的文件夹下面)。

双击nginx.exe程序,就启动了。 

在这里插入图片描述

然后我们在浏览器中输入localhost(nginx默认是80端口,故不需要加端口号),出现下列画面即启动成功。

在这里插入图片描述

三.反向代理

3.1正向代理与方向代理介绍

正向代理:
	1:正向代理服务器是由客户端设立的。
	2:客户端了解代理服务器和目标是谁。
	3:帮助我们提高访问的权限,提高访问的速度,对目标服务器隐藏客户端的ip地址。

反向代理:
	1:反向代理服务器是配置在服务端的。
	2:客户端时不知道访问的那一台服务器的。
	3:达到负载均衡,并且可以隐藏服务器真正的ip地址。

在这里插入图片描述

3.2基于Nginx的反向代理实现

客户端:浏览器
反向代理服务器:Nginx
服务器:Tomcat
http://localhost:8080/hello/toLogin.do(自己手写的测试项目网址)

在这里插入图片描述

修改Nginx的配置文件nginx.conf如上图。
其中修改监听端口为:8888,访问Nginx网址为:localhost:8888,需要跳转到目标服务器的网址为http://localhost:8080/hello/toLogin.do
保存后重启服务器,在浏览器中输入localhost:8888,即可跳转到我们目标服务器的网址。

在这里插入图片描述

3.3关于Nginx的location路径的映射

# 1. =匹配
location = /{
	#精准匹配,主机名后面不能带任何的字符
}
# 2. 通用匹配
location /xxx{
    #匹配所有以/xxx开头的路径
}
# 3. 正则匹配
location ~ /xxx{
	#匹配所有以/xxx开头的路径(优先级大于2)
}
# 4. 匹配开头路径
location ^~ /xxx/{
    #匹配所有以/xxx开头的路径(优先级大于3)
}
# 5. ~* \.(gif|jpg|png){
	#匹配以gif或jpg或png结尾的路径
}
配置文件里的server块里面可以配置多各location块,通过上面的优先级匹配,可以访问不同的目标服务器网址。

四.Nginx的负载均衡

Nginx为我们提供了默认的三种负载均衡策略:
	1.轮询
		将客户端发起的请求,平均分配给每一台服务器。(依次发送给每一台服务器)
	2.权重
    	会讲客户端的请求,根据服务器的权重,分配不同的数量。(比如多台服务器的处理速度不一样)
    3.ip_hash
    	基于发起请求的客户端的ip地址不同,他始终会将请求发送到指定的服务器。(根据ip地址获取hash值,同样的hash值发送到同一台服务器)

4.1 轮询

在server上面配置自己的server,如下:
upstream 服务名称{
    server ip:port;		#注意:只能到端口号,后面不能加其他地址!!!
    server ip:port;
    #可以配置多个,上面只能配置ip地址加端口号,不能再后面跟其他的地址
}
在location块配置如下:
location / {
    proxy_pass http://upstream的服务名称;
}

4.2 权重

只需要在轮询的基础上加上一点点配置:
upstream 服务名称{
    server ip:port weight=权重比例;
    server ip:port weight=权重比例;
    #可以配置多个,上面只能配置ip地址加端口号,不能再后面跟其他的地址
}
在location块配置如下:
location / {
    proxy_pass http://upstream的服务名称;
}

4.3 ip_hash

配置只需要在upstream下面加上一行配置:
upstream 服务名称{
	ip_hash;
    server ip:port;
    server ip:port;
}
在location块配置如下:
location / {
    proxy_pass http://upstream的服务名称;
}

五.Nginx动静分离

Nginx并发能力公式:
	配置文件中worker_processes*worker_connections/2|4=Nginx的并发能力
	动态资源需要/4
	静态资源/2
	Nginx通过动静分离,来提高并发能力。

在这里插入图片描述

5.1 动态资源代理配置

与上面负载均衡配置情况是一样的
upstream 服务名称{
    server ip:port;
    server ip:port;
}
在location块配置如下:
location / {
    proxy_pass http://upstream的服务名称;
}

5.2 静态资源代理配置

#配置如下:
location / {
	root 静态资源路径;
	index 默认访问路径下的什么资源;
	autoindex on;	#代表展示静态资源的全部内容,以列表的形式展开。
}

六.Nginx集群

对于服务器我们可以配置多个来防止某一台服务器宕机,但是如果只有一个Nginx,也有可能出现宕机的情况,所以我们需要配置Nginx集群来解决这个问题。
其中需要keepalived与haproxy,keepalived帮我们监听Nginx是否运行正常,haproxy提供一个虚拟的路径,统一接受客户端的请求。

Nginx集群

对于服务器我们可以配置多个来防止某一台服务器宕机,但是如果只有一个Nginx,也有可能出现宕机的情况,所以我们需要配置Nginx集群来解决这个问题。

在这里插入图片描述

其中需要keepalived与haproxy,keepalived帮我们监听Nginx是否运行正常,haproxy提供一个虚拟的路径,统一接受客户端的请求。
  • 7
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值