vlambda博客
学习文章列表

nginx相关面试题(实时更新)





  • Nginx命令


  • nginx -s stop and -s quit 有什么区别?


  • 什么是负载均衡


  • 什么是正向代理


  • 什么是反向代理


  • 负载均衡策略


  • Nginx配置文件nginx.conf有哪些属性模块?


  • nginx的 location块匹配规则






Nginx命令

cd    /usr/local/nginx      进入到Nginx的安装目录
进入到sbin目录
./nginx 启动Nginx
./nginx -s stop ./nginx -s quit 关闭Nginx
./nginx -s reload 重新启动,重新加载配置文件
./nginx -v 查看版本
./nginx -t 检查配置文件是否正确
./nginx -c /usr/local/nginx/conf/nginx.conf 重新加载指定配置文件

nginx -s stop and -s quit 有什么区别?

Stop 是快速关闭,不管有没有正在处理的请求。
Quit 是一个优雅的关闭方式,Nginx在退出前完成已经接受的连接请求。

什么是负载均衡

将请求分发到不同的服务器,减少服务器的压力

什么是正向代理

代理客户端

什么是反向代理

代理服务器

负载均衡策略

1 轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某个服务器宕机,能自动剔除故障系统。

upstream backserver { 
server 192.168.0.12;
server 192.168.0.13;
}

2 权重 weight

weight的值越大分配

到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。其次是为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。

upstream backserver { 
server 192.168.0.12 weight=2;
server 192.168.0.13 weight=8;
}

3 ip_hash( IP绑定)

每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题

Nginx配置文件nginx.conf有哪些属性模块?

worker_processes  1# worker进程的数量
events { # 事件区块开始
worker_connections 1024# 每个worker进程支持的最大连接数
} # 事件区块结束
http { # HTTP区块开始
include mime.types;# Nginx支持的媒体类型库文件
default_type application/octet-stream;# 默认的媒体类型
sendfile on# 开启高效传输模式
keepalive_timeout 65# 连接超时
server { # 第一个Server区块开始,表示一个独立的虚拟主机站点
listen 80# 提供服务的端口,默认80
server_name localhost;# 提供服务的域名主机名
location / { # 第一个location区块开始
root html;# 站点的根目录,相当于Nginx的安装目录
index index.html index.htm;# 默认的首页文件,多个用空格分开
} # 第一个location区块结果
error_page 500502503504 /50x.html;# 出现对应的http状态码时,使用50x.html回应客户
location = /50x.html { # location区块开始,访问50x.html
root html;# 指定对应的站点目录为html
}
}
......

nginx的 location块匹配规则

location语法规则:

location [=|~|~*|^~] /uri/ { … }
= 开头表示精确匹配

^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。

~ 开头表示区分大小写的正则匹配

~* 开头表示不区分大小写的正则匹配

!~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则

/ 通用匹配,任何请求都会匹配到。

location模块支持正则表达式匹配,不支持条件判断匹配