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使用哪个端口?
答案
用下面命令查出Nginx master进程的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 - KaTeX parse error: Expected 'EOF', got '\[' at position 14: remote\_user \̲[̲time_local] “KaTeX parse error: Double superscript at position 12: request" ' '̲upstream_response_time ’ '$status body_bytes_sent"body\_bytes\_sent "body_bytes_sent"http_referer” ’ ‘“http_user_agent""http\_user\_agent" "http_user_agent""http_x_forwarded_for”’; 从今天的nginx log文件access.log中:
a、列出"request_time"最大的20行?
b、列出早上10点访问量做多的20个url地址?
36 26天之前 Nginx Bash
答案
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 (第三方)
共同学习,写下你的评论
评论加载中...
作者其他优质文章