1. 首页 > 快讯

鹅厂面试真题分享:深入浅出的Nginx解析

大家好,关于鹅厂面试真题分享:深入浅出的Nginx解析很多朋友都还不太明白,今天小编就来为大家分享关于的知识,希望对各位有所帮助!

下班后想了想,发现自己在日常生活中潜移默化地使用了很多nginx的能力,但是在面试的时候并没有去实现相应的概念。

面谈nginx核心能力nginx 是一个历史悠久的Web 服务器。 nginx的以下基本能力大家都熟悉了。看看吧。面试官不会对此进行测试。

高并发连接数: 官方表示单节点支持5万个并发连接,实际生产环境可以承受2万到3万个并发连接。

内存消耗少:3万并发连接下,启动10个nginx进程仅消耗150M内存(15M10=150M)

配置简单

低成本: 开源免费

1. 正向、反向代理

正向代理和反向代理的区别在于代理的方向,但都是代理处理HTTP请求/响应。代理服务器的用途:堡垒主机/隔离内网:内网客户端无法访问外网,需要设置堡垒主机来隐藏内网工作服务器。代理服务器的附加功能:对流量进行操作、使用缓存或压缩来提高性能、防御攻击和过滤信息2. 负载均衡负载均衡一般会伴随着反向代理,具有分发流量、透明代理、代理等作用增强容错能力。

