nginx个人总结面试题!

1、nginx的最新版本

nginx的最新版本是1.24.0

正向代理的过程隐藏了真实的请求客户端,服务器不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替请求。

反向代理的过程隐藏了真实的服务器,客户不知道真正提供服务的人是谁,客户端请求的服务都被代理服务器处理。反向代理代理的是响应方,也就是服务端;

正向代理(Forward Proxy)通常位于客户端和互联网之间,为客户端请求提供代理服务。它将客户端的请求转发到其他服务器上,并将从服务器接收到的响应返回给客户端。正向代理隐藏了客户端的真实IP地址并负责安全过滤,保护了客户端的隐私和网络安全。

反向代理(Reverse Proxy)通常位于服务器和互联网之间,为后端服务器请求提供代理服务。它可以缓存静态资源、负载均衡多个后端服务器、提供安全过滤等功能,在Web访问中发挥着重要的作用。反向代理隐藏了后端服务器的真实IP地址和拓扑结构,提高了后端服务器的安全性和可伸缩性。

2、介绍一下nginx

nginx是一款轻量级、高性能、稳定性高、并发性好的http和反向代理服务器(支持https),同时也是一款负载均衡软件,可以做7层和四层负载均衡。可以做动静分离,nginx解析静态页面的效率非常高,但是动态请求很鸡肋。nginx功能非常强大,常用的比如地址重写,防盗链,会话保持,访问控制流量控制等

3、nginx、haproxy、lvs的区别

lvs基于系统内核实现软负载均衡,而haproxy和nginx是基于第三方应用实现的软负载均衡。

haproxy是基于四层和七层的转发,是专业的负载均衡软件

nginx既是web服务器、缓存服务器、又是反向代理服务器,可以做七层和四层的转发

lvs是基于四层的负载均衡,所以做不了基于url和目录的转发

4、什么时候用haproxy什么时候用nginx什么时候用lvs

在并发量大得时候可以用lvs,中小型公司可用nginx或者haproxy,如果只是单纯的负载均衡可以用haproxy,但如果是web服务器的话,建议使用nginx,这也是nginx用的多的原因。还用一种情况可以使用lvs和haproxy,比如RabbitMQ集群,有三台RabbitMQ,我们都知道RabbitMQ镜像模式使用还是比较多的,每个节点都提供服务,但我们总不能给开发提供三个RabbitMQ的节点吧,也不能只提供一个节点的ip,所以就可以使用lvs或者haproxy给三个RabbitMQ提供一个VIP,这样开发老铁可以用这个vip写进前端的配置中。不至于所有数据都往一个RabbitMQ上发送。

5、apache和nginx的区别,为什么不用apache

nginx比apache 占用更少的内存及资源 ,抗并发能力更强,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能

apache的rewrite重写功能比nginx强大,模块也更多,两者相比nginx的bug要稍多一点。

一般情况下对性能要求高的话可以使用nginx,如果只要求稳定不要求性能的话可以使用apache

6、动静分离的目的

将网站静态资源与后台应用分开部署,提高用户访问静态网页的速度,降低对后台应用的访问。动静分离的做法是将静态资源部署在nginx上,后台项目部署到应用服务器上,根据一定规则将静态请求全部请求到nginx服务器,动态资源请求全部请求到tomcat,达到动静分离的目的。

7、四层七层负载均衡的区别

四层负载均衡是基于ip+端口进行转发的,复杂度低,传输效率高,因为不需要解析具体的消息内容,但是安全性比较低,七层负载均衡是基于url或者主机ip进行转发的,复杂度高,传输效率相比四层比较低,但是安全性高,功能也比较丰富,比如会话保持、图片压缩等。对比来看两者最大的区别就是效率和功能的区别。四层负载均衡架构设计比较简单,无需解析具体消息内容,在网络吞吐量和处理能力上相对比较高,而七层负载均衡的优势则体现在功能多控制灵活强大

8、nginx的性能调优

系统层面:增大文件句柄打开数。临时修改 ulimit –SHn 永久生效vim /etc/security/limits.conf

服务层面:每个进程的最大文件打开数设置的高一点。worker_rlimit_nofile

cpu的亲和设置,把nginx的进程绑定到不同的cpu,减少进程频繁切换cpu带来的资源损耗。worker_processes 8 最多开启8个,8个以上性能不在提升,稳定性也会变差。1.9版本之后可以设置为auto

选择epoll模型,io多路复用,将worker_connections 10240

设置keepalive_timeout会话保持时间

开启GZIP压缩

设置proxy超时时间

配置日志。方便排错

访问控制,流量控制

开启高效传输 sendfile on tcp_nopush on tcp_nodelay on

内核参数优化

9、nginx的跨域

server {

listen 8080;

server_name localhost;

root html;

location / {

#index index.html index.htm;

#解决vue去掉#号问题,将vue打包的dist文件下文件放到html目录

try_files $uri $uri/ /index.html;

}

#请求http://localhost:8080/api,将该请求转发到百度api,则保证请求在同一个域,解决跨域问题

location /api {

proxy_pass http://api.baidu.com/api;

}

}

server {

listen 8080;

server_name localhost;

root html;

location / {

#vue运行dev在8088端口

proxy_pass http://localhost:8088;

}

#请求http://localhost:8080/api,将该请求转发到百度api,则保证请求在同一个域,解决跨域问题

location /api {

proxy_pass http://api.baidu.com/api;

}

}

10、nginx的会话保持

使用第三方模块nginx-sticky-module-ng,使用ip_hash、url_hash

11、nginx怎么做反向代理

12、nginx怎么做七层负载均衡

upstream、server、location、proxy_pass

13、nginx如何获取客户端的地址

在nginx的配置文件中添加,proxy_set_hearder X-Forwarded-For $remode_addr

14、nginx如何隐藏版本信息

在配置文件http模块中添加server_tokens off;

15、nginx防盗链怎么做

需要使用一个模块ngx_http_referer_module,并在server块中添加Vaild_referers none

16、nginx的缺点

处理不了动态请求,单进程多线程模式,进程死掉会影响很多用户

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤城小巷少年游

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值