web-nginx
- 介绍一下nginx
- 谈一谈IO的两个过程
- 谈一谈IO模型
- 谈一谈静态网站的访问流程
- 说用常见的五种方法:get、head、put、post、delete(举个攻击的例子)
- 说出常见的响应码:200、301(永久)、302、403、404、502(网关不可用)
- 默写出nginx配置文件的格式(全局配置段、事情驱动模块、http模块、http模块又包括多个server,每个server里面可以有多个location)
- server如何区分(IP/端口/域名)
- server和localtion各自代表什么意思?详细解释一下,server代表一个虚拟主机、location用户指明用户请求的url所对应的本地文件系统上的文档所在目录路径
- 匹配优先级(=、、*、^~、不带符号长匹配,不带符号的短匹配)
- root的真正含义,表示localtion之后的第一个根,alias与之相反
- 安全相关的配置(说三个)
- 优化相关的配置(说五个):keepalived、gzip、send_timeout、open_file_cache、client_body_buffer_size、
- 常用的nginx模块(至少写出五个):ssl、rewrite、gzip、valid_referers
- 如何防盗链?通过valid_referers设置url合法值,对于不合法值跳转到错误界面。
- 如何将网站搞成https?
- 如果将80和443都开启
- web应用通过什么协议与tomcat或php进行联动?过程是什么的?
- 502的原因:(后端tomcat或php没有正常启动、worker进程数不够、fastcig-buffer不足)
proxy-nginx
lvs、nginx、haproty这三者反向代理区别在何处?
nginx用的代理最常用两个模块是什么名字?proxy_pass,upstream
web集群日志如果收到的全都是代理发送的数据包,如果解决这个问题?x-forward-for模块,
proxy_pass最后加上/与不加/有什么区别?
向后代理时最常用到三个模块:proxy_set_header、x-forward-for、proxy_next_upsteam error
区分终端:通过user-agent可区分终端 。
tomcat
-
jdk的全称是java工具包,这个工具包里面包括了jvm,也就是java虚拟机。
-
java体系结构:代码--编译成类二进制(java class)--然后通过jvm执行
-
tomcat也是java写的,所以安装tomcat之前也要安装jdk。
-
tomcat配置文件的结构(server、service、commector--engine、host)
-
tomcat的启动和关闭:catalina.sh start|stop
-
最常用的tomcat部署模式
-
tomcat最重要的两个配置文件(同在conf下的server.xml和(web.xml(配置serverlet)、context.xml(定义会话管理器)、user-xml(配置用户名和密码用的))
-
tomcat的目录结构:(bin/lib/conf/logs/webapps/)
-
webapps的目录结构:(ROOT/WEB-INF/MATA-INF/calass/lib/)
-
Tomcat的缺省端口是多少,怎么修改? 8080
-
tomcat优化
-
Tomcat一个请求的完整过程
首先 dns 解析 wo.de.tian机器,一般是ng服务器ip地址
然后 ng根据server的配置,寻找路径为 yy/的机器列表,ip和端口
最后 选择其中一台机器进行访问—->下面为详细过程
1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得
2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应
3) Engine获得请求localhost/yy/index.jsp,匹配它所拥有的所有虚拟主机Host
4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)
5) localhost Host获得请求/yy/index.jsp,匹配它所拥有的所有Context
6) Host匹配到路径为/yy的Context(如果匹配不到就把该请求交给路径名为”“的Context去处理)
7) path=”/yy”的Context获得请求/index.jsp,在它的mapping table中寻找对应的servlet
8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
10)Context把执行完了之后的HttpServletResponse对象返回给Host
11)Host把HttpServletResponse对象返回给Engine
12)Engine把HttpServletResponse对象返回给Connector
13)Connector把HttpServletResponse对象返回给客户browser
ansible
-
ansible可以做什么?(批量执行命令、批量同步配置文件)
-
ansible的执行流程?
-
推送公钥的流程?
-
ad-hoc是什么?有什么缺点?如何解决?根据主机清单就是远程执行命令,不支持管道和&符号、通过shell模块解决
-
shell模块的缺点
-
常用的模块:yum、copy、group、user、file、server、shell、mount、cron
-
playbook常用模块:template代替cp翻译变量、inlude(调用playbook)、handlers(类似于inotify)
kickstart
- 流程:dhcp给服务器分配地址连接tftp下载预启动文件
硬件相关
- 装系统
- 配置raid卡