1、简述HTTP交互原理

1、浏览器分析输入访问的地址 域名(IP)+$uri

2、读取浏览器缓存

3、请求DNS服务器,解析域名,返回IP

4、建立TCP连接,三次握手

5、发送请求

6、接收返回请求

7、结束,四次挥手

PS: http1.0 请求一次,建立一次连接,返回一次

http1.1 建立连接后,请求多次,请求一次,返回一次次

http2.0 同步多次请求,建立连接,同步多次返回

2、实现一个Nginx热部署

Nginx回启动 master 进程 和 worker 进程,worker 进程是真正处理请求的进程,是 master 进程的子进程。

Nginx 的热部署是因为 master 进程的关系,当通知 ngnix 重读配置文件的时候,master 进程会进行语法错误的判断。如果存在语法错误的话,返回错误,不进行装载;如果配置文件没有语法错误,那么 ngnix 也不会将新的配置调整到所有 worker 中。而是,先不改变已经建立连接的 worker,等待 worker 将所有请求结束之后,将原先在旧的配置下启动的 worker 杀死,然后使用新的配置创建新的 worker。

获取旧版本、编译参数
nginx -v
安装目录
whereis nginx
which nginx
下载新版本
cd /data/nginx_new
wget http://nginx.org/download/nginx-1.20.1.tar.gz
解压编译
tar -zxvf nginx-1.20.1.tar.gz
cd nginx-1.20.1
.configure --prefix=/usr/local/nginx --user=nginx --group=nginx \
--with-http_ssl_module --with-http_flv_module \
--with-http_stub_status_module --with-http_gzip_static_module \
--with-http_realip_module --with-openssl=/opt/openssl-1.0.2r \
--with-stream --with-stream_ssl_module # 编译参数参照旧的参数
make # 只编译不安装,不执行make install,编译后的nginx文件在/objs/目录下
备份旧程序
mv /usr/sbin/nginx  /usr/sbin/nginx.old
替换新程序
cp -a /data/nginx_new/nginx-1.20.1/objs/nginx /usr/sbin/nginx
发送USR2信号给旧版本主进程号,旧版本停止接收请求,新版本接替,且老进程处理完所有请求,关闭所有连接后,停止
kill -QUIT cat /var/run/nginx/nginx.pid.oldbin
旧服务版本号存在pid目录的nginx.pid.oldbin里
ls -l  /var/run/nginx
...
nginx.pid
nginx.pid.oldbin
...
关闭旧进程
 kill -QUIT cat /var/run/nginx/nginx.pid.oldbin
查看运行版本
nginx -v

3、搭建一款Wordpress博客系统

4、简述对称加密与非对称加密

对称加密

使用相同的秘钥进行加/解密

非对称加密

a生成一对秘钥,公钥和私钥,公开公钥给其他人,保留私钥。

其他人使用公钥对数据进行加密,传送给a;

a使用私钥进行解密。

5、实现一个keepalive高可用测试

keepalived 安装配置

yum安装
yum -y install keepalived
查找位置
whereis keepalived
cd /etc/keepalived/
修改原配置
mv keepalived.conf keepalived.conf_bak
查询、安装、开机启动
systemctl status keepalived
systemctl start keepalived
systemctl enable keepalived
keepalived 配置
cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived vrrp_script chk_http_port {
script "/etc/keepalived/nginx_pid.sh" # nginx检查脚本地址
interval 3
weight -10
} global_defs {
router_id master_node # 本节点的名称,备节点配置为 backup_node
} vrrp_instance VI_1 {
state MASTER # MASTER为主实例,BACKUP 为从实例
interface eth0 # 网卡名称
virtual_router_id 51 # 主备这里要配置为同样的
mcast_src_ip 172.16.0.2 # 本机IP,主备的unicast_peer的IP正好相反
unicast_peer {
172.16.0.3 #(对端IP地址)此地址一定不能忘记,vrrp need use
}
priority 105 # 优先级,主要高于备. 主配置为100 备配置为95
advert_int 1
authentication {
auth_type PASS # 主备必须配置成同样的
auth_pass keepalived_node # 主备必须配置成同样的
} virtual_ipaddress {
172.16.0.100 # vip,主备必须配置一样
} track_script {
chk_http_port # nginx进程检测脚本
}
}
nginx监测脚本
cat /etc/keepalived/nginx_pid.sh

 #!/bin/bash
NGINX_PROCESS=`ps -C nginx --no-header | wc -l`
if [ $NGINX_PROCESS -eq 0 ];then
/usr/local/nginx/sbin/nginx # 尝试重启nginx服务
sleep 2 # 等待2秒
if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
systemctl stop keepalived #如果启动失败,停止keepalived,节点自动转到其他节点
fi
fi

