【LNMP】Nginx负载均衡、ssl原理、生成ssl密钥对和Nginx配置ssl

一、Nginx负载均衡


例子:先解析qq.com的IP地址,使用命令dig,安装yum install -y bind-utils,解析出来后再去设置Nginx负载均衡

【LNMP】Nginx负载均衡、ssl原理、生成ssl密钥对和Nginx配置ssl_第1张图片



再来新建一个配置文件,写入如下内容:

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

upstream来指定多个web server



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;
    }
}


 【LNMP】Nginx负载均衡、ssl原理、生成ssl密钥对和Nginx配置ssl_第2张图片


正常情况下,我们测试访问www.qq.com 是默认页



然后我们配置完后重新检测和重新加载一下再来测试下:



结果变成了qq.com主页,反馈回来的是主页的源码,这个就是Nginx的负载均衡:

【LNMP】Nginx负载均衡、ssl原理、生成ssl密钥对和Nginx配置ssl_第3张图片


二、ssl原理


【LNMP】Nginx负载均衡、ssl原理、生成ssl密钥对和Nginx配置ssl_第4张图片



三、生成ssl密钥对

需要先安装openssl工具,不知道包名的话,使用命令查看:rpm -qf  `which openssl  `



进入目录:

 cd /usr/local/nginx/conf


生成私钥,key文件为私钥:

 openssl genrsa -des3 -out tmp.key 2048

生成过程中要设置密码:

【LNMP】Nginx负载均衡、ssl原理、生成ssl密钥对和Nginx配置ssl_第5张图片


因为设置了密码太麻烦,所以要转换key,取消密码:
 openssl rsa -in tmp.key -out amo.key  
 rm -f tmp.key




生成证书请求文件,需要拿这个文件和私钥一起生产公钥文件:
 openssl req -new -key amo.key -out amo.csr

信息随意填写如下:

【LNMP】Nginx负载均衡、ssl原理、生成ssl密钥对和Nginx配置ssl_第6张图片


生成公钥:

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

 这里的amo.crt为公钥

【LNMP】Nginx负载均衡、ssl原理、生成ssl密钥对和Nginx配置ssl_第7张图片



四、Nginx配置ssl

生成一个新的配置文件,加入如下内容:

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


server
{
    listen 443;
    server_name amo.com;
    index index.html index.php;
    root /data/wwwroot/amo.com;
    ssl on;
    ssl_certificate amolinux.crt;
    ssl_certificate_key amo.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
}

【LNMP】Nginx负载均衡、ssl原理、生成ssl密钥对和Nginx配置ssl_第8张图片



 再检测并重新加载 :

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





重新检测OK后再来重启一下nginx:

/etc/init.d/nginx restart



监听端口,多了一个443,正常:

【LNMP】Nginx负载均衡、ssl原理、生成ssl密钥对和Nginx配置ssl_第9张图片



创建目录: mkdir /data/wwwroot/amo.com

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



 vim /etc/hosts 编辑hosts,增加 : 127.0.0.1 amo.com



再来测试一下正常了:

 curl https://amo.com/


(虽然报错,主要是我们自己设置的证书,所以不被认可,但是已经是成功了)

【LNMP】Nginx负载均衡、ssl原理、生成ssl密钥对和Nginx配置ssl_第10张图片


我们也可以通过本地windows机器来测试一下:

先在hosts里面添加上 amo.com



然后再打开浏览器来访问 https://amo.com ,测试也正常:

【LNMP】Nginx负载均衡、ssl原理、生成ssl密钥对和Nginx配置ssl_第11张图片


 扩展 
针对请求的uri来代理 :
http://ask.apelearn.com/question/1049  

根据访问的目录来区分后端的:
web http://ask.apelearn.com/question/920 

nginx长连接  :
http://www.apelearn.com/bbs/thread-6545-1-1.html 

nginx算法分析  :
http://blog.sina.com.cn/s/blog_72995dcc01016msi.html 

你可能感兴趣的:(【LNMP】Nginx负载均衡、ssl原理、生成ssl密钥对和Nginx配置ssl)