2020年秋招面试记录——广州速游笔试

  1. 检测mysq是否存在名称为tt的数据库,若存在,请将库下的每个表都独立到处份以<表名 sq|>为文件名的sql,放在当前目录下,请写出命令。(相关信息:本地库127.0.0.1或者localhost,端口: 3306, sock /tmp/mysql.sock,账号: ttuser密码: ttpasswd)
SELECT * FROM information_schema.SCHEMATA where SCHEMA_NAME='tt'; 
mysqldump -u ttuser -p ttpasswd -h 127.0.0.1 tt $tablename > $tablename.sql
  1. 简述CDN的基本原理,倘若某地域玩家故障,访问WEB出现问题,请提供定位问题的方法。

CDN基本原理

最简单的CDN网络由一个DNS服务器和几台缓存服务器组成:
①当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
②CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
③用户向CDN的全局负载均衡设备发起内容URL访问请求。
④CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
⑤区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
⑥全局负载均衡设备把服务器的IP地址返回给用户。
⑦用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。
1、用户网络不好包括域名服务器解析等可能,看用户访问其他web是否出现问题,询问状态码
2、根据架构,先去web服务器上检查相关服务和端口是否正常,修改host文件,将域名绑定至本地,然后curl,看是否正常,如果正常就说明web服务器没有问题,然后ping域名,查看返回的地址是哪里,如果是代理ip,要去检查ip所在的服务器或者出口ip是否正常,如果是cdn,要上相关cdn上去检查设置
3、从网络,机器,资源等方面排查有没有问题,如果没有问题,再看看日志,找开发核对
4、域名劫持,dns污染,添加https这个问题就可以解决
5、ddos
我遇到的是直接打你机器ip,机器被拉入黑洞,我的方法就是在搞一台备份,做智能切换,域名做cdn,或者阿里ddos高防服务
6、服务器被加入挖矿程序
挖矿程序会把你的cpu,内存,流量等占满,上去服务器后,看下top服务,ps进程,找到pid号直接干掉,但是一般都是有守护进程,清除定时任务,找到/usr/lib/systemd/system/底下相对应的守护进程,清除未知的秘钥,检查防火墙
若用户的网络环境比较差:网速慢或不稳定等,会影响以上三者资源的加载,导致浏览器加载资源失败,从而页面加载失败。在上面的 TCP请求,与服务器建立连接 中也提到过网络相关的问题,同样的结果,但是原因不同。
  1. Nginx是当年使用率最高的web服务器,作为web服务器管理员,部署web应用时应该有被攻击时的预案,那么,现在假设现在WEB程序某个页面,正在遭遇n个来源的CC攻击,请写出若干种有效恢复或者减缓服务器压力的配置方式,不需要写具体的命令,只需要结合Nginx特性或模块进行文字论述,需要相关模块时要写出模块名。

nginx预防常见攻击

  1. 请写出iptables的以下的使用命令
    a:生成SYINPUT链
    b:将INPUT默认修改为DROP,并且将INPUT请求跳转到SYINPUT链
    c:在SYINPUT链里面添加协议是tcp,目标端口是3306的访问,只允许10.10.10.10这个IP访问
1、在tcp协议中,禁止所有的ip访问本机的3306端口。
iptables -I INPUT -p tcp --dport 3306-j DROP
2、只允许10.10.10.10访问本机的3306端口
iptables -I INPUT -s 10.10.10.10 -p tcp --dport 3306 -j ACCEPT
3、然后保存iptables
# service iptables save
4、.重启防火墙
#service iptables restart
1、关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
再用命令 iptables -L -n 查看 是否设置好, 好看到全部 DROP 了
这样的设置好了,我们只是临时的, 重启服务器还是会恢复原来没有设置的状态
还要使用 service iptables save 进行保存
下面我只打开22端口,看我是如何操作的,就是下面2个语句(一下为命令行模式)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
再查看下 iptables -L -n 是否添加上去, 看到添加了
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0           tcp dpt:22
Chain FORWARD (policy DROP)
target     prot opt source               destination
Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp -- 0.0.0.0/0            0.0.0.0/0           tcp spt:22
-A 参数就看成是添加一条 INPUT 的规则
-p 指定是什么协议 我们常用的tcp 协议,当然也有udp 例如53端口的DNS
到时我们要配置DNS用到53端口 大家就会发现使用udp协议的
而 --dport 就是目标端口 当数据从外部进入服务器为目标端口
反之 数据从服务器出去 则为数据源端口 使用 --sport
-j 就是指定是 ACCEPT 接收 或者 DROP 不接收
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值