乐趣区

关于nginx:锁屏面试题百日百刷nginx如何做到高可用

锁屏面试题百日百刷,每个工作日保持更新面试题。锁屏面试题 app、小程序现已上线,官网地址:https://www.demosoftware.cc/#/introductionPage。已收录了每日更新的面试题的所有内容,还蕴含特色的解锁屏幕温习面试题、每日编程题目邮件推送等性能。让你在面试中后人一步,吊打面试官! 接下来的是今日的面试题:

====Nginx 负载平衡怎么实现的? 策略有哪些?
为了防止服务器解体,大家会通过负载平衡的形式来分担服务器压力。将对台服务器组成一个集群,当用户拜访时,先拜访到一个转发服务器,再由转发服务器将拜访散发到压力更小的服务器。
Nginx 负载平衡实现的策略有以下五种:
1、轮询 (默认)
每个申请按工夫程序逐个调配到不同的后端服务器,如果后端某个服务器宕机,能主动剔除故障零碎。
upstream backserver {
server 192.168.0.12;
server 192.168.0.13;
}
2、权重 weight
weight 的值越大调配到的拜访概率越高,次要用于后端每台服务器性能不平衡的状况下。其次是为在主从的状况下设置不同的权值,达到正当无效的地利用主机资源。
upstream backserver {
server 192.168.0.12 weight=2;
server 192.168.0.13 weight=8;
}
3、ip_hash(IP 绑定)
每个申请按拜访 IP 的哈希后果调配,使来自同一个 IP 的访客固定拜访一台后端服务器,并且能够无效解决动静网页存在的 session 共享问题。
upstream backserver {
ip_hash;
server 192.168.0.12:88;
server 192.168.0.13:80;
}
4、fair(第三方插件)
必须装置 upstream_fair 模块。
比照 weight、ip_hash 更加智能的负载平衡算法,fair 算法能够依据页面大小和加载工夫长短智能地进行负载平衡,响应工夫短的优先调配。哪个服务器的响应速度快,就将申请调配到那个服务器上。
upstream backserver {
server server1;
server server2;
fair;
}
url_hash(第三方插件)
必须装置 Nginx 的 hash 软件包
按拜访 url 的 hash 后果来调配申请,使每个 url 定向到同一个后端服务器,能够进一步提高后端缓存服务器的效率。
upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}

====Nginx 配置高可用性怎么配置 (负载平衡怎么做配置)?
当上游服务器 (实在拜访服务器),一旦呈现故障或者是没有及时相应的话,应该间接轮训到下一台服务器,保障服务器的高可用
Nginx 配置代码:
server {
listen 80;
server_name www.lijie.com;
location / {
指定上游服务器负载平衡服务器
proxy_pass http://backServer;
nginx 与上游服务器(实在拜访的服务器) 超时工夫 后端服务器连贯的超时工夫_发动握手等
候响应超时工夫
proxy_connect_timeout 1s;
nginx 发送给上游服务器 (实在拜访的服务器) 超时工夫
proxy_send_timeout 1s;
nginx 承受上游服务器 (实在拜访的服务器) 超时工夫
proxy_read_timeout 1s;
index index.html index.htm;
}
}

====Nginx 怎么判断别 IP 不可拜访?
如果拜访的 ip 地址为 192.168.9.115, 则返回 403
if ($remote_addr = 192.168.9.115) {
return 403;
}

====nginx 怎么限度浏览器拜访?
不容许谷歌浏览器拜访 如果是谷歌浏览器返回 500
if ($http_user_agent ~ Chrome) {
return 500;
}

====nginx 中 Rewrite 全局变量是什么?
$args 这个变量等于申请行中的参数,同 $query_string
$content length 申请头中的 Content-length 字段。
$content_type 申请头中的 Content-Type 字段。
$document_root 以后申请在 root 指令中指定的值。
$host 申请主机头字段,否则为服务器名称。
$http_user_agent 客户端 agent 信息
$http_cookie 客户端 cookie 信息
$limit_rate 这个变量能够限度连贯速率。
$request_method 客户端申请的动作,通常为 GET 或 POST。
$remote_addr 客户端的 IP 地址。
$remote_port 客户端的端口。
$remote_user 曾经通过 Auth Basic Module 验证的用户名。
$request_filename 以后申请的文件门路,由 root 或 alias 指令与 URI 申请生成。
$scheme HTTP 办法(如 http,https)。
$server_protocol 申请应用的协定,通常是 HTTP/1.0 或 HTTP/1.1。
$server_addr 服务器地址,在实现一次零碎调用后能够确定这个值。
$server_name 服务器名称。
$server_port 申请达到服务器的端口号。
$request_uri
蕴含申请参数的原始 URI,不蕴含主机名,如”/foo/bar.php?arg=baz”。
$uri 不带申请参数的以后 URI,$uri 不蕴含主机名,如”/foo/bar.html”。
$document_uri 与 $uri 雷同。

更多面试题或学习资源可查看我主页或评论获取

退出移动版