12-2 12 Nginx 负载均衡 ssl

12.17 Nginx负载均衡

12.18 ssl原理

12.19 生成ssl密钥对

12.20 Nginx配置ssl

扩展

  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

测试

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

转载于:https://my.oschina.net/u/3579690/blog/1558957

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值