Nginx负载均衡

    在 /usr/local/nginx/conf/vhost/ 下创建一个文件,写入以下内容

tengine 负载均衡 负载均衡https_运维

加载后用curl测试可以访问设置的网站   www.qq.com

 



ssl原理

    HTTPS是一种加密的http协议,如果HTTP通信的数据包在传输的过程中被截获,我们可以破译这些数据包里面的信息,这里面会存在一些用户名、密码、手机号等敏感的信息。而使用HTTPS通信,即使数据包被截获,我们也无法破译里面的内容。所以将来会都是用HTTPS,弃用HTTP。

    HTTPS的通信过程:

  1. 浏览器发送一个HTTPS请求给服务器。
  2. 服务器要有一套数字证书,这个证书可以自己制作,也可以像组织申请。自己制作的证书要客户端通过后才能继续访问,使用手信任的公司申请的证书不会弹出提示页面,这套证书就是一堆公钥和私钥。
  3. 服务器会把公钥传输给客户端也就是浏览器。
  4. 客户端收到公钥后,会验证它是否合法有效,无效的话会有警告提醒,有效的话就会生成一串随机的字符串,并且用收到的公钥加密。
  5. 客户端把加密后的随机字符串传个服务器。
  6. 服务器收到加密的随机字符串后,先用私钥解密,获取到这一串随机字符串后,再用这串随机字符串加密传输的数据。
  7. 服务器把加密后的数据传给客户端。
  8. 客户端收到数据后,在用自己的私钥解密。


生产ssl密钥对

配置过程:

  • 用openssl命令生成私钥文件tmp.key,要设置密码。

tengine 负载均衡 负载均衡https_tengine 负载均衡_02

  • 把刚生成的tmp.key文件转换成 xiny.key,取消密码设置。

tengine 负载均衡 负载均衡https_python_03

  • 删除tmp.key

tengine 负载均衡 负载均衡https_运维_04

  • 生成证书请求文件,这个文件和key文件一起生成公钥。

tengine 负载均衡 负载均衡https_客户端_05

  • 生成CRT证书文件,也就是公钥。

tengine 负载均衡 负载均衡https_服务器_06



Nginx配置ssl

    生成ssl密钥对后就要配置Nginx。配置的文件内容:

tengine 负载均衡 负载均衡https_python_07

配置文件写好后,用 -t 检查配置是报错,这是因为Nginx编译时没有配置SSL。

tengine 负载均衡 负载均衡https_运维_08

重新编译Nginx

tengine 负载均衡 负载均衡https_python_09

tengine 负载均衡 负载均衡https_客户端_10

tengine 负载均衡 负载均衡https_服务器_11

tengine 负载均衡 负载均衡https_tengine 负载均衡_12

测试时会有警告提示,这是因为密钥是自己做的不被浏览器承认。