Nginx

   日期:2020-11-17     浏览:112    评论:0    
核心提示:一.Nginx介绍1.1前言随着客户端用户不断增多,请求量增加,并发量增高,这是咱们需要搭建服务器的集群。为什么使用Nginx?客户端发送请求要发给哪台服务器?如果所有客户端的请求都发给了服务器1?客户端请求可能是静态资源也可能是动态资源?这时候,我们就需要追加一个Nginx来反向代理,客户端只需要发送请求给Nginx,让它帮我们解决上面的全部问题。1.2 Nginx介绍特点:稳定性强,7*24不间断运行Nginx提供了非常丰富的配置实例内存占用小,并发能力强(淘宝,京东双1

一.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网址为:localhost8888,需要跳转到目标服务器的网址为http://localhost:8080/hello/toLogin.do
保存后重启服务器,在浏览器中输入localhost8888,即可跳转到我们目标服务器的网址。

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提供一个虚拟的路径,统一接受客户端的请求。
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服