您的位置:首页 > 运维架构 > Nginx

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

2018-01-08 17:27 1191 查看
一、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 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