【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来代理 :
根据访问的目录来区分后端的:
nginx长连接 :
nginx算法分析 :