Nginx高可用
1.要启动两个Linux虚拟机(Nginx和keepalived)
2.修改keepalived文件
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
//ip地址
smtp_ server 192.168.223.134
smtp_connect_timeout 30
//ip地址
router_id 192.168.223.134
}
vrrp_script chk_http_ port {
//需要添加的配置文件的路径
script "/usr/local/src/nginx_check.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
//此虚拟主机的位置BACKUP是备用 MASTER是使用的主机
state BACKUP
interface ens33
virtual_router_id 51
//主机的权重等级
priority 90
advert_int 1
authentication {
auth type PASS
auth pass 1111
}
virtual_ipaddress {
//虚拟ip地址
192.168.223.50
}
}
添加nginx_check.sh
用于查看NGINX状态
#!/bin/bash
# 检查是否开启nginx
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
# 开启nginx
/usr/nginx/sbin/nginx
sleep 2
# 开启nginx失败 则执行关闭keepalived
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
待文件配置完成之后,再启动Nginx和keepalived,不然虚拟ip是不能访问的.
反向代理
反向代理: 客户访问服务器,使用反向代理的话,==客户不知道访问的是哪个服务器。==代理的是服务器方。
像一些大的网站,由于访问人数很多,就需要多台服务器来解决人数多的问题.客户端发来请求,先由反向代理服务器,然后按一定的规则分发到明确的服务器,而客户端不知道是哪台服务器。常常用nginx来作反向代理。
正向代理: 代理的是客户端,对应服务器来说不知道客户的真实地址。,它只知道来自哪个代理服务器,所以正向代理可以屏蔽或隐藏客户端的信息;比如翻墙软件。
负载均衡
默认负载均衡的策略为轮询策略。
- 轮询
- 权重 根据你应用服务的配置不同时可以使用该策略。
- ip_hash 根据访问者的IP进行hash换算,不同的hash分配nginx不同的应用服务器
- url_hash(第三方) 必须按照相关的插件才能使用。
动静分离
将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法,进而提升整个服务访问性能和可维护性。
1. 把静态资源放入nginx的安装目录
2. 修改nginx的配置文件
3重新加载配置文件
./nginx -s reload