week-03的更多相关文章

  1. Android游戏开发实践(1)之NDK与JNI开发03

    Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...

  2. Java多线程系列--“JUC锁”03之 公平锁(一)

    概要 本章对“公平锁”的获取锁机制进行介绍(本文的公平锁指的是互斥锁的公平锁),内容包括:基本概念ReentrantLock数据结构参考代码获取公平锁(基于JDK1.7.0_40)一. tryAcqu ...

  3. iOS系列 基础篇 03 探究应用生命周期

    iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本 ...

  4. javaSE基础03

    javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...

  5. UML大战需求分析——阅读笔记03

    读<UML大战需求分析>有感03 状态机图和活动图在样子比较相似,但状态机图是用来为对象的状态及造成状态改变的事件建模.我们大二学习UML统一建模语言状态机图模块时了解到,UML的状态机图 ...

  6. 2016-1-28 图解HTTP(03)

    6.2.5 非HTTP/1.1首部字段        不限于RFC2616中定义的47种首部字段,还有Cookie.Set-Cookie和Content-Disposition等在其他RFC中首部字段 ...

  7. ReactNative新手学习之路03真机调试

    React Native新手入门03真机调试(iOS) 从设备访问开发服务器 在启用开发服务器的情况下,你可以快速的迭代修改应用,然后在设备上查看结果.这样做的前提是你的电脑和设备必须在同一个wifi ...

  8. 【三石jQuery视频教程】03.创建垂直时间表(Timeline)

    视频地址:http://v.qq.com/page/g/i/o/g0150rvi6io.html 大家好,欢迎来到[三石jQuery视频教程],我是您的老朋友 - 三生石上. 今天,我们要通过基本的H ...

  9. javascript基础03

    javascript基础03 1. 算术运算符 后增量/后减量运算符 ++ ,-- 比较运算符 ( >, <, >=, <=, ==, !=,===,!== ) 逻辑运算符( ...

  10. service 03 iis之服务器无访问权限

    这两天在Service 03 的iis 6.0 里面配置一个aspx 的网站 ,总是遇到一个问题  401.2   无权限访问,于是去百度了一下好多的方法,基本上是关于设置匿名用户,打开IUSER用户 ...

随机推荐

  1. Day16_88_通过反射机制执行方法

    通过反射机制执行方法 * method.invoke(object,"admin","123"); * 代码 import java.lang.reflect. ...

  2. linux中mysql连接不上,服务启动失败等问题解决

    confluence问题解决方式 1)针对confluence访问页面报500与连接失败等问题 首先我们登陆部署confluence的服器 10.15.4.115 2)重启mysql服务,发现重启失败 ...

  3. 模拟退火算法(1)Python 实现

    1.模拟退火算法 模拟退火算法借鉴了统计物理学的思想,是一种简单.通用的启发式优化算法,并在理论上具有概率性全局优化性能,因而在科研和工程中得到了广泛的应用. 退火是金属从熔融状态缓慢冷却.最终达到能 ...

  4. 记一次 .NET 某教育系统API 异常崩溃分析

    一:背景 1. 讲故事 这篇文章起源于 搬砖队大佬 的精彩文章 WinDBg定位asp.net mvc项目异常崩溃源码位置 ,写的非常好,不过美中不足的是通览全文之后,总觉得有那么一点不过瘾,就是没有 ...

  5. Windows远程时无法复制文件--杀进程rdpclip.exe,然后再启动

    1.远程登陆到主机上 2.任务管理器杀进程rdpclip.exe 3.[开始],搜索rdpclip.exe,点击运行 此时重新复制文件,可以跨主机复制啦 原以为是公司网络限制,现在看来还是没那么先进嘛

  6. PAT 乙级 -- 1010 -- 一元多项式求导

    题目简述 设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出 ...

  7. Burpsuite工具的使用

    目录 Burpsuite Proxy代理模块 Repeater模块(改包,重放) Intruder模块(爆破) Target模块 position模块 Payloads模块 Options模块 一处爆 ...

  8. SMTP、POP3和IMAP邮件协议

    目录 SMTP POP IMAP 总结 DNS记录中的MX记录 今天入职第一天,公司让配置个人的内网.外网邮箱,这可把我给搞晕了,本来以前就对邮箱这块不是很了解,平时也不怎么用邮箱,顶多有个QQ邮箱而 ...

  9. x265 code tracing

    方瑞东的博客专栏 http://blog.csdn.net/frd2009041510/article/details/51182920 cabbage2008的专栏 http://blog.csdn ...

  10. spring-第三章-jdbc

    一,回顾 aop:面向切面编程,就是将一些和主业务流程没有关系的公共代码,提取封装到切面类,通过切入点规则,可以对目标方法进行功能增强;也就是可以再目标方法执行的前后添加一段额外逻辑代码; 二,Jdb ...