面試題
Nginx模塊
你以前用過哪些Nginx模塊? upstream 是Nginx負(fù)載均衡模塊
image geoip stream 這三個(gè)模塊一定要記住
? lvs四層負(fù)載均衡(面試題)
? Net Address Translator
? nat模式
? 后端服務(wù)器支持?jǐn)?shù)量10-20臺
? 使用最少兩個(gè)網(wǎng)段
? 可以說是3層負(fù)載均衡
? 流量回流時(shí)會路過負(fù)載均衡器
?
? direct route
? dr模式
? 后端服務(wù)器支持?jǐn)?shù)量100+臺
? 使用一個(gè)網(wǎng)段
? 可以說是2層負(fù)載均衡
? 流量回流時(shí)不會路過負(fù)載均衡器
?
? tunnel隧道模式
? 后端服務(wù)器支持?jǐn)?shù)量100左右
? 異地負(fù)載均衡 realserver必須使用公網(wǎng)Ip,還得需要服務(wù)器支持ip隧道協(xié)議
?
? full-nat
版本號
hostnamectl set-hostname http1 修改linux主機(jī)名,可永久生效(centos7可用)
Nginx 1.12 用穩(wěn)定版
apache
MySQL 版本 5.6 5.5 與 5.7 版本差別也很大
zabbix 3.2 版本
/etc/fstab里面只能執(zhí)行腳本
/etc/rc.local里面能執(zhí)行命令行的語句
clock -w 將時(shí)間修改保存到 BIOS
rpm -qc [服務(wù)名] 查看服務(wù)的日志地址
服務(wù)平穩(wěn)運(yùn)行怎么讓它出毛病….負(fù)載大,并發(fā)量大,內(nèi)存就高了,或者硬盤問題,dd if 命令把硬盤填滿
集群的分類
-
四七層負(fù)載均衡的區(qū)別
lvs是轉(zhuǎn)發(fā)客戶的請求給真實(shí)服務(wù)器,而Nginx七層是發(fā)送一個(gè)新的請求給真實(shí)服務(wù)器,區(qū)別在于如果真實(shí)服務(wù)器宕機(jī)了,Nginx會直接把請求發(fā)給沒有宕機(jī)的服務(wù)器,而lvs不會。 lvs是內(nèi)核上的功能,Nginx是應(yīng)用上的功能,理論是lvs更靈活速度更快,但很容易壞。 (keepalived的工作原理)
將N臺提供相同功能的服務(wù)器組成一個(gè)服務(wù)器組,這個(gè)組里面有一個(gè)master和多個(gè)backup,master上面有一個(gè)對外提供服務(wù)的vip(該服務(wù)器所在局域網(wǎng)內(nèi)其他機(jī)器的默認(rèn)路由為該vip),master會發(fā)組播(當(dāng)心跳),當(dāng)backup收不到vrrp(心跳)包時(shí)就認(rèn)為master宕掉了,這時(shí)就需要根據(jù)VRRP的優(yōu)先級來選舉一個(gè)backup當(dāng)master(優(yōu)先級是可以自定義的)
工作拍錯(cuò)步驟:
如果沒有zabbix監(jiān)控一般我會先檢查常出事故的單故障節(jié)點(diǎn),如果找不到問題所在會依次排查
網(wǎng)絡(luò)—>硬件—>操作系統(tǒng)—>進(jìn)程—>端口—>服務(wù)本身
svn、Git的區(qū)別:svn是一種集中式的代碼管理,,,,,,,,,,,
RabbitMQ :消息隊(duì)列服務(wù)器,大型網(wǎng)站架構(gòu)特性(敏捷性:有了新的服務(wù),能夠快速把服務(wù)器部署上去,讓服務(wù)器上架);電商等秒殺活動,,它還可以做集群的
服務(wù)器用的redis、memcache到底部署哪個(gè),是開發(fā)架構(gòu)師說了算,git、svn(小烏龜)也是同樣的道理;
ansible:puppet 12年特別火,saltstack 同類的產(chǎn)品要知道幾個(gè)
kickstart:配置pxe所需要的工具,cobbler就沒啥必要去研究它了
馬云:去IOC運(yùn)動
單機(jī)架構(gòu):
初創(chuàng)的公司先招
開發(fā)架構(gòu)師,開發(fā)(php)因?yàn)楸阋吮萰ava開發(fā)便宜
產(chǎn)品離上線接近一個(gè)月,開始招運(yùn)維工程師
(面試的人很可能是開發(fā)架構(gòu)師,不是清楚的了解運(yùn)維,一定要抓住這種機(jī)會)
(雖然招的是運(yùn)維人員,但是實(shí)際上干的是架構(gòu)師的活)
(服務(wù)器的選型等等一兩天搞不定,要一周才行)
(你能力越強(qiáng)干的活可能越多,在公司里要少出錯(cuò))
(/root/www/網(wǎng)站根目錄在這里,太正常了,開發(fā)遺留的原因)
lnmp 架構(gòu):
httpd (真實(shí)WEB)服務(wù)器最好2臺
需要Nginx+php 一臺
mysql 一臺
? vip (虛擬IP浮動資源)在這兩個(gè)機(jī)器上做出第三IP來
? A A 雙主 這個(gè)就是高可用做出來的第三個(gè)ip叫做VIP
數(shù)據(jù)備份 一臺
什么時(shí)候該上高可用,什么時(shí)候該上負(fù)載均衡,對現(xiàn)實(shí)情況的把握很關(guān)鍵
mycat 的主要功能是讀寫分離,它有高可用的功能,但這只是它的副業(yè)
Nginx 的 靜態(tài)頁面 并發(fā)理論值為5萬,實(shí)際工作中8K到10K
- pv 并發(fā) 最多500QPS
- 架構(gòu)
- 你們公司網(wǎng)站平時(shí)的峰值并發(fā)是多少 50左右吧CDN加速/異地緩存搞定的,如果還是不行,短期內(nèi)可以上云服務(wù),之后搭建分布式集群
- 從運(yùn)維的角度如何看待Nginx的優(yōu)化:其實(shí)就是架構(gòu)上的優(yōu)化,有沒有做負(fù)載均衡,高可用等。
- 畫一下你們上家公司的網(wǎng)站架構(gòu)
- 如何升級架構(gòu)
- 應(yīng)用分離
- 加緩存 消息隊(duì)列服務(wù)器(活動秒殺時(shí)最常用)
- 應(yīng)用分離
lvm logical volume manager 邏輯卷管理器
lvs linux virtualization server 4層負(fù)載均衡 是tcp協(xié)議
Nginx 7層負(fù)載均衡是http協(xié)議
Nginx 做負(fù)載均衡:方便、簡單、靈活。
原則:驅(qū)離單故障節(jié)點(diǎn)
日志切割分析
-
常用字段
1 遠(yuǎn)程客戶端真實(shí)IP
4 服務(wù)器時(shí)間
7 記錄請求的URL和HTTP協(xié)議
9 200、403等請求狀態(tài)
10 發(fā)送給客戶端的字節(jié)數(shù)
-
統(tǒng)計(jì)2017年9月5日 一天內(nèi)訪問最多的10個(gè)IP(ip top10)
grep '05/Sep/2017' cd.mobiletrain.org.log | awk '{ ips[$1]++ } END{for(i in ips){print i,ips[i]} } '| sort -k2 -rn | head -n10 -
統(tǒng)計(jì)2017年9月5日 每個(gè)URL訪問內(nèi)容總大?。?body_bytes_sent)
grep '05/Sep/2017' sz.mobiletrain.org.log | awk '{ urls[$7]++; size[$7]+=$10} END{for(i in urls){print urls[i],size[i],i}}'| sort -k1 -rn | head -n10 -
統(tǒng)計(jì)2017年9月5日 IP訪問狀態(tài)碼為404及出現(xiàn)次數(shù)($status)
grep '05/Sep/2017' sz.mobiletrain.org.log | awk '{if($9="404"){ip_code[$1" "$9]++}} END{for(i in ip_code){print i,ip_code[i]}}' -
統(tǒng)計(jì)前一分鐘的PV量
date=$(date -d '-1 minute' +%Y:%H:%M);awk -v date=$date '$0 ~ date {i++} END{print i}' /var/log/nginx/access.log
apached的工作模式?
介紹下特點(diǎn),說明什么情況下采取不同的工作模式?
-
apache 3種工作模式
prefork worker event
- prefork 是一種進(jìn)程,進(jìn)程去請求處理,容易消耗內(nèi)存但是穩(wěn)定。某個(gè)進(jìn)程出現(xiàn)問題不會影響其他請求,要求穩(wěn)定時(shí)候使用
- worker使用多個(gè)子進(jìn)程,每個(gè)子進(jìn)程有多個(gè)線程,使用線程去處理請求,消耗內(nèi)存小,穩(wěn)定不好,在訪問量多的時(shí)候使用
- evnent 為了解決keep--alive 保持長連接工作模式,不支持用在https
DNS采取了TCP和UDP協(xié)議,什么使用采取TCP
-
什么時(shí)候用UDP? 為什么要這么設(shè)計(jì)?
DNS有2種情況,一種是區(qū)域傳輸,一種域名解析
-
區(qū)域傳輸時(shí),
一個(gè)區(qū)主DNS從自己本機(jī)數(shù)據(jù)文件中讀取該區(qū)DNS信息,而輔助服務(wù)器則從主DNS服務(wù)器中讀取該DNS數(shù)據(jù)信息,傳輸協(xié)議TCP
-
域名解析時(shí),
首選通信協(xié)議是UDP,使用UDP傳輸,不經(jīng)過三次握手,這樣DNS服務(wù)器負(fù)載更低,響應(yīng)更快
但是當(dāng)域名解析反饋長度報(bào)文長度超過512字節(jié)時(shí)
則不能使用UDP協(xié)議進(jìn)行解析,必須使用TCP
-
NFS 是什么技術(shù)?遇到了什么問題
- 用NFS做存儲訪問比較多時(shí)候會很卡,
提升交換機(jī)上連帶寬,提升千兆或者萬兆
VMware里有幾種網(wǎng)絡(luò)模式:
有兩種模式,一種接口,NAT和hostonly(個(gè)人主機(jī)模式),橋接接口。
nginx 和apche的區(qū)別
為什么用Nginx,不用apache
Nginx工作模型,和apache的工作模型
eppoll模型,select模型