软件测试接口面试题

树袋大熊 2020-07-15 22:58:16

Nginx使用哪种网络协议?

Nginx是一个WEB服务程序,

应用层用的是HTTP协议,不会是FTP、Telnet这种。

传输层用的是TCP,UDP传输不可靠

Apache和Nginx有什么区别?

答案

Apache支持模块动、静态编译,而Nginx模块只支持静态编译

Nginx对Fastcgi的支持比Apache好

Nginx使用epoll连接方式,异步非阻塞,Apache使用select阻塞方式

Nginx安装体积小,apache安装体积大

Nginx以线程方式处理请求,Apache以进程处理,Nginx对资源要求低

Apache比nginx稳定

Apache模块多

如何查看Nginx使用哪个端口?

答案

用下面命令查出Nginxmaster进程的PID:

$ ps -aux | grep nginx 1234 root      0:00 nginx: master process nginx -g daemon off; 5678 nginx     0:00 nginx: worker process

然后根据PID查看Nginx使用的端口:

$ netstat -anp | grep 1234 tcp        0      0 127.0.0.11:43489        0.0.0.0:*               LISTEN      - tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1234/nginx: master pro

可以看到PID为1234的Nginx使用本地的80端口

扩展

Linux输出结果很多是没有列头的,我们可以用head打印出来,如上两个命令可以这样:

$ ps -aux | head -1; ps -aux | grep nginx $ netstat -anp | head -2; netstat -anp | grep 1234

Nginx访问日志分析请求时间最大的和请求数最多的前20条

nginx的log_format配置如下:log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$upstream_response_time ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';从今天的nginx log文件access.log中:

a、列出"request_time"最大的20行?

b、列出早上10点访问量做多的20个url地址?

36  26天之前NginxBash

答案

a答案:

cat/usr/local/var/log/nginx/access.log|sort-nrk9|head-2

b答案:

grep"07/May/2018:10:"/usr/local/var/log/nginx/access.log|awk'{print$12}'|sort-rn|uniq-c|head-20

从用户在浏览器中输入网址并回车,到看到完整的页面,中间都经历了哪些过程?

浏览器→ url → dns →ip→ port → TCP → Nginx → server name → php-fpm/fast cgi → php                                                                                 |浏览器← TCP ← Nginx ← php-fpm/fast cgi ←

Nginx 负载均衡实现方式有哪些?

答案

轮询

用户ip哈希

指定权重

fair      (第三方)

url_hash      (第三方)

1 阅读:138

树袋大熊

简介:写写自己工作当中的心得,软件测试,编程的笔记。