
一.nginx的下载1打开虚拟机使用远程连接工具连接 linux 操作系统2到 nginx 官网下载软件nginx(3)点击右侧download下载nginx的压缩包(建议下载最新版)二.下载和安装nginx 的依赖文件在下载安装nginx 之前,要先下载它的相应的依赖文件分别是pcre、openssl 、zlib 、 gcc依赖文件1. 安装 pcre 依赖1联网下载 pcre 压缩文件依赖wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz如果宝子没有下载第三方软件只有 VMware不知道如何将下载的文件导入 linux接下来可以和咕嘎一起来操作将路径转到我们要存放的地方再输入rz点击回车按钮点击自己要输入的文件如下图所示。2解压压缩文件tar -xvf pcre-8.37.tar.gz3进入解压后的 pcre-8.37按顺序分别执行下面的命令./configure make make install*如果在执行./configure命令的时候发生如下情况说明系统 PATH 环境变量里找不到 C 语言编译器 gcc。你现在编译 pcreNginx 依赖包源码编译需要 gcc 编译器服务器没装。那我们需要去下载这个编译器执行以下命令进行下载yum install -y gcc gcc-c下载完成后继续执行./configure和make make install。2. 安装 openssl、zlib、gcc 依赖yum -y install make zlib zlib-devel gcc-c libtool openssl openssl-devel安装完成后完成了所有依赖安装。3. 安装 nginx前面我们已经下好了 nginx 包没下的去文档开头看。依次执行以下命令tar -xvf nginx-1.28.3.tar.gz ./config make make install完成后进入目录/usr/local/nginx/sbin/执行./nginx查看进程判断 nginx 是否开启ps -ef | grep nginx如图所示这样的话我们的 nginx 就算是安装成功了 ( •̀ ω •́ )y咕咕嘎嘎。为了我们接下来的学习我们还要测试一下是否可以访问 nginx因为我们的 nginx 默认监听 80 端口所以我们需要开放我们的防火墙 80 端口。1. 查看一下自己是否开启的 80 端口firewall-cmd --list-all2. 开放 80 端口firewall-cmd --add-port80/tcp --permanent别忘了重启一下防火墙firewall-cmd --reload3. 浏览器访问地址栏输入虚拟机 ip 地址:80咕嘎输入的就是 192.168.0.3:80。访问成功了咕嘎!!!!!三.nginx 常用命令进入 nginx 目录中: cd /usr/local/nginx/sbin1、查看 nginx 版本号./nginx -v2、启动 nginx./nginx查看是否启动成功ps -ef|grep nginx3、停止 nginx./nginx -s stop4、重新加载 nginx./nginx -s reload四.nginx.conf 配置文件1、位置vim /usr/local/nginx/conf/nginx.conf2、配置文件中的内容包含三部分1全局块配置服务器整体运行的配置指令从配置文件开始到 events 块之间的内容主要会设置一些影响 nginx 服务器整体运行的配置指令主要包括配置运行 Nginx 服务器的用户组、允许生成的 worker process 数进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。比如下面第一行配置的这是 Nginx 服务器并发处理服务的关键配置worker_processes 值越大可以支持的并发处理量也越多但是会受到硬件、软件等设备的制约2events 块影响 Nginx 服务器与用户的网络连接events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接常用的设置包括是否开启对多 work process下的网络连接进行序列化是否允许同时接收多个网络连接选取哪种事件驱动模型来处理连接请求每个 wordprocess 可以同时支持的最大连接数等。下图中就表示每个 work process 支持的最大连接数为 1024.这部分的配置对 Nginx 的性能影响较大在实际中应该灵活配置。3http 块这算是 Nginx 服务器配置中最频繁的部分代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。需要注意的是http 块也可以包括 http 全局块、server 块。①、http 全局块http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。②、server 块这块和虚拟主机有密切关系虚拟主机从用户角度看和一台独立的硬件主机是完全一样的该技术的产生是为了节省互联网服务器硬件成本。每个 http 块可以包括多个 server 块而每个 server 块就相当于一个虚拟主机。而每个 server 块也分为全局 server 块以及可以同时包含多个 locaton 块。全局 server 块最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。location 块一个 server 块可以配置多个 location 块。这块的主要作用是基于 Nginx 服务器接收到的请求字符串例如 server_name/uri-string对虚拟主机名称也可以是 IP 别名之外的字符串例如 前面的 /uri-string进行匹配对特定的请求进行处理。地址定向、数据缓存和应答控制等功能还有许多第三方模块的配置也在这里进行五.nginx 反向代理实例11、实现效果打开浏览器在浏览器地址栏输入地址 www.123.com跳转到 liunx 系统 tomcat 主页面中2、准备工作1在 liunx 系统安装 tomcat使用默认端口 80801.下载tomcat 网址Apache Tomcat® - Apache Tomcat 9 Software Downloads建议下载tomcat9.02.tomcat 安装文件放到 liunx 系统中(方法咕嘎前面讲了哦)解压tar -xvf apache-tomcat-9.0.122.tar.gz3.进入 tomcat 的 bin 目录中./startup.sh 启动 tomcat 服务器,打开进程查看tomcat是否开启2对外开放访问的端口(Tomcat 默认监听 8080 端口,在后面配置文件咕嘎会讲到哦)firewall-cmd --add-port8080/tcp --permanent firewall-cmd --reload firewall-cmd --list-all3、访问过程的分析4、具体配置(host,nginx.conf)1.host文件配置(将IP进行域名解析,类似创建一个新的名字)添加内容到文件中,如图所示2.nginx文件配置进入nginx.conf配置文件,对配置文件进行修改5、最终测试浏览器地址栏输入 www.123.com:80六.Nginx 反向代理实例 21、实现效果使用 nginx 反向代理根据访问的路径跳转到不同端口的服务中nginx 监听端口为 9001访问 http://192.168.17.129:9001/edu/ 直接跳转到 127.0.0.1:8080访问 http:// 192.168.17.129:9001/vod/ 直接跳转到 127.0.0.1:80812、准备工作1准备两个 tomcat 服务器一个 8080 端口一个 8081 端口2创建文件夹和测试页面,分别在/usr/src路径下(不是唯一)创建两个文件夹,tomcat8080和tomcat8081,如下图所示:两个文件分别下载tomcat服务器,如下图所示:由于我下载的都是相同版本的tomcat服务,需要对其中一个tomcat服务器配置进行修改,如下图所示:3、具体配置1找到 nginx 配置文件进行反向代理配置(2)咕嘎提醒,这里监听的是9277端口,我们需要在防火墙上开放9277端口4.最终测试七.Nginx负载均衡1、实现效果1浏览器地址栏输入地址 http://192.168.17.129/edu/a.html负载均衡效果平均 8080和 8081 端口中2、准备工作1准备两台 tomcat 服务器一台 8080一台 80812在两台 tomcat 里面 webapps 目录中创建名称是 edu 文件夹在 edu 文件夹中创建页面 a.html用于测试3、在 nginx 的配置文件中进行负载均衡的配置4、nginx 分配服务器策略第一种 轮询默认每个请求按时间顺序逐一分配到不同的后端服务器如果后端服务器 down 掉能自动剔除。第二种 weightweight 代表权重默认为 1,权重越高被分配的客户端越多第三种 ip_hash每个请求按访问 ip 的 hash 结果分配这样每个访客固定访问一个后端服务器第四种 fair第三方按后端服务器的响应时间来分配请求响应时间短的优先分配。5、最终测试地址栏输入192.168.18.128/edc/a.html,多刷新几次,页面会在如下两幅图之间转换八.Nginx 配置实例-动静分离1、什么是动静分离咕嘎小课堂:把网站想象成一家餐厅(1)静态资源图片、css 样式、js 脚本、视频、html 页面、字体文件。这些东西做好之后内容不会随便变就相当于餐厅里的餐具、桌椅、菜单海报、装修挂画提前备好不会每来一个客人就重做一份。(2)动态资源需要程序实时计算的内容比如登录校验、查询数据库、提交表单、个人订单页面。相当于餐厅现炒的菜每个客人点的不一样后厨要现场加工。(3)Nginx餐厅前厅总管 迎宾站在最前面接待客人动静分离的规则客人浏览器过来要东西如果客人要海报、餐具、菜单静态文件Nginx 自己库房里就有直接拿给客人不送往后厨速度很快后厨不用忙活如果客人要现炒菜动态请求Nginx 自己做不了就把这个请求转发给后厨后端服务等后厨做好再交给客人。2、准备工作在 liunx 系统中准备静态资源用于进行访问image中放入一张图片,www文件中加入一个文本3、具体配置4、最终测试在浏览器中输入:192.168.18.128/image/guga.jpg因为配置文件 autoindex on,我们输入192.168.18.128/image/ 则会出现如下页面情况咕嘎课堂:nginx配置文件中加入了autoindex on,Nginx 自动列出这个目录下所有文件 / 子文件夹展示一个文件列表页面在浏览器中输入:192.168.18.128/www/guga.html九.nginx 的高可用1、什么是 nginx 高可用为什么要有nginx的高可用咕嘎小课堂:nginx作为诸多服务的一个中间接待员 , 如果它宕机出故障了 , 那所有的服务网站全部挂掉 , 这就是单点故障 , 简单来说 , 我们可以将nginx 比喻成一个餐厅的服务接待员 , 负责所有客人的接待事宜,如果有一天它生病了 , 那整个餐厅不就乱套了 , 所以我们可以多招募一个服务接待员,就算有一个接待员除了问题 , 还有另外一个 , 同理 , 我们也可以多创建一个nginx , 防止另外一个nginx出现宕机而出现的服务无法进行的问题.如图所示: 用我们创建的虚拟IP连接主aginx和辅aginx,服务启动,最先开始是使用主nginx,如果主nginx 出现问题,则会转为辅nginx继续进行服务.2、配置高可用的准备工作1需要两台服务器 192.168.18.129 和 192.168.18.128(不必咕嘎一样,创建的虚拟机都会自动分配IP地址,可以自己配置,同样随机分配的也是一样的)2在两台服务器安装 nginx(咕嘎认为各位聪明的宝子们经过前面训练,都已经掌握了nginx的安装)3在两台服务器安装 keepalivedyum install -y keepalived安装的keepalived配置文件默认放在/etc/keepalived/(4) 创建一个脚本文件nginx_check.sh(5) 配置keepalived.conf配置文件,配置完后开启systemctl start keepalived1是全局定义块全局基础配置客栈的行政台账 报警通知规则2是脚本监控块健康检查脚本定义专职巡检员3是VRRP 实例主备集群核心后台管理员 / 写全局规矩的人(6) 开启nginx3、最终测试因为咕嘎创建的虚拟地址为192.168.18.18,所以咕嘎在浏览器的地址栏输入此地址,如果有宝子比知道该输入哪个IP,可以去看看你的keepalived 配置文件十.nginx原理1、mater 和 worker2、worker 如何进行工作的3、一个 master 和多个 woker 有好处1可以使用 nginx –s reload 热部署利用 nginx 进行热部署操作2每个 woker 是独立的进程如果有其中的一个 woker 出现问题其他 woker 独立的继续进行争抢实现请求过程不会造成服务中断4、设置多少个 woker 合适worker 数和服务器的 cpu 数相等是最为适宜的5、连接数 worker_connection第一个发送请求占用了 woker 的几个连接数答案2 或者 4 个第二个nginx 有一个 master有四个 woker每个 woker 支持最大的连接数 1024支持的最大并发数是多少l 普通的静态访问最大并发数是 worker_connections * worker_processes /2l 而如果是 HTTP 作 为反向代理来说最大并发数量应该是 worker_connections *worker_processes/4。尚硅谷视频链接尚硅谷Nginx教程由浅入深一套打通丨初学者也可掌握_哔哩哔哩_bilibili