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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值