nginx学习(三)
- nginx.conf的组成:nginx.conf一共由三部分组成,分别为:全局块、events块、http块。在http块中又包含http全局块、多个server块。每个server块中又包含server全局块以及多个location块。在统一配置块中嵌套的配置快,各个之间不存在次序关系。
- nginx的配置
rpm -ql +包名,可以看到rpm包,安装的详细路径
rpm -ql nginx
/etc/logrotate.d/nginx //日志轮转
/etc/nginx
/etc/nginx/conf.d //总配置文件
/etc/nginx/conf.d/default.conf //子配置文件
/etc/nginx/fastcgi_params //动态网站模块python,php所需相关变量
/etc/nginx/koi-utf //字符集,文件编码
/etc/nginx/koi-win
/etc/nginx/mime.types //文件关联程序
/etc/nginx/modules //模块文件夹。第三方模块
/etc/nginx/nginx.conf //子配置文件
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/etc/nginx/win-utf
/etc/sysconfig/nginx
/etc/sysconfig/nginx-debug
/usr/lib/systemd/system/nginx-debug.service //nginx调试程序启动脚本
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx //主程序
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.18.0
/usr/share/doc/nginx-1.18.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx
- nginx参数
负载均衡
- 配置基础配置文件
[root@localhost ~]# vim /etc/nginx/nginx.conf
# 全局参数设置
user nginx;
worker_processes 1; //设置nginx启动进程的数量,一般设置成与逻辑cpu数量相同
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024; //设置一个进程的最大并发连接数
}
# http 服务相关设置
http {
include /etc/nginx/mime.types; //访问媒体类型 什么样的媒体打开什么样的文件
default_type application/octet-stream; //字节流的处理方式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; //日志的格式
access_log /var/log/nginx/access.log main; //访问日志
sendfile on; //加速nginx访问的
#tcp_nopush on; //优化nginx访问的
keepalive_timeout 65; //长连接
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
课外:elinks(纯字符浏览器)
- 日志格式重点!
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
列如:
192.168.40.1:客户端的ip地址
-:占位符
-:用户名
[08/Mar/2021:11:15:04 +0800]:日期
"GET / HTTP/1.1":请求的url和http协议
304:状态码
-:内容大小
"-" : 就是用户直接连接
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0":浏览器的相关信息
"-":代理ip地址
- 日志缓存
- 日志切割
7.案列分享
grep '05/sep/2017' access.log | wc -l
grep '05/sep/2017' access.log | awk '{ips[$1]++}END{for(i in ips){print i,ips[i]}}' | sort -k2 -rn
grep '05/sep/2017' access.log | awk '{ips[$1]++}END{for(i in ips){if (ips[i]>100){print i ,ips[i]}}}'
grep '05/sep/2017' access.log | awk '{url[$7]++}END{for(i in url){print url [i],i}}' | sort -k1 -rn | head -10
grep '05/sep/2017' access.log |awk '{urls[$7]++;size[$7]+=$10} END{for(i in urls){print urls[i],size[i],i}}' |sort -k1 -rn | head -10
date -d 前一分钟
- nginx web模块
1.查看有没有这个模块
nginx -V 2>&1 |grep stub_status
vim /etc/nginx/conf.d/default.conf
server {
location /nginx_status {
stub_status;
allow all; //连接状态
}
序列号:自己的数据发送过去的 a=10241
确认号:每一句话都有回复,收没收到 b=10242
URG:紧急指针
ACK:确认位
PSH:暂停位
PST:重启位
SYN:连接位
FIN:断开位