12-2 12 Nginx 负载均衡 ssl

12.17 Nginx负载均衡php

12.18 ssl原理html

12.19 生成ssl密钥对nginx

12.20 Nginx配置sslweb

扩展vim

  1. 针对请求的uri来代理 http://ask.apelearn.com/question/1049
  2. 根据访问的目录来区分后端的web http://ask.apelearn.com/question/920

12.17 Nginx负载均衡

有时候一个域名能够经过多个IP解析,负载均衡就是代理对域名访问请求自动选择IP后端

yum install -y bin-utils     //安装dig命令
dig qq.com  //挖掘qq.com域名的IP地址
vim /usr/local/nginx/conf/vhost/load.conf // 定义代理
···
#以QQ举例,由于www.qq.com域名有多个IP
#ip_hash让同一个来源的访问始终走向一个ip,从而保留用户信息
upstream qqxx   
{
    ip_hash;
    server 61.135.157.156:80;    
    server 125.39.240.113:80;
}
server
{
    listen 80;
    server_name www.qq.com;
    location /
    {
        proxy_pass      http://qqxx;   
        proxy_set_header Host   $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
···
curl -x127.0.0.1:80 www.qq.com    //加载以前访问默认虚拟主机
[ctrl-r] -t -s reload
curl -x127.0.0.1:80 www.qq.com    //加载后访问网页源码

12.18 ssl原理

理解:A是个人电脑 B是网站,公钥,能够理解为锁盒,私钥理解为钥匙浏览器

  1. A访问B ——被黑客截到没有用,黑客想知道A的信息,还没开始传
  2. B给A一个锁盒1号,这个锁盒能够当盒子用,B本身有钥匙1号——中间黑客截到仍是没用,有锁盒1没有钥匙打不开
  3. A获得锁盒1号,本身生成一套锁盒2号和钥匙2号(对称加密),锁盒2号装进锁盒1号,还给B——中间被截到的仍是打不开的锁盒1,
  4. B用钥匙1号打开锁盒1号,获得锁盒2号,开始用锁盒2号传输数据给A——黑客:“仍是锁盒。。”
  5. A之后接收就用钥匙2号解开B发回来的数据,并用1号锁盒装数据发给B
  • 若是第二步,B给A的锁盒若是被篡改,A的浏览器会报警,锁盒子不对。(公证须要付费)

12.19 生产ssl密钥对

步骤:负载均衡

  1. 生成私钥.key
  2. 私钥去密码
  3. 私钥生成证书申请文件.csr
  4. 私钥.key加.csr生成公钥.crt

测试curl

cd /usr/local/nginx/conf	
rpm -qf `which openssl` 
openssl genrsa -des3 -out tmp.key 2048    //key文件为私钥
openssl rsa -in tmp.key -out axiang.key     //转换key,取消密码
rm -f tmp.key 
openssl req -new -key axiang.key -out axiang.csr    //生成证书请求文件,须要拿这个文件和私钥一块儿生产公钥文件
openssl x509 -req -days 365 -in axiang.csr -signkey axiang.key -out axiang.crt     //axiang.crt为公钥
ls axiang*

12.20 Nginx配置ssl

vim /usr/local/nginx/conf/vhost/ssl.conf//加入以下内容
...
server
{
    listen 443;
    server_name axiang.com;
    index index.html index.php;
    root /data/wwwroot/axiang.com;
    ssl on;
    ssl_certificate axiang.crt;
    ssl_certificate_key axiang.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}

-t && -s reload //若报错unknown directive “ssl” ,须要从新编译nginx,加上--with-http_ssl_module
mkdir /data/wwwroot/axiang.com 
echo "This is ssl" > /data/wwwroot/axiang.com/index.html
fg 
/usr/local/nginx/sbin/nginx -V  //查看须要编译啥
./configure --help |grep -i ssl  //查看有那些编译选项
./configure --prefix=/usr/local/nginx --with-http_ssl_module 
make 
make install 
/usr/local/nginx/sbin/nginx -t 
/etc/init.d/nginx restart  
netstat -lntp 
curl -x127.0.0.1:443 https://axiang.com  //这种方式不支持,须要hosts指向
vi /etc/hosts

curl https://axiang.com/ 
iptables -F  // win7浏览器测试
curl https://axiang.com/ 效果

win7浏览器访问https://axiang.com/,也要加hosts 192.168.83.138 axiang.com测试

相关文章
相关标签/搜索