当前位置:首页 > 公众号精选 > 架构师社区
[导读]前言前天三面阿里云被虐,面试官问出了“nginx你了解吗?”这样宽泛直白的句式,我一时抓不到重点,一时语噻。下班想了一下,平时潜移默化用到不少nginx的能力,但在面试的时候没有吹成对应的概念。面谈nginx核心能力nginx是老牌web服务器,以下口水话的nginx基础能力,大...


前言

前天三面阿里云被虐,面试官问出了“nginx你了解吗?”这样宽泛直白的句式,我一时抓不到重点,一时语噻。
下班想了一下,平时潜移默化用到不少nginx的能力,但在面试的时候没有吹成对应的概念。

面谈nginx核心能力

nginx是老牌web服务器,以下口水话的nginx基础能力,大家都耳熟能详,看看就行,面试官也不打算考查这个。
高并发连接: 官方称单节点支持5万并发连接数,实际生产环境能够承受2-3万并发。
内存消耗少: 在3万并发连接下,开启10个nginx进程仅消耗150M内存 (15M×10=150M)
配置简单
成本低廉: 开源免费

1. 正向、反向代理

所谓“代理”,是指在内网边缘 设置一个硬件/软件转发请求;
“正向”还是“反向”的说法,取决于转发的是"出站请求"还是"入站请求".
正向代理:处理来自客户端的出站请求,将其转发到Internet,然后将生成的响应返回给客户端。
反向代理:处理来自Internet的入站请求,将其转发给后端工作程序,然后将响应返回给Internet。
  1. 正向代理和反向代理 在代理的方向上不同,但都会代理处理HTTP请求/响应。
  2. 代理服务器存在的目的:
  • 堡垒机/隔离内网:内网客户端无法访问外网需要设置堡垒机、隐藏内网工作服务器
  • 代理服务器附加功能:对流量执行操作、使用缓存或压缩来提高性能、防御攻击并过滤信息

2. 负载均衡

负载均衡一般伴随着反向代理, 起到了 分配流量、透明代理、 增强容错的效果
http {
upstream myapp1 {
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
}
}
}
早期我们的核心产品部署在两台windows Sever IIS上,前面部署了一个nginx,做了负载均衡。
很明显,这里有个[负载均衡策略]的知识点。
  • round-robin 顾名思义:轮询
  • least-connected :下一个请求将发往最小活动链接的服务器
  • ip-hash:根据客户端的ip地址和哈希函数 决定将请求发往哪个服务器
    http://nginx.org/en/docs/http/load_balancing.html
✨ 延伸技能点:
  1. 有个文章讲述了: 《巧用nginx 实现Docker-Comppose服务多实例》
  2. [会话亲和力]:又叫“粘性会话”,确保在有状态的应用中,同一客户端的请求打到后端一个服务器上。
    也有个示例可参考:《巧用会话亲和力做图片上传和预览》

3. 动静分离

动静分离与现在火热的前后端分离概念火热相关,
前端可以自行开发、测试,自行使用nginx形成静态资源服务器,后端服务仅作为附加资源。
下面的例子表明 静态资源在/usr/share/nginx/html, 动态资源路径包含api或swagger。
upstream eap_website {
server eapwebsite;
}
server {
listen 80;
location / { ### 静态资源
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri /index.html;
}
location ^~ /api/  { ### 动态资源
proxy_pass http://eap_website/api/;
}
location ^~ /swagger/  { ### 动态资源
proxy_pass http://eap_website/swagger/;
}
}
✨ 延伸技能点
  1. 以上流程也是《现代十二要素应用方法论》所推崇的第四点, 从这个体系来说,后端沦落为api开发,实属遗憾
  2. 这里有个《有关在容器生成阶段动态插入api基地址的妙招》,对动静分离的容器化很有裨益。

实用功能

  1. 通过端口支持 同一域名下多个webapp
  2. 绑定Https证书1、2点一起体现:一个域名绑定到443和8080端口两个https站点
