锁屏面试题百日百刷-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;

 

}

 

3ip_hash( IP绑定)

 

每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器, 并且可以有效解决动态网页存在的session共享问题。

 

upstream backserver {

 

ip_hash;

 

server 192.168.0.12:88;

 

 server 192.168.0.13:80;

 

}

 

4fair(第三方插件)

 

必须安装upstream_fair模块。

 

对比 weightip_hash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,响应时间短的优先分配。哪个服务器的响应速度快,就将请求分配到那个服务器上。

 

upstream backserver {

 

server server1;

 

server server2;

 

fair;

 

}

 

url_hash(第三方插件)

 

必须安装Nginxhash软件包

 

按访问urlhash结果来分配请求,使每个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;

 

 }

 

 

 

====nginxRewrite全局变量是什么?

 

$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 客户端请求的动作,通常为GETPOST

 

$remote_addr 客户端的IP地址。

 

$remote_port 客户端的端口。

 

$remote_user 已经经过Auth Basic Module验证的用户名。

 

$request_filename 当前请求的文件路径,由rootalias指令与URI请求生成。

 

$scheme HTTP方法(如httphttps)。

 

$server_protocol 请求使用的协议,通常是HTTP/1.0HTTP/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相同。

 

 

 

更多面试题可关注"demo锁屏面试题"公众号通过小程序或App获取面试题和学习资源

 

posted @ 2021-07-21 22:35  demo锁屏面试题  阅读(86)  评论(0)    收藏  举报