目录
基本介绍
nginx的主要功能
nginx的主要应用场景
nginx常用命令
nginx另外一种安装方式
nginx常用的信号符:
nginx配置文件详解
全局配置
event模块
http模块
server模块
location模块:
模块的划分
基本介绍
nginx:高性能、轻量级的web服务软件。
国外主要还是apache,
国内主要用的还是nginx
但是世界上主流的还是apache
特点:
1、稳定性高(没有apache稳)
2、系统资源消耗低(处理http请求的并发能力很高,单台物理服务器可以处理3万到5万个并发请求)
稳定:一般在企业中,为了保持服务器的稳定,并发量的设置在2万个左右,占用内存大概在2M左右,加上长连接keep-alive,3M左右
nginx的主要功能
1、静态文件服务:nginx可以直接提供静态文件的服务,HTML,CSS,JAVAScript,图片等。能够高效的处理并且响应静态文件的请求。
2、反向代理:本身自己可以作为一个反向代理的服务器,将客户端的请求转发给后端多个服务器,可以实现负载均衡与高可用(有多个后端服务器可以分担处理,并且如果有一台服务器挂掉,另外后端服务器可以继续工作),可以提高整个集群的性能以及可靠性。
反向代理的核心:客户端在请求时,通过代理服务器,会把请求的流量按照轮询算法,转发到后台不同的服务器,实现负载均衡和高可用。
正向代理:已知后端服务器,请求只会往固定的服务器发送请求。
3、处理动态内容,nginx处理动态内容很差,需要转发到专门用于后台处理的动态服务应用上:php,node.js,java,python,nginx可以代理请求,发送到后端的动态服务处理,动态服务器处理完之后,nginx来把动态请求,响应给客户端。
4、可以实现SSL以及TSL加密,就是HTTPS的加密方式,也就是数字证书的验证机制。
5、虚拟主机:nginx可以在一台服务器上设置多个虚拟主机,同一个服务器上可以有多个域名和站点。
6、URL重定向,可以实现灵活的URL重写和重定向。
7、缓存功能,nginx自带缓存功能。
8、日志功能,可以详细的记录请求的信息,包括访问时间,请求路径,ip地址,响应状态,有助于故障排查。(系统控制的日志,记录在/var/log/messages,业务日志:access.log以及error.log,access记录了谁访问我了,都是访问成功的记录,error日志也记录了谁访问了我,但是记录的都是访问失败的记录。)
nginx的主要应用场景
1、静态服务
2、反向代理,负载均衡
3、缓存服务
4、动态服务
nginx常用命令
nginx -t:检查配置文件是否配置正确
nginx -v:查看nginx的版本号
nginx -s:向主进程传输信号(停止、开启、重启、重新加载)
nginx -c:设置配置文件的默认路径
nginx另外一种安装方式
epel源
yum install -y epel-release
yum install nginx -y
nginx常用的信号符:
信号符结合kill命令
kill -USR 1 pid号 #日志分割
kill -s HUP pid号 #只要是kill,只能跟pid号,重新加载
killall -s HUP nginx #用killall可以跟服务名,也可以用pid号
kill -s QUIT pid号 #优雅退出,有人访问时,不会结束进程,访问完了,才会结束进程
kill -s WINCH pid号 #优雅的结束worker,直到请求完成,才会结束worker进程
nginx配置文件详解
全局配置
work_processes 1; #工作进程也就是worker进程的数量,一般是配置成cpu数一致或者2倍。一般来说小网站设置成1,足够了。
event模块
events块配置影响nginx服务器与用户之间的网络连接
worker_connections 1024; #每个进程可以处理的最大连接数 //ulimit -a 可以查看连接数限制
修改linux服务器文件的最大打开数量:ulimit -n 65535 (linux只支持打开65535) //临时修改
http模块
http模块主要是针对http请求的配置,代理、缓存、日志,反向代理,虚拟web主机,server块。
非http请求的方式,不能写在该模块当中。反向代理:七层,四层(不能配置在http模块中)
keepalive_timeout 65; #65秒
gzip on #打开压缩模块
server模块
server模块可以配置虚拟主机的相关参数,一个http模块当中,可以有多个server模块,一个server模块对应一个虚拟主机
server {
listen 80;
server_name office.dmsd.tech;
root /nginx/www;
index index.php index.html index.html;
charset utf-8;
access_log logs/access.log;
error_log logs/error.log;
}
location模块:
location模块匹配的是URI
location / #通用匹配
location = #精确匹配
location模块中
root 拼接,root指定的目录和location匹配的uri之间做的一个拼接,/opt/ky30 这两个路径都要真实存在,而且都是目录,并且,在uri目录里面要有web文件。
alias:匹配指定路径下的web文件
root后面有没有/无所谓 root /opt/
alias加了/,后面也必须有/,否则,匹配不到 alias /opt
root标签可以使用重定向
alias不可以设置重定向
proxy_pass #反向代理配置,也是写在location模块当中
模块的划分
全局块,全局生效,所有用户都生效
events块:影响nginx服务器和用户的网络连接问题
http:只要模块,配置代理,缓存,虚拟主机,方向代理,只能是http的请求,才可以写在http模块中。
server块:包含在http模块当中,不能单独设置,也可以写在server中
location块:匹配uri,包含在server块中,也不能单独设置,不能写在其他地方
porxy_pass:反向代理,写在location模块中
upstream:反向代理指定服务器的命令,七层,基于ip和端口,走http协议,所以只能在http模块中
stream:四层,走的是tcp或者udp流量,不能写在http当中,写在全局配置。