http{upstreammyapp1{serversrv1.example.com;serversrv2.example.com;serversrv3.example.com;}server{listen80;location/{proxy_passhttp://myapp1;}}} 早期我们的核心产品部署在两台windows Sever IIS上。部署了nginx用于负载均衡。

显然,这里有一个关于【负载均衡策略】的知识点。

round-robin 顾名思义:轮询最少连接:下一个请求将发送到活动链接最小的服务器ip-hash:根据客户端的IP 地址和哈希函数http://nginx 确定将请求发送到哪台服务器。 org/en/docs/http/load_balancing.html扩展技能点:

[服务发现]:在容器/K8S环境中,服务地址由集群系统动态分配,一般内置服务发现能力。 docker-compose/K8s 中定义的服务名称代表整个服务。

[会话亲和力]:也称为“粘性会话”,它确保在有状态应用程序中,来自同一客户端的请求被发送到后端服务器。

3. 动静分离动静分离与当前热门的前后端分离概念密切相关。

前端可以自行开发和测试,可以使用nginx组成静态资源服务器。后端服务仅用作附加资源。

以下示例显示静态资源位于/usr/share/nginx/html,动态资源路径包含api或swagger。

uploadeap_website{servereapwebsite;}server{listen80;location/{#静态资源root/usr/share/nginx/html;indexindex.htmlindex.htm;try_files$uri/index.html;}location^~/api/{#动态资源proxy_passhttp://eap_website/api/;}location^~/swagger/{#动态资源proxy_passhttp://eap_website/swagger/;}} 扩展技能点

以上流程也是《现代十二要素应用方法论》推荐的第四点。从这个系统来看,后端沦为API开发是一个遗憾。 这里有《有关在容器生成阶段动态插入api基地址的妙招》,对于动静分离的容器化很有帮助。

实用功能通过端口支持同一域名下多个webapp绑定Https证书1、2点一起体现:一个域名绑定到443和8080端口两个https站点上游receiver_server{serverreceiver:80;}upstreamapp_server{serverapp:80;}服务器{listen443sslhttp2;server_nameeqid.gridsum.com;ssl_certificate/conf。 crt/live/gridsum.com.crt;ssl_certificate_key/conf. crt/live/gridsum.com.key;location/{proxy_passhttp://receiver_server/;}}server{listen8080sslhttp2;server_nameeqid.gridsum.com:8080;ssl_certificate/conf.crt/live/gridsum.com.crt;ssl_certificate_key/conf.crt/live/gridsum.com.key;location/{proxy_passhttp://app_server/;}} 支持rewrite重写规则:可以根据不同的域名和URL将http请求分发到不同的后端应用服务器节点。

关键指令:max_fails、fail_timeout

uploadbackend{serverbackend1.example.comweight=5;server127.0.0.1:8080max_fails=3fail_timeout=30s;serverunix:/tmp/backend3;serverbackup1.example.combackup;}节省带宽: 支持gzip压缩

解决跨域问题反向代理添加CORS响应头

第5点和第6点一起体现:前后端分离项目、跨域请求添加CORS响应头、静态资源启用gzip压缩。

位置/{gzipon;gzip_typesapplication/javascripttext/cssimage/jpeg;root/usr/share/nginx/html;indexindex.htmlindex.htm;try_files$uri/index.html;add_header'Access-Control-Allow-Origin''*' ;add_header'Access-Control-Allow-Methods''GET、POST、OPTIONS、PUT、DELETE';add_header'Access-Control-Allow-Headers''内容类型';add_header'Access-Control-Allow-Credentials'' true';}要进入大工厂,技术栈必须扩展到舒适区之外。大厂的开发人员大多都具备多种技能,可以随时使用。

只有扎实的基础知识,才能更快掌握并解锁高难度姿势。

好了,文章到此结束,希望可以帮助到大家。

用户评论

青山暮雪

突然想起来我当年面试也问过Nginx啊,还挺难忘的。

    有17位网友表示赞同!

あ浅浅の嘚僾

这篇文章给我的感觉是Goose Factory的面试难度其实挺高的吧。

    有15位网友表示赞同!

烟雨萌萌

分享一下你的面试经历,对我们这些准备就职的人很有帮助!

    有19位网友表示赞同!

灵魂摆渡人

群面很考验沟通能力和团队合作能力啊!

    有14位网友表示赞同!

╯念抹浅笑

Nginx真是一项非常重要的技术了,感觉学习起来难度都不小啊。

    有20位网友表示赞同!

殃樾晨

这篇文章让我对鹅厂的面试流程有了更清晰的认识。

    有10位网友表示赞同!

十言i

面试官应该都是资深工程师吧,能答上来确实很不容易!

    有14位网友表示赞同!

入骨相思

希望能看到更多详细的面试经历分享,例如具体问了什么题。

    有18位网友表示赞同!

虚伪了的真心

感觉作者的技术实力真的很强啊,对NGINX的理解那么透彻。

    有17位网友表示赞同!

遗憾最汹涌

原来鹅厂面试还需要回顾Nginx底层实现?太厉害了!

    有18位网友表示赞同!

岁岁年年

准备面试的朋友可以多多学习Nginx相关的知识呢!

    有19位网友表示赞同!

┲﹊怅惘。

感觉群面形式还挺考验心态,要保持冷静才能回答清楚啊。

    有20位网友表示赞同!

陌颜幽梦

羡慕作者能成功通过鹅厂的面试,希望我也有机会被录用。

    有14位网友表示赞同!

゛指尖的阳光丶

鹅厂的工作环境应该很优秀吧,技术氛围肯定很好!

    有14位网友表示赞同!

秘密

这种Nginx回忆录的文章很有收藏价值,以后可能会用到。

    有9位网友表示赞同!

愁杀

作者分享的经验真的很宝贵,可以帮助很多想要进入科技行业的年轻人。

    有16位网友表示赞同!

矜暮

文章写得非常详细生动,仿佛现场观看面试过程一样!

    有11位网友表示赞同!

封锁感觉

希望看到更多技术方面的文章分享,学习一下你们的先进经验!

    有9位网友表示赞同!

三年约

Goose Factory的面试竞争应该很激烈吧,想要进去确实需要好好准备!

    有16位网友表示赞同!

♂你那刺眼的温柔

感觉鹅厂的技术实力真的很强大啊,值得我好好学习参考!

    有11位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/6736.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666