Nginx负载均衡
在 /usr/local/nginx/conf/vhost/ 下创建一个文件,写入以下内容
加载后用curl测试可以访问设置的网站 www.qq.com
ssl原理
HTTPS是一种加密的http协议,如果HTTP通信的数据包在传输的过程中被截获,我们可以破译这些数据包里面的信息,这里面会存在一些用户名、密码、手机号等敏感的信息。而使用HTTPS通信,即使数据包被截获,我们也无法破译里面的内容。所以将来会都是用HTTPS,弃用HTTP。
HTTPS的通信过程:
- 浏览器发送一个HTTPS请求给服务器。
- 服务器要有一套数字证书,这个证书可以自己制作,也可以像组织申请。自己制作的证书要客户端通过后才能继续访问,使用手信任的公司申请的证书不会弹出提示页面,这套证书就是一堆公钥和私钥。
- 服务器会把公钥传输给客户端也就是浏览器。
- 客户端收到公钥后,会验证它是否合法有效,无效的话会有警告提醒,有效的话就会生成一串随机的字符串,并且用收到的公钥加密。
- 客户端把加密后的随机字符串传个服务器。
- 服务器收到加密的随机字符串后,先用私钥解密,获取到这一串随机字符串后,再用这串随机字符串加密传输的数据。
- 服务器把加密后的数据传给客户端。
- 客户端收到数据后,在用自己的私钥解密。
生产ssl密钥对
配置过程:
- 用openssl命令生成私钥文件tmp.key,要设置密码。
- 把刚生成的tmp.key文件转换成 xiny.key,取消密码设置。
- 删除tmp.key
- 生成证书请求文件,这个文件和key文件一起生成公钥。
- 生成CRT证书文件,也就是公钥。
Nginx配置ssl
生成ssl密钥对后就要配置Nginx。配置的文件内容:
配置文件写好后,用 -t 检查配置是报错,这是因为Nginx编译时没有配置SSL。
重新编译Nginx
测试时会有警告提示,这是因为密钥是自己做的不被浏览器承认。