Nginx基础(5)—— https及高可用

一、https协议

1.1 背景

在前面的演示中,我们使用的是http协议,而在正式环境,我们通常使用https协议,来保证数据在网络中的安全

这里涉及公、私钥的概念

服务的提供方,这里指nginx,提供一套对应的公钥和私钥

服务的使用方,这里指浏览器,在第一次访问nginx时,需要下载证书,证书中包含公钥。

这样当浏览器访问服务器时,会将请求数据使用公钥进行加密,nginx服务器使用对应的私钥进行解密

1.2 环境要求

先查看nginx版本信息,命令:nginx -V

有--with-http_ssl_module,表示安装了https模块。否则需要重新安装。

1.3 nginx配置

证书和私钥是需要购买的,但是我们自己也可以通过以下命令,生成证书和私钥,用来测试

# 1、创建服务器私钥,命令会让你输入一个密码,创建证书时需要
 openssl genrsa -des3 -out server.key 1024
 
# 2、创建签名请求的证书(CSR),需要输入你设置的密码,并设置一些信息,不重要
 openssl req -new -key server.key -out server.csr 

# 3、在加载SSL支持的Nginx并使用上述私钥时除去必须的口令: 
openssl rsa -in server.key -out server_nopass.key 

# 4、最后标记证书使用上述私钥和CSR:
 openssl x509 -req -days 365 -in server.csr -signkey server_nopass.key -out server.crt

然后在nginx的配置文件server段加入

#证书
ssl_certificate      /etc/nginx/conf.d/server.crt;
#私钥
ssl_certificate_key  /etc/nginx/conf.d/server_nopass.key;

二、keepAlied

2.1 背景

之前我们介绍过nginx可以对浏览器的请求进行负载均衡,把请求发给不同的tomcat,以防止tomcat承受不了过多的请求

也就是说,如果只是其中的一台tomcat挂掉,不会影响业务继续

但同样存在这样情况,nginx服务器挂了,这下整个服务就不可用了

2.2 解决方式

keepalived通过lvs思想来解决,也就是提供一个虚拟网关vip

也就是由2台nginx服务器,虚拟出来一台虚拟网关vip,此vip由两台nginx服务器共同协商生成

当有一台nginx服务器宕机时,另一台nginx服务器一样能维持vip。这保证了,只要两台nginx服务器不同时宕机,vip就存在

2.3 keepalived安装

下载keepalived安装包

./configure --prefix=/data/program/keepalived --sysconf=/etc   ##因为keepalive启动时候会默认读取/etc/keepalived/keepalived.conf

make && make install

注:keepalived在docker中无法正常使用

2.4 配置

打开/etc/keepalived/keepalived.conf,只需要配置如下一段。(其它是多余配置,删除)

重启keepalived

然后再配置另一台nginx服务器,配置文件有两个地方不同

state BACKUP            # 指定keepalived的角色,MASTER为主,BACKUP为备
priority 100            # 优先级,数值越大,处理请求的优先级越高。备用数字小些

这样,当主nginx挂掉后,keepalived就会启动备nginx

此时,虽然服务不会停止,但是主nginx还是挂掉的状态,我们可以通过脚本,自动重启挂掉的nginx

#!/bin/bash
A=`ps -C nginx --no-header |wc -l`        
if [ $A -eq 0 ];then                            
      /usr/local/nginx/sbin/nginx                #重启nginx
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重启失败,则停掉keepalived服务,进行VIP转移
              killall keepalived    #杀掉,vip就漫游到另一台机器                
      fi
fi

在配置文件中加入以下两处配置

重启keepalived,此时当nginx服务器挂掉后,通过脚本监测后重启

总之:keepalived主备之间相互发送心跳检测,如果有一个死掉,另一个活的得不到回应了,此时启动vip到自己机器上。如果相互之间是通的,比较priority的优先级,值大的机器绑vip

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值