nginx介绍:
1、高并发,轻量级的web服务软件
2、稳定性高,系统资源消耗率低
对http的高并发处理能力高,单台物理服务器可以支持30000-50000个并发。
一般来说在工作中,单台的并发一般在20000.
nginx的功能介绍:
1、主要功能就是处理静态页面,文本、图片等等
2、动态内容处理能力较差,一般把动态的请求转发到中间件(PHP,PYthon)转发到后端
3、正向代理和反向代理
正向代理:通过一个代理的地址,访问其他的web页面,客户端是知道通过代理服务器访问的目标地址。
反向代理:也是通过代理的地址访问,但是客户端并不知道流量转发到了哪一台后端服务器。
流量转发是根据算法把流量转发到后台服务器
反向代理=====负载均衡
4、支持ssl/tls 加密支持 支持https协议
5、支持虚拟机,在一个nginx的配置当中,可以做对个域名。
6、nginx自带缓存机制,可以缓存静态文件。
7、自带日志文件,但是nginx没有日志分割功能。记录的是nginx自己的业务日志,如果是程序启动,停止,程序出错的日志不包含在内。
同步,异步
同步:在互联网中,处理请求的方式,一个服务完成需要其他服务作为依赖时,只有等待被依赖的服务器完成后,才算完成。
是一个可靠的序列,要么成功要么失败。
服务的状态需要严谨的保持一致。
异步:一个服务的完成需要依赖其他的服务,只是通知其他依赖服务开始执行,不需要等待依赖服务的执行结果,被依赖的服务执行结果也无法确定,是一个不可靠序列。
nginx快的原因,使用的是异步的处理方式
阻塞和非阻塞:
阻塞:在调用结果返回之前,当前的线程会被挂起,一直等到返回结果,在这个期间是不能够执行其他任务的。
非阻塞:在不需要等待调用的结果,不能立刻得到结果,也不会阻塞当前的线程,而是立刻返回
nginx的工作方式:异步非阻塞。
nginx配置文件
全局: 运行用户 和 子进程数量
event: 子进程的并发数
http: server 域名 端口 location 匹配多个分网页(uri)
root 拼接 工作目录的地址和uri结合起来就是访问的路径
root /var/www/htnl;
index index.html index.html;
location /test1
curl /var/www/html/test1/index.html
alias
alias /var/www/html/test1;
index index.html index.html;
location /test1
都是用来匹配uri的
nginx基础命令
conf:保存所有nginx配置的文件,其中nginx.conf是nginx主核心配置件,其他的.conf文件主要是nginx的相关功能
logs: 存放nginx日志的目录 access.log 记住访问nginx的日志 error,记录访问失败的日志(启动失败的日志,配置文件有错)
sbin: nginx的二进制启动的脚本,一般动用系统控制命令
nginx -t : 当我们配置完nginx.conf之后,可以用这个命令检测我们配置文件的语法是否正确
html:保存的是nginx访问的web页面,这个目录可以修改,文件名一般都是index.html
nginx -t 检测配置语法
nginx -v 检测nginx的版本
nginx -s stop start restart reload 信号,传递一个信号让内核处理。
nginx配置文件详解:
全局模块:对全局生效
events:配置nginx服务器的并发数据
http:配置代理,缓存,日志以及第三方模块(自定义对http请求进行处理) ----------------- server:配置虚拟主机的参数 一个http里面可以有多个server -----------
location:用来匹配uri(一个网站的分网页),一个server里面可以有多个location
location配置语法:
匹配的是目录
root 拼接 路径和uri合并
alias 必须是绝对路径 工作路径必须包含uri
修改并发数量,要先释放配额,只能重启生效
查看修改数据
案例
访问状态的统计
vim /usr/local/nginx/conf/nginx.conf
nginx -t
systemctl restart nginx
Active connections: 1 # 表示当前活动的连接数
server accepts handled requests:表示已经处理的连接信息包含以下三个数字
1 1 1
已经处理的连接数 成功tcp握手的次数 已经处理的请求数
Reading: 0 Writing: 1 Waiting: 0
表示服务器正从哭护短的请求中读取数据
服务器正在讲响应数据发送给客户端
表示有连接处于空闲状态,可以处理新的请求
基于授权的访问控制
apt -y install apache2
nginx -t
systemctl restart nginx
1、基于域名的server(虚拟主机)
vim /etc/hosts
建立自己的独立日志
2、基于域名
基于ip地址
vim /usr/local/nginx/conf/nginx.conf
vim /etc/hosts
重启
基于端口
不是80端口要加上 :端口