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

2022-05-09 10:34:52 浏览数 (1)

目录

  • Nginx命令
  • nginx -s stop and -s quit 有什么区别?
  • 什么是负载均衡
  • 什么是正向代理
  • 什么是反向代理
  • 负载均衡策略
    • 1 轮询(默认)
    • 2 权重 weight
    • 3 ip_hash( IP绑定)
  • Nginx配置文件nginx.conf有哪些属性模块?
  • nginx的 location块匹配规则

Nginx命令

代码语言:javascript复制
cd    /usr/local/nginx      进入到Nginx的安装目录
代码语言:javascript复制
进入到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 有什么区别?

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

什么是负载均衡

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

什么是正向代理

代理客户端

什么是反向代理

代理服务器

负载均衡策略

1 轮询(默认)

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

代码语言:javascript复制
upstream backserver { 
 server 192.168.0.12; 
 server 192.168.0.13; 
} 

2 权重 weight

weight的值越大分配

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

代码语言:javascript复制
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有哪些属性模块?

代码语言:javascript复制
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语法规则:

代码语言:javascript复制
location [=|~|~*|^~] /uri/ { … }
代码语言:javascript复制
= 开头表示精确匹配

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

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

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

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

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

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

0 人点赞