upstream receiver_server {
server receiver:80;
}
upstream app_server {
server app:80;
}
server {
listen 443 ssl http2;
server_name eqid.gridsum.com;
ssl_certificate /conf.crt/live/gridsum.com.crt;
ssl_certificate_key /conf.crt/live/gridsum.com.key;
location / {
proxy_pass http://receiver_server/;
}
}
server {
listen 8080 ssl http2;
server_name eqid.gridsum.com:8080;
ssl_certificate /conf.crt/live/gridsum.com.crt;
ssl_certificate_key /conf.crt/live/gridsum.com.key;
location / {
proxy_pass http://app_server/;
}
}
  1. 支持rewrite重写规则: 能够根据域名、url的不同,将http请求分发到后端不同的应用服务器节点上。
  2. 内置健康检查功能: 如果后端的某一应用节点挂了,请求不会再转发给这个节点,不影响线上功能。
    关键指令:max_fails, fail_timeout
upstream backend {
server backend1.example.com weight=5;
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
server backup1.example.com  backup;
}
  1. 节省带宽: 支持gzip压缩
  2. 解决跨域问题
    ① 反向代理② 增加CORS响应头5、6点一起体现:在前后端分离项目,对跨域请求增加CORS响应头、对静态资源开启gzip压缩
location / {
gzip on;
gzip_types application/javascript text/css image/jpeg;
root /usr/share/nginx/html;
index index.html index.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' 'Content-Type';
add_header 'Access-Control-Allow-Credentials' 'true';
}
要进大厂, 技术栈要向舒适区以外拓展, 大厂人员大都具备多技能, 随插随用。
基础知识牢固,才会融会贯通,更快解锁高难度姿势。



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动模块RSC6218A 5W-18W迷你高效驱动电源应用,小功率、小体积、高效率

关键字: LED驱动模块 驱动电源应用 LED电源芯片

业内消息,近日台积电在北美技术研讨会上宣布,正在研发 CoWoS 封装技术的下个版本,可以让系统级封装(SiP)尺寸增大两倍以上,实现 120x120mm 的超大封装,功耗可以达到千瓦级别。

关键字: CoWoS 台积电 封装

据外媒报道,字节正在内部探索出售TikTok美国业务多数股权,并援引内部人士披露的信息称 “沃尔玛或为最理想买家”。报道还称,讨论中的一种情况是字节出售美国50%以上TikTok股份,但保留少数股权。

关键字: 字节跳动 TikTok

业内消息,HMD 正在计划重启一些经典的诺基亚功能手机。今年 3 月初,该公司预告了将于 5 月发布的一款功能手机。现在该机的身份已经曝光,新款诺基亚 3210 的谍照已经泄露,展现了新机部分新特性。

关键字: 诺基亚 功能机 HMD

业内消息,近日有一位网友在各大社交媒体发文表示,自己离职后,公司将自己所有的期权全部作废。

关键字: 期权 微博

业内消息,在昨天的中关村论坛未来人工智能先锋论坛上,生数科技联合清华大学正式发布中国首个长时长、高一致性、高动态性视频大模型——Vidu。Vidu是自Sora发布之后全球率先取得重大突破的视频大模型,性能全面对标Sora...

关键字: Sora 清华 AI Vidu

业内消息,近日高通公司宣布推出针对桌面平台的全新骁龙 X Plus 处理器。

关键字: 高通 骁龙 X Plus 处理器

近日,台积电在圣克拉拉年度技术研讨会上宣布首个“埃级”制程技术:A16。A16 是台积电首次引入背面电源输送网络技术,计划于 2026 年下半年开始量产。同时,台积电也在重新命名工艺节点,标志着「埃级」时代的开始。

关键字: 台积电 A16

4 月 25 日消息,4 月 25 日,国际数据公司(IDC)发布 2024 年第一季度中国手机市场跟踪报告,荣耀以 17.1% 的市场份额拿下第一,华为占 17.0% 位列第二,OPPO、苹果和 vivo 分别位列第三...

关键字: 荣耀 华为

业内消息, 近日华为全新Pura 70系列手机正式开售引发广大 数码爱好者追捧,但是有网友注意到这款手机的“AI修图”功能,竟然可以将照片中的人物衣服消除,并拍成视频发布网络。

关键字: 华为Pura70 华为
关闭
关闭