nginx
这块是全新的,主要参考了在B站看的nginx资料,综合而成。前端学到这个程度足矣。
前端为什么需要nginx
首先为什么需要nginx,一个最经典的场景就是解决前端跨域问题,也就是反向代理功能,如下图:
图中鼠标位置就是nginx,可以将请求代理到静态资源,或者API接口服务等等。
学习环境
之前讲了docker,直接pull一个nginx镜像就行了,然后进入docker里面操作。
主从模式
1、ng在启动后,会有一个master进程和多个互相独立的worker进程,也就是主从模式。 2、因此在某个worker进程异常退出的时候,可以再起一个新的worker进程服务。
使用主从模式可以大大提高Nginx的可用性和稳定性,降低单点故障的风险。
日志文件切割
Nginx的日志文件切割是指将Nginx服务器生成的大量日志文件分割成较小的文件,以减少磁盘使用量并提高搜索速度。Nginx支持通过配置文件自动切割日志文件。
下面是Nginx配置文件中配置日志切割的一个简单示例:
http {# $remote_addr 访问的ip地址# $remote_user 远程用户# $time_local 时区log_formatmain'$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.logmain;# 定义切割日志文件的方式log_rotatedaily;# 定义保存日志文件的天数log_rotate_age30;# ……
}
上面的代码定义了切割日志文件的方式为每天切割,并定义了保存日志文件的天数为30天。您可以根据自己的需求来修改这些参数。
在配置文件生效后,Nginx将自动按照指定的方式切割日志文件,并在切割后的日志文件名后面加上日期。例如,原始的日志文件名为"access.log",在切割后的日志文件可能为"access.log.2022-01-01"
主配置文件
/etc/nginx/nginx.conf是Nginx服务器的主配置文件,它定义了Nginx服务器的基本行为。
以下是默认这个文件的配置信息:
usernginx; 设置nginx服务的系统使用用户worker_processes1;工作进程数,一般和CPU数量相同
error_log/var/log/nginx/error.log warn; nginx的错误日志pid/var/run/nginx.pid; nginx服务启动时的pid
events {worker_connections1024;每个进程允许的最大连接数 10000
}
http {include /etc/nginx/mime.types;//文件后缀和类型类型的对应关系default_typeapplication/octet-stream;// 默认 content-type,就是指上面的mime.types没有匹配上的content-type如何设置返回的content-typelog_formatmain'$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.logmain;//默认访问日志sendfileon;//启用sendfile,优化了静态资源访问的速度#tcp_nopush on;//懒发送keepalive_timeout65;// 链接保持65秒不断开#gzipon; # 启用gzip压缩include /etc/nginx/conf.d/*.conf;// 包含的子配置,比如http的转发配置很多,就单独写一个文件