1. Tomcat调整最大连接数,要改哪个参数?
现场回答:我知道Tomcat,但是我没用过,应该有config这类的配置文件去控制的,参数应该是max connections之类的关键词了(心里:我当时直接就是翻译‘最大连接数’了)
面试官点点头……
查漏补缺:改conf/server.xml里Connector标签下的maxConnections参数。这个参数直接控制Tomcat能同时接收的最大连接数,默认值大概10000左右,具体要根据服务器的CPU和内存资源调整。
2. Tomcat有哪些常用端口?
现场回答:8080或者80,这是是HTTP默认端口,平时访问web应用用这个;443是HTTPS端口;其它的就不清楚了(心里:上面都说了俺没用过tomcat,还问……)
面试官点点头……
查漏补缺:主要 4 个,8080或者80是HTTP默认端口,8443是HTTPS端口,需要启用SSL时配置;8005是关闭端口,用shutdown命令停Tomcat就是通过这个端口发信号;8009是AJP端口,用来和Nginx、Apache这些反向代理服务器通信,之前做Nginx转发时配置过AJP连接。
3. Nginx怎么配置缓存?
现场回答:用代理缓存(proxy_cache)指令,在http块里用proxy_cache_path定义缓存路径、大小和过期时间;再在location块里启用缓存
面试官:嗯……(停顿了十几秒)
追加回答:可以用proxy_cache_valid设置不同响应码的缓存时间,比如200和304状态码缓存12小时,其他状态码缓存10分钟。
4. DNS的解析过程是怎样的?
现场回答:先查本地缓存吧?然后找 DNS 服务器,再问根服务器,最后返回 IP。
面试官:本地缓存之后,是直接请求根服务器吗?
追加回答:本地缓存没命中的话,会先找本地 DNS 服务器),它先查自己的缓存,没有才去问根服务器,根服务器告诉顶级域地址,再问顶级域要 DNS 地址,最后 DNS 返回 IP
查漏补缺:DNS 解析按 “从近到远、层层缓存” 的顺序,共 5 步:
5. tar命令怎么排除.gz文件备份?
现场回答:用--exclude参数,命令格式是tar -cvf backup.tar --exclude="*.gz" 目标目录。*.gz是通配符,匹配所有.gz后缀的文件。
查漏补缺:关键是–exclude通配符参数,完整命令为tar -cvf 备份文件名.tar –exclude=”.gz” 目标目录(-c创建归档、-v显示备份过程、-f指定备份文件名)。若需排除多个目录下的.gz 文件,可多次添加–exclude(如–exclude=”dir1/.gz” –exclude=”dir2/.gz”);若需压缩备份,可加-z参数(tar -zcvf backup.tar.gz –exclude=”.gz” 目标目录)。
6. Linux命令行备份常用哪些方式?
现场回答:我一般用cp,tar即可.
7. Nginx的配置文件是什么?
现场回答:一般会配置两个配置文件了,nginx的主配置文件nginx.conf,在nginx的主目录下,还有一个扩展配置文件,一般以项目名命名,在sites-available里。
8. Keepalived用的协议是什么?
查漏补缺:VRRP(虚拟路由冗余协议)。它的作用是实现虚拟 IP 漂移,比如两台服务器搭 Keepalived,一台主一台备,主节点故障时虚拟 IP 自动切到备节点,保证服务不中断,设计高可用架构。
9. 怎么实现Nginx的负载均衡?
答:使用upstream模块,在http块里定义后端集群,再在location块里用proxy_pass http://backend;把请求转发到集群。
查漏补缺:核心是upstream模块,分两步配置:
第一步在http块里定义后端集群,比如upstream backend { server 192.168.1.101:8080 weight=2; server 192.168.1.102:8080; },weight控制权重,数值大的接收更多请求;
第二步在location块里用proxy_pass http://backend;把请求转发到集群。常用策略有 4 种:轮询(默认)、权重轮询、IP 哈希(保会话)、最少连接(避过载),还可以加max_fails和fail_timeout做健康检查,比如连续 3 次请求失败就标记节点故障,10 秒后重试。