Nginx核心功能

1.反向代理

1.1什么是反向代理:

正向代理:代理的是客户端,对于服务器来说,不知道客户的具体地址,比如翻墙软件,隐藏了真实的请求客户端,服务器不知道真实的客户

反向代理:代理的是服务器,对于客户端来说,不知道具体访问的哪个服务器的信息,对于真实服务器具有保护作用。

1.2如何使用反向代理:

模拟一台服务器:

一台Nginx代理服务器:

在qy168test01服务器上运行一个测试springboot的项目:

运行: java -jar qy168-nginx01-0.0.1-SNAPSHOT.jar

 修改qy168中Nginx的配置文件内容

 添加要代理的服务器地址

 启动nginx:

 如果已经启动了就重启加载配置文件:/usr/nginx/sbin/nginx -s reload

访问:

2.负载均衡

随着访问量的不断增加,一台服务器无法处理那么多的请求,这时就需要搭建服务器的集群。把请求均摊到集群的不同服务器上,需要负载均衡组件,该组件可以帮你完成把请求均摊到集群服务器。

案例:准备两台服务器,一台Nginx代理服务器

服务器:

 Nginx代理:

 在两台服务器上都运行项目:java -jar qy168-nginx01-0.0.1-SNAPSHOT.jar

修改nginx的配置文件,完成代理以及负载均衡:vi /usr/nginx/conf/nginx.conf

upstream:定义集群信息

 执行6次:两台服务器都各执行了三次,是因为负载均衡默认采用轮询策略

 

 负载均衡的策略:

轮询------默认,轮流循环

负载------根据服务的硬件不同,配置不同的载重

ip哈希策略------nginx会根据客户的ip进行哈希计算----根据计算结果把请求转发给对应的服务器。如果客户的ip没有变化,那么访问的服务器也不会发生变化。

3.动静分离

是将静态资源和动态资源分开,将静态资源交于nginx来处理。

不适合前后端完全分离的项目

 演示:准备一台服务器和一台nginx代理服务器

服务器运行没有静态资源的工程: java -jar qy168-nginx02-0.0.1-SNAPSHOT.jar

配置监听:

运行:发现没有静态资源

 将静态资源放在nginx的目录下

 修改配置文件:

 重启nginx:/usr/nginx/sbin/nginx -s reload

访问页面:

4.高可用

是为了提高nginx的可用性

设想假如代理服务器宕机了,那所有的客户请求就无法处理了,如果要解决这种为题,我们就要搭建多台代理服务器,就是nginx的高可用,如何知道哪台出现故障并能帮我切换到另一台服务器呢,客户又该如何访问nginx呢。

使用keepalived可以来解决上述的问题。作用备用代理服务器来监听主代理服务器,如果出现问题则切换到备用代理服务器

案例:搭建一台MASTER(主服务器),一台 BACKUP(备用服务器)

修改两个服务器的html页面分辨测试效果:

 

 需要在MASTER和BACKUP上安装keepalived

yum -y install keepalived

默认keepalived路径 /etc/keepalived

修改keepalived配置文件

把自己window中的keepalived.conf覆盖原来的配置文件

 MASTER:

global_defs {
	notification_email {
	  acassen@firewall.loc
	  failover@firewall.loc
	  sysadmin@firewall.loc
	}
	notification_email_from Alexandre.Cassen@firewall.loc
	smtp_ server 192.168.61.223
	smtp_connect_timeout 30
	router_id 192.168.61.223
}

vrrp_script chk_http_ port {
	script "/usr/local/src/nginx_check.sh"
	interval 2
	weight 2
}

vrrp_instance VI_1 {
	state MASTER
	interface ens33
	virtual_router_id 51
	priority 100
	advert_int 1
	authentication {
		auth type PASS
		auth pass 1111
        }
	virtual_ipaddress { 
		192.168.61.50
	}
	
}

BACKUP:

global_defs {
	notification_email {
	  acassen@firewall.loc
	  failover@firewall.loc
	  sysadmin@firewall.loc
	}
	notification_email_from Alexandre.Cassen@firewall.loc
	smtp_ server 192.168.61.224
	smtp_connect_timeout 30
	router_id 192.168.61.224
}

vrrp_script chk_http_ port {
	script "/usr/local/src/nginx_check.sh"
	interval 2
	weight 2
}

vrrp_instance VI_1 {
	state BACKUP
	interface ens33
	virtual_router_id 51
	priority 90
	advert_int 1
	authentication {
		auth type PASS
		auth pass 1111
        }
	virtual_ipaddress { 
		192.168.61.50
	}
	
}

把nginx脚本拖到/usr/local/src

nginx_check.sh脚本 :

#!/bin/bash
# 检查是否开启nginx---统计nginx进程的个数
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
        pkill -9 keepalived
fi

 分别启动keepalived服务和nginx

启动keepalived服务:systemctl start keepalived

启动nginx:/usr/nginx/sbin/nginx

测试:

人为关闭主节点的keepalived 和nginx

访问的是备用服务器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值