Linux 运维 11月29日 笔记 12.17-12.20

本文详细介绍了Nginx负载均衡配置,包括如何通过upstream指令实现服务器集群的负载分发,以及如何配置Nginx支持SSL加密,确保数据传输的安全。同时,深入解析了SSL的工作原理,从公钥和私钥的生成到HTTPS请求的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、Nginx负载均衡
二、ssl原理
三、生成ssl密钥对
四、Nginx配置ssl
扩展
针对请求的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

 

Nginx负载均衡

vim /usr/local/nginx/conf/vhost/load.conf // 写入如下内容

upstream qq_com 

{

    ip_hash;                                       同一用户始终在同一个机器上

    server 111.161.64.10:80;

    server 111.161.64.48: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;

    }

}

dig命令 解析Ip 

yum install -y bind-utils

dig qq.com

6d54ef130dfcd9f4d6a3693397de14630e1.jpg

upstream来指定多个web server

测试:

curl -x127.0.0.1:80 www.qq.com

d01f2d70f07db02a18fef3358148a0181af.jpg

-t && -reload

再次curl -x127.0.0.1:80 www.qq.com

出现qq网站的源代码

nginx不支持代理https :443不支持

 

ssl原理

浏览器发送一个https的请求给服务器;

服务器要有一套数字证书,可以自己制作(后面的操作就是阿铭自己制作的证书),也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出>提示页面,这套证书其实就是一对公钥和私钥;

服务器会把公钥传输给客户端;

客户端(浏览器)收到公钥后,会验证其是否合法有效,无效会有警告提醒,有效则会生成一串随机数,并用收到的公钥加密;

客户端把加密后的随机字符串传输给服务器;

服务器收到加密随机字符串后,先用私钥解密(公钥加密,私钥解密),获取到这一串随机数后,再用这串随机字符串加密传输的数据(该加密为对称加密,所谓对称加密,就是将数据和私钥也就是这个随机字符串>通过某种算法混合在一起,这样除非知道私钥,否则无法获取数据内容);

服务器把加密后的数据传输给客户端;

客户端收到数据后,再用自己的私钥也就是那个随机字符串解密;

0856a5b92f7b7731d54ca6b4deff797fbf7.jpg

 

生成ssl密钥对

查看openssf用的哪个包安装

rpm -qf `which openssl`      使用··

33d27d1a39fd38498f804df6acb509c2f3f.jpg

cd /usr/local/nginx/conf

openssl genrsa -des3 -out tmp.key 2048//key文件为私钥

openssl rsa -in tmp.key -out jerry.key //转换key,取消密码  -in 指定哪个密钥,-out 输出

rm -f tmp.key

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

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

这里的aminglinux.crt为公钥

846280d1926fbf6950027d288c13b51475a.jpg

crt是公钥

key是私钥

 

Nginx配置ssl

vim /usr/local/nginx/conf/vhost/ssl.conf//加入如下内容

server

{

    listen 443;

    server_name jerry.com;

    index index.html index.php;

    root /data/wwwroot/jerry.com;

    ssl on;

    ssl_certificate jerry.crt;

    ssl_certificate_key jerry.key;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

}

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

cd /usr/local/src/nginx-1.12.1/

./configure --help |grep -i ssl

eca19c1abf382fc20dfe986a50fe7e04f08.jpg

./configure --prefix=/usr/local/nginx --with-http_ssl_module

make && make install

/usr/local/nginx/sbin/nginx -V

357109727069d95de73769300661d886d05.jpg

mkdir /data/wwwroot/aming.com

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

编辑hosts,增加127.0.0.1 aming.com

curl https://aming.com/

netstat -lntp

137d929bcf3f548404d47cff93e94f87a9d.jpg

/etc/init.d/nginx restart 重启

netstat -lntp

cd6bb502375de1a6b57e77d84f0f157d61b.jpg

出现443

修改Hosts

vi /etc/hosts

215ceb378774609b91ee684067ee9b23869.jpg

加入 jerry.com

curl https://jerry.com

cd6bb502375de1a6b57e77d84f0f157d61b.jpg

加Windows Hosts

浏览器访问https://jerry.com

如还不能访问

查看防火墙

iptables -F

685c350df13dde6e86ab574c7591f7264d5.jpg

 

b44e62e4126b15cb898e2852828b528a63a.jpg

 

去沃通买ssl证书

转载于:https://my.oschina.net/u/3959701/blog/2963426

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值