补 系统架构php
Cdn 内容分发网络 全称是Content Delivery Networkmysql
面试:Cdn 的时间算法,基于什么的算法nginx
面试题:大数据迁移怎么迁移,好比你服务器上有一个10个G的日志文件,你怎么去迁移 (01:42分左右)web
传以前 校验MD5 传以后 再校验MD5 确保传过去的数据一致面试
保证完整性 redis
根据网络传输效率,考虑怎么分片 服务器直接用scp 命令算法
传输完成后校验MD5 而后再组装sql
存储分片(某个扇区损坏不影响其余扇区) 多线程数据库
速度快,安全系数高apache
全部的文件都是二进制形式保存,取决于你以什么形式打开
利用分片传输+多线程传输的机制
1.分片,把大内存的数据分红n片
2.md5 算法校验,在传输前传输后分别校验,检查文件传输正确性、完整性后 再组装
3.多线程传,使用时间为单线程的n分之一
https://blog.csdn.net/ltx06/article/details/70162107
若是须要集成php 用lampp 集成包
Find / -name httpd 查找命令 / 根目录下的全部路径 -name 经过名字
Find / |grep httpd 模糊查找
Yum 安装
apache /etc/httpd 配置文件 为 httpd.conf 可执行文件
/usr/sbin/httpd 启动apache service httpd start|restart|stop (yum 安装会做为一个系统服务)
B,使用安装包安装
C,Lampp 自带的httpd
bin 目录全部可执行文件
/opt/lampp/etc lampp 配置文件
/opt/lampp/etc/extra 扩展的配置文件
查看Apache 版本:
/opt/lampp/bin/httpd -v 查看apache 版本
/usr/sbin/httpd -V 查看你安装的apache的版本信息等细节
配置文件 :/opt/lampp/etc/httpd.conf
/etc/httpd/conf/httpd.conf
配置文件常见修改的地方:
ServerRoot "/opt/lampp"
Listen 监听 直接提供端口 Listen 9090
三、Apache 主要目录和配置文件
命令:
配置文件 :/opt/lampp/etc/httpd.conf
/etc/httpd/conf/httpd.conf
查看进程
ps -ef ps -aux
ps -ef
Root 用户启动主进程的同时会启动一些子进程
因此 部署php项目,将项目代码放到/opt/lamp/htdocs该目录下
访问项目时,http://ip:端口号/项目名 即可访问
若是没法访问:1,查看该项目是否放至在apache默认web站点目录路径下;2,项目名是否正确 ( bbs 文件名为upload 因此须要先更名为bbs)
Php 项目都是热启动 项目不中止运行
一、拉代码
二、修改配置文件
数据库迁移的时候须要手动修改该文件
请求日志 看access_log
Apache 扩展文件
重点:Apache 工做模式
用的系统的apache /opt/lampp/etc/extra 下的httpd-mpm.conf
web 服务器Apache 目前一共有三种稳定的MPM(Multi -Processing Module,多进程处理模块)模式。它们分别是prefork ,worker和event
查看当前工做模式
/opt/lampp/bin/httpd -v 查看apache 版本
/usr/sbin/httpd -V 查看你安装的apache的版本信息等细节
中Server MPM 字段
一、Prefork 模式 单进程单线程,一对一
Prefork MPM是一个很是稳定的模式,Apache 在启动之初,会预派生fork 一些子进程,而后等待请求进来,而且总会保持一些备用的子进程。
同时派生出的每一个子进程只有一个线程,在一个时间点内只能处理一个请求。Prefork MPM在效率上要比Worker MPM高,可是在内存使用方面也会大不少。
它并不擅长处理高并发请求,在这种场景下,它会将请求放进队列中,一直等到有可用进程,请求才会被处理。
长链接:保持的时间比较长,好比视频
参数详解:
StartServers //指定服务器启动时创建的子进程数,默认为5
MinSpareServers //指定空闲子进程的最小数量,默认为5.若是当前空闲子进程数小于配置的数量则Apache会以最大每秒一个的速度建立新的子进程
MaxSpareServers //指定空闲子进程的最大数量,默认为10.若是当前有超过设置的最大进程数则会杀死多余的进程,若是设置的比MinSpareServers 小,则Apache会默认修改成MinSpareServers +1
MaxRequestWorkers //限定服务器同一时间内客户端最大接入的请求数量,默认是150.任何超过了该限制的请求都要进入等待队列,
一旦一个个链接被释放,队列中的请求才将获得服务。在Apache2.3 前又叫MaxClients
MaxConnectionsPerChild //每一个子进程的在其生命周期内容许最大的请求数量,若是请求总数已经达到这个数值,子进程将会结束;
若是设置为0,子进程将永远不会结束。若该值设置为非0值,能够防止运行PHP致使的内存泄漏(结束之后会释放内存)。
一个请求结束后会保留一些“脏数据”,链接的请求越多脏数据越多,到达必定程度后会结束该进程,释放内存。
ServerLimit 2000 //MaxRequestWorkers(MaxClients)最大是256个线程,若是须要更大就须要加上该参数了。
这个参数的最大值是2000,若是须要更大须要编译apache。生效前提:必须放在其余指令的前面
进程数与cpu 有关 不可能所有占满、
思考:那要是避免排队的状况 能够直接改 prefork的数值吗?
二、Aache工做模式-Work模式 单进程,多线程 一对多
参数详解:
StartServers //服务器启动时建立的子进程数
MaxClients //
MinSpareThreads //最小空闲线程数,这个MPM将基于整个服务器监控空闲线程数。假如服务器中的空闲线程数太少,则将会建立新的空闲线程
MaxSpareThreads //最大空闲线程数。这个MPM将基于整个服务器监控空闲线程数。假如服务器中的总的空闲线程数太多,子进程将杀死多余的空闲线程。最大
空闲线程数的取值范围是有限制的。Work 须要其大于等于MinSpareThreads 和ThreadsPerChild 的总和
ThreadsPerChild //每一个子进程创建的常驻执行线程数,子进程在启动时创建这些线程后就不会再创建新线程了
MaxRequestsPerChild //容许同时伺服的最大接入请求数量。任何超过该限制的请求都将进入等候队列
每一个进程能处理多少个请求,处理完成后则会死掉
思考:现有以下配置
<IfModule worker.c>
StartServers 4
MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25 固定为25不可变
MaxRequestsPerChild 0 每一个进程能处理多少个请求,处理完成后则会死掉 释放内存
</IfModule>
4个进程 每一个进程容许25个线程 总共100个 不符合maxsparethreads 75
则会杀掉一个进程 则表明一次性杀掉了25个线程 符合maxsparethreads
在25 ~ 75 之间 不会作任何修改
若是不知足最小的minsparethreads 25 则会建立一个进程
Work 模式不安全 一个进程死掉后子线程所有被杀掉
三、Apache工做模式-Event模式 (具体参考ppt)
Apache 工做模式切换
切换工做模式 修改文件名便可 默认是prefork
举例说明:把这个改成httpd名,工做模式变为work
用同一个配置文件,端口必定会被占用
重点:Apache 监控
1、如何获取apache监控参数
Vi /etc/httpd/conf/httpd.conf
SetHandler 加载某个模块
order 先执行deny
重启apache 项目是实时读取的,但自身配置不是,因此须要重启
浏览器输入:http://ip/server-status
Apache 优化