nginx 面试题

1.介绍nginx

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

2. nginx,haproxy,lvs的区别

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

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

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

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

3. 什么时候用haproxy什么时候用nginx什么时候用lvs

并发量大的时候可以用lvs,单纯负载均衡可以用haproxy,如果是web服务器的话,建议用nginx。

RabbitMQ集群时,使用lvs或者haproxy给几个RabbitMQ提供一个vip,这样可以直接写进前端配置中。

4.apache和nginx的区别

nginx比apache占用更少的内存和资源,抗并发能力更强,nginx处理请求是异步非阻塞的,而appache则是阻塞型的,在高并发下nginx能保持低资源低消耗高性能,apache的rewrite重写功能比nginx强大,模块也更多,两者相比nginx的bug要多,一般情况下对性能要求高的话可以使用nginx,如果只要求稳定不要求性能的话可以使用apache

5. 动静分离的目的

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

6.四层七层负载均衡的区别

四层负载均衡基于ip+端口进行转发,复杂度低,传输效率高,不需要解析具体的消息内容,但是安全性低,七层负载均衡则是基于url或者主机ip进行转发,复杂度高,传输效率相比四层低,但是安全性高,功能丰富。

四层负载均衡架构设计简单,在网络吞吐量和处理能力相对高,七层负载均衡优势体现在功能多控制灵活强大

7.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

内核参数优化

8. nginx的会话保持

会话保持的作用:为了确保与某个用户的所有请求能够一台服务器进行处理,使用第三方模块nginx-sticky-module-ng,使用ip_hash,url_hash

9. nginx怎么做反向代理

nginx需要配置文件里面定义,如果后端地址比较多,需要用upstream模块定义后端服务器地址池,然后再server模块中,定义location模块,用Proxy_pass转发到此地址池,这样的效果,还起到七层负载均衡的作用

10.nginx怎么做七层负载均衡

nginx需要配置文件里面定义,如果后端地址池比较多,需要用upstream模块定义后端服务器地址池,然后在server模块中定义location模块,用Proxy_pass转发到此地址池,这样效果,还起到反向代理作用

11.nginx如何获取客户端的地址

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

在nginx的真实web服务器上,也需要相同的配置。

12.nginx防盗链怎么做

 需要使用一个模块ngx_http_referer_module,并在server块中添加Vaild_referers none,然后配置文件对应配置就可以了

13.nginx缺点

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值