Nginx面试
1 Nginx负载均衡算法
nginx 的 upstream目前支持 4 种方式的分配
0)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
1)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4)、url_hash(第三方)
根据url的hash结果分配
0)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
1)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4)、url_hash(第三方)
根据url的hash结果分配
2 静态http服务器配置
将服务器上的静态文件(如html, 图片)通过http协议展现给客户端
1 2 3 4 5 | server { listen 80 ; # 端口号 location / { root /usr/share/nginx/html; # 静态文件路径 } |
3 反向代理
客户端本来可以直接通过HTTP协议访问某网站应用服务器,网站管理员可以在中间加上一个Nginx,客户端请求Nginx
,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器。
1 2 3 4 5 | server { listen 80 ; location / { proxy_pass http: //192.168.20.1:8080; # 应用服务器HTTP地址 } |
4 负载均衡配置
upstream tomcatcluster {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 8090;
server_name localhost;
location / {
proxy_pass http://tomcatcluster;
}
}
5 虚拟主机配置
暂略
6 正向代理和反向代理区别
a.代理服务器如果配置在客户端即为正向代理,如果配置在服务端即为反向代理,和机器个数没有关系
b.正向代理代替客户端去发送请求,反向代理代替服务端接受请求
c.正是因为正向代理代替客户端发送请求,正向代理服务器和客户端对外表现为一个客户端,所以正向代理隐藏了真实的客户端;
反向代理代替服务端接受请求,反向代理服务器和真实服务器对外表现为一个服务端,所以反向代理服务器隐藏真实的服务端
综上, 本质上代理服务器还是那个代理服务器,如果替客户端干活就是正向代理,如果替服务端干活就是反向代理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix