zoukankan      html  css  js  c++  java
  • Linux centosVMware Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl

    一、Nginx负载均衡

    vim /usr/local/nginx/conf/vhost/load.conf // 写入如下内容

    upstream qq_com

    {

    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://qq_com;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    }

    upstream来指定多个web server

    先装个包dig

    dig qq.com会返回两个ip

     dig ask.apelearn.com

    ping qq.com也会查看到一个ip

     配置脚本

    vim /usr/local/nginx/conf/vhost/load.conf 

    测试

    二、ssl原理

    浏览器发送一个https的请求给服务器;

    服务器要有一套数字证书,可以自己制作(后面的操作就是阿铭自己制作的证书),也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出>提示页面,这套证书其实就是一对公钥和私钥;

    服务器会把公钥传输给客户端; 客户端(浏览器)收到公钥后,会验证其是否合法有效,无效会有警告提醒,有效则会生成一串随机数,并用收到的公钥加密;

    客户端把加密后的随机字符串传输给服务器;

    服务器收到加密随机字符串后,先用私钥解密(公钥加密,私钥解密),获取到这一串随机数后,再用这串随机字符串加密传输的数据(该加密为对称加密,所谓对称加密,就是将数据和私钥也就是这个随机字符串>通过某种算法混合在一起,这样除非知道私钥,否则无法获取数据内容);

    服务器把加密后的数据传输给客户端;

    客户端收到数据后,再用自己的私钥也就是那个随机字符串解密;

    三、生成ssl密钥对

    cd /usr/local/nginx/conf

    需要用到包

    openssl genrsa -des3 -out tmp.key 2048//key文件为私钥

    openssl rsa -in tmp.key -out davery.key //转换key,取消密码

    rm -f tmp.key

    openssl req -new -key davery.key -out davery.csr//生成证书请求文件,需要拿这个文件和私钥一起生产公钥文件,自己可以按照需求填写

    openssl x509 -req -days 365 -in davery.csr -signkey davery.key -out davery.crt

    这里的davery.crt为公钥

    四、Nginx配置ssl

    vim /usr/local/nginx/conf/vhost/ssl.conf//加入如下内容

    mkdir /data/wwwroot/davery.com

    server

    {

    listen 443;

    server_name davery.com;

    index index.html index.php;

    root /data/wwwroot/davery.com;

    ssl on;

    ssl_certificate davery.crt;

    ssl_certificate_key davery.key;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    }

    -t && -s reload //若报错unknown directive “ssl” ,需要重新编译nginx,加上--with-http_ssl_module

    make && make install

    查看之后多了

    configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module

    重启ok

    查看监听端口多了443端口

     mkdir /data/wwwroot/davery.com

    测试使用curl会报错400

    直接访问需要加入到

    vi /etc/hosts

    curl https://davery.com/ 报错证书标记不合法

    之后编辑电脑hosts加上本机ip

    成功之后显示

    echo “ssl test page.”>/data/wwwroot/davery.com/index.html

    编辑hosts,增加127.0.0.1 davery.com

    curl https://davery.com/

  • 相关阅读:
    微信二维码 场景二维码 用于推送事件,关注等 注册用户 ,经过测试
    简单的 Helper 封装 -- CookieHelper
    简单的 Helper 封装 -- SecurityHelper 安全助手:封装加密算法(MD5、SHA、HMAC、DES、RSA)
    Java反射机制
    Windows Azure Web Site (13) Azure Web Site备份
    Windows Azure Virtual Machine (1) IaaS用户手册
    Windows Azure Web Site (1) 用户手册
    Windows Azure Web Site (12) Azure Web Site配置文件
    Windows Azure Web Site (11) 使用源代码管理器管理Azure Web Site
    Windows Azure Web Site (10) Web Site测试环境
  • 原文地址:https://www.cnblogs.com/davery/p/8976342.html
Copyright © 2011-2022 走看看