Nginx教程

nginx学习笔记

本文主要是介绍nginx学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、简介
Nginx是一个高性能的http和反向代理的web服务器,特点是占有内存少,支持高并发,主要用的功能有反向代理、负载均衡、动静分离。

  • 常用命令(到nginx的安装目录下):
    启动——./nginx
    停止——./nginx -s stop
    重载——./nginx -s reload
    查看版本——./nginx -v

  • 配置文件的三大部分:
    1.全局块
    影响整体运行的信息,比如worker数、日志位置、用户组等
    2.Events块
    主要影响服务器和用户之间的网连接数,如worker_connections,配置单个process的最大并发请求数
    3.http块
    实际项目中配置最为频繁的了,代理的路径、负载均衡、动静分离等都在这里配置
    1)http全局块
    包括日志自定义、连接超时时间、单链接的请求数上限等;
    2)Server块
    一个http块可以有多个server块,而一个server块就相当于一个虚拟主机。
    Server块也分为全局server块和location块
    a.Server块
    配置本虚拟机的监听配置(端口)、名称或IP
    b.Location块
    一个server块可以有多个location块,这里主要是对nginx服务器收到的请求,除ip和端口外字符串进行匹配(如127.0.0.1:8080/getLIst,则匹配/getList),匹配后进行请求的转发等处理

二、主要的功能
1、反向代理
通过让用户配置路由,实现请求转发的叫正向代理,而nginx则是通过收到客户的请求后,转发到自己配置的服务器,用户不需要知道真正的服务器地址,只需要请求nginx的服务器即可,这种我们称之为反向代理。
在这里插入图片描述

2、负载均衡
一个请求对应对台服务器,有对应的配置并提供了4种负载均衡的策略。默认是轮询,除此之外还有权重、ip_hash(每个IP的请求会固定的转发到某台服务器)、fair(根据服务器的响应时间来转发请求)
在这里插入图片描述
在这里插入图片描述

  • 权重
    在这里插入图片描述
  • ip_hash
    在这里插入图片描述
  • fair
    在这里插入图片描述

3、动静分离
把对静态资源的请求和要转发的请求分隔开。还可以对静态资配置过期时间等,降低连接的开销
在这里插入图片描述

三、什么是高可用

当nginx服务器宕机后,需要自动切换到备用服务器;
这里是用keepalived中间件来实现,大致步骤是:主从服务器都安装keepalived后,在其配置文件中配置相关信息,并暴漏出一个或多个虚拟的ip,后续请求就直接请求到虚拟IP即可,实现nginx的高可用(主从模式原理)
在这里插入图片描述

四、原理

一个nginx启动后,有一个master进程和一个或多个worker进程。
在这里插入图片描述

  • Master接收到请求后,通知所有worker去抢这个“工作”,由抢到的worker去执行对应的请求操作;
  • Worker并非越多越好,一般看服务器的cpu数,如果能够实现cpu和对应的worker绑定,则效果最佳;
  • Nginx最大连接数=worker_processworker_connection/2 或者
    worker_process
    worker_connection/4;
  • Master-workers模式的好处:1、每个worker进程独立,省去了锁机制的开销;2、方便实现./nginx -s reload热部署的实现。
这篇关于nginx学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!