6月12日任务

12.17 Nginx负载均衡
12.18 ssl原理
12.19 生成ssl密钥对

12.20 Nginx配置ssl

Nginx负载均衡

安装dig(yum install -y bind-utils)dig qq.com如下图



解析到2个IP上,可以通过上述2个IP做负载均衡

重新编辑一个load.conf文件(/usr/local/nginx/conf/vhost/下)


ip_hash的目的是让同一个用户始终保持在同一个机器上(如用户在访问ask.apelearn.com时,假设该网站有2个后端服务器A 和B可用, 如果不使用ip_hash则在访问过程中,刷新后未登录,因为请求从A到B了),如果端口是80则:80可以省略

测试:通常本机访问qq.com会访问默认虚拟主机,默认页


重新加载后变成qq.com的主页(源码)


Nginx不支持代理https(:443),可以用Nginx访问代理服务器的443端口,代理服务器访问后端web服务器的80端口

ssl原理

https相对于http多了一个加密过程

加密解密实现流程:


其中crt public是用来加密的 crt private 用来解密的

产生SSL密钥对


操作步骤如下图:


生成私钥 openssl genrsa -des3 -out tmp.key 2048


私钥去密码化:openssl rsa -in tmp.key -out liutlinux.key


rm -f tmp.key


用私钥请求生成.csr证书文件:openssl req -new -key liutlinux.key -out liutlinux.csr


通过私钥和请求证书生成.crt公钥文件:openssl x509 -req -days 365 -in liutlinux.csr -signkey liutlinux.key -out liutlinux.crt


如下图


 Nginx配置SSL


在vhost目录下添加 ssl.conf并加入如下配置


创建网站根目录  mkdir /data/wwwroot/liut.com


-t检查语法发现错误,因为nginx在安装时没有添加ssl模块


查找需要安装的ssl模块  ./configure --help |grep -i ssl,加上后和nginx一起重新编译


make & make install

再次查看版本信息和-t检查语法错误,发现OK

重启nginx服务,查看监听端口多了443


测试:

①在Linux上: cd /data/wwwroot/liut.com/创建测试文件 vim index.html输入如下内容


直接访问报错400,可以编辑/etc/hosts访问



由于是自己颁发的证书,不被浏览器认可,所以出现 marked as not trusted by the user

②在windows上测试:找到windows上的Hosts文件C:\Windows\System32\drivers\etc\hosts,加入如下内容,保存


测试结果如下:

iptables -nvL发现有防火墙,简单的方法就是iptables -F,如果想只过滤443端口的则需要添加一条443端口放行的规则




测试成功

扩展:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值