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 (第三方)