00.课程介绍部分
1.高可用服务双主设置
2.网站安全访问概念介绍
3.实现HTTPS访问部署过程
4.实现HTTP向HTTPS跳转访问过程
5.实现wordpress动态网站HTTPS访问
6.实现网站伪静态配置
综合架构完成需求说明
1.综合架构需要完成项目
完成内容:
基础部分:
扩展部分(简单)
扩展部分(复杂)
2.综合架构完成时间规划
第一天: rsync 全网备份 nfs 实时同步 文档编写
第二天: ansible web lb keepalived 文档编写
第三天: LNMP www bbs blog https 文档编写
第四天~第七天: 简单扩展项
第八天~第十天: 复杂扩展项
第十一天: 检查架构服务是否正确 一键化剧本
第十二天: 将文档汇总编辑
3.如何进行复述架构完成情况
1) 自我介绍
2) 架构部署规划
3) 详细说明 扩展技巧 新的 部署流程
4) 分享架构异常问题
5) 特殊知识点分享 *
6) 感恩
7) 排错
01.课程知识回顾
1.高可用服务:避免单点故障
2.实现方式:利用keepalived软件实现
利用keepalived软件实现管理lvs服务
利用keepalived1软件实现后端节点健康检查功能
利用keepalived软件实现冗余功能
3.高可用的原理:vrrp协议
利用vrrp协议实现主备通讯
利用vrrp协议实现主备竞争
利用vrrp协议实现组播发送
vrrp协议传输时使用明文
4.高可用服务的部署过程
第一步:web服务部署
第二步:部署负载均衡服务
第三步:部署keepalived
5.高可用服务常见问题
1.脑裂问题:高可用集群中,多台主机出现了vip地址
解决:编写监控脚本
2.keepalived的存在价值,nginx停了后keepalived也要听
解决:编辑监控脚本
02.实现双主配置
第一步:编写keepalived配置文件
vim /etc/keepalived/keepalived.conf
lb01:
vrrp_instance oldboy {
state MASTER
interface eth0
virtual_router_id 63
priority 110
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3
}
}
vrrp_instance oldgirl {
state BACKUP
interface eth0
virtual_router_id 64
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.4
}
}
lb02:
vrrp_instance oldboy {
state BACKUP
interface eth0
virtual_router_id 63
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3
}
}
vrrp_instance oldgirl {
state MASTER
interface eth0
virtual_router_id 64
priority 110
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.4
}
}
第二步:修改负载均衡服务配置 lb01 lb02
vim /etc/nginx/nginx.conf
方式一:
server {
listen 10.0.0.3:80;
server_name www.oldboy.com;
location / {
proxy_pass http://oldboy;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
server {
listen 10.0.0.4:80;
server_name bbs.oldboy.com;
location / {
proxy_pass http://oldboy;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
方式二:
server {
listen 10.0.0.3:80;
listen 10.0.0.4:80;
server_name localhost;
location / {
proxy_pass http://oldboy;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
03.网站安全访问概念介绍 HTTP(secure)
1.数据的机密性 对称加密算法 私钥和公钥 保护好算法信息 发送方(私钥/公钥) --- 接收方(公钥/私钥)
2.数据的完整性 对称加密算法 私钥和公钥 保护好特征码
3.身份认证问题 非对称加密算法 私钥在服务器上保留好 公钥进行分发
公钥 === 证书
CA证书颁发机构
04.如何实现HTTPS安全访问网站
第一步:创建私钥和公钥(证书)
cd /etc/nginx
openssl genrsa -idea -out server.key 2048
genrsa ---创建什么类型私钥
idea ---需要给私钥文件设置密码
out ---创建生成一个私钥文件
2048 ---加密位数
openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
req ---创建一个证书文件
days ---证书有效期(天)
x509 ---证书文件格式
sha256 ---指定生成证书算法
nodes ---去除私钥的密码生成证书
keyout ---指定加载私钥文件
第二步:在nginx程序中,编写配置文件开启HTTPS功能,加载私钥和公钥信息
vim /etc/nginx/conf.d/www.conf 中添加
ssl_certificate server.crt;
ssl_certificate_key server.key;
HTTPS端口号不是80,listen需要改为443 ssl;
listen 443 ssl;
第三步:进行HTTP访问跳转HTTPS功能配置
vim /etc/nginx/conf.d/www.conf 中添加
server {
listen 80;
server_name www.oldboy.com;
rewrite ^/(.*)$ https://$host/$1 redirect;
}
第四步:检查配置文件 (全)
cat /etc/nginx/conf.d/www
server {
listen 80;
server_name www.oldboy.com;
rewrite ^/(.*)$ https://$host/$1 redirect;
}
server {
listen 443 ssl;
server_name www.oldboy.com www.jd.com;
root /html/www;
index index.html;
ssl_certificate server.crt;
ssl_certificate_key server.key;
}
05.利用负载均衡实现HTTPS访问过程
方式一:全网服务器都配置证书和私钥信息
用户客户端访问 --- lb01 --- web节点
www.oldboy.com http://www.oldboy.com
跳转https://www.oldboy.com --- listen 443 ssl
第一步:编辑lb负载均衡配置文件
upstream oldboy {
server 10.0.0.7:443;
server 10.0.0.8:443;
server 10.0.0.9:443;
}
server {
listen 80;
server_name localhost;
rewrite ^/(.*)$ https://$host/$1 redirect;
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate server.crt;
ssl_certificate_key server.key;
location / {
proxy_pass https://oldboy;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
第二步:web节点配置
server {
listen 443 ssl;
server_name www.oldboy.com www.jd.com;
root /html/www;
index index.html;
ssl_certificate server.crt;
ssl_certificate_key server.key;
}
方式二:负载均衡服务器配置证书和私钥信息
用户客户端访问 --- lb01 --- web节点
www.oldboy.com http://www.oldboy.com
跳转https://www.oldboy.com --- listen 80
第一步:负载均衡配置信息
upstream oldboy {
server 10.0.0.7:443;
server 10.0.0.8:443;
server 10.0.0.9:443;
}
server {
listen 80;
server_name localhost;
rewrite ^/(.*)$ https://$host/$1 redirect;
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate server.crt;
ssl_certificate_key server.key;
location / {
proxy_pass http://oldboy;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
第二步:web节点配置信息
server {
listen 80;
server_name www.oldboy.com www.jd.com;
root /html/www;
index index.html;
}
06.利用HTTPS访问动态页面
第一步:修改配置文件信息
修改负载均衡配置文件 vim /etc/nginx/nginx.conf
upstream oldboy {
server 10.0.0.7:443;
server 10.0.0.8:443;
server 10.0.0.9:80;
}
server {
listen 80;
server_name localhost;
rewrite ^/(.*)$ https://$host/$1 redirect;
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate server.crt;
ssl_certificate_key server.key;
location / {
proxy_pass https://oldboy;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
web服务器配置过程
server {
listen 443 ssl;
server_name blog.oldboy.com blog.oldgirl.com;
ssl_certificate server.crt;
ssl_certificate_key server.key;
location / {
root /html/blog;
index index.php index.html;
}
location ~ \.php$ {
root /html/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on;
include fastcgi_params;
}
}
第二步:修改wordpress后台信息
修改为https://blog.oldboy.com
第三步:重启nginx程序