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

一、Nginx负载均衡


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




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

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


 


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



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



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



二、ssl原理





三、生成ssl密钥对

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



进入目录:

 cd /usr/local/nginx/conf


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

 openssl genrsa -des3 -out tmp.key 2048

生成过程中要设置密码:



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




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

信息随意填写如下:



生成公钥:

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

 这里的amo.crt为公钥





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




 再检测并重新加载 :

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





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

/etc/init.d/nginx restart



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




创建目录: 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/


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



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

先在hosts里面添加上 amo.com



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



 扩展 
针对请求的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 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