Nginx的使用

Nginx快速入门

Nginx概念

什么是Nginx?

Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如图片文件结尾的走文件服务器,动态页面走web服务器,只要你正则写的没问题,又有相对应的服务器解决方案,你就可以随心所欲的玩。并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。

但是要是想要更全面了解nginx 还需要了解几个种要的概念 分别是 正向代理、反向代理、负载均衡、动静分离

什么是正向代理?

1、用户发送请求到自己的代理服务器
2、自己的代理服务器发送请求到服务器
3、服务器将数据返回到自己的代理服务器
4、自己的代理服务器再将数据返回给用户
在这里插入图片描述

什么是反向代理?

反向代理对用户则是不可知的,比如我们访问百度网站,百度的代理服务器对外的域名为 https://www.baidu.com 。具体内部的服务器节点我们不知道,现实中我们通过访问百度的代理服务器后,代理服务器给我们转发请求到他们N多的服务器节点中的一个给我们进行搜索后将结果返回。
v2-50ebcd83071fde1d8ca6df434c3ebd72_720w.jpg

什么是负载均衡?

单个服务器解决不了,我们增加服务器数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器上,也就是我们所说的负载均衡

什么是动静分离?

在弄清动静分离之前,我们要先明白什么是动,什么是静。在Web开发中,通常来说,动态资源其实就是指那些后台资源,而静态资源就是指HTML,JavaScript,CSS,img等文件。一般来说,都需要将动态资源和静态资源分开,将静态资源部署在Nginx上,当一个请求来的时候,如果是静态资源的请求,就直接到nginx配置的静态资源目录下面获取资源,如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。在使用前后端分离之后,可以很大程度的提升静态资源的访问速度,同时在开发过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间

Nginx安装与使用(环境阿里云Centos7)

Nginx的安装

#下载Nginx
wget http://nginx.org/download/nginx-1.12.2.tar.gz
#安装依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
#解压缩
tar -zxvf linux-nginx-1.12.2.tar.gz
#cd进入根目录执行配置
./configure
#编译安装(默认安装在/usr/local/nginx)
先执行:make
再执行:make install

Nginx命令

执行Nginx命令前必须进入 nginx目录下的sbin执行(默认安装在/usr/local/nginx) !!! 如果是再Windows运行命令不需要加./

命令介绍
./nginx运行nginx
./nginx -s quit优雅停止nginx,有连接时会等连接请求完成再杀死worker进程
./nginx -s reload优雅重启,并重新载入配置文件nginx.conf
./nginx -t检查nginx的配置文件是否正确

Nginx配置文件

nginx 的配置文件分为三大块 第一个是全局快 第二个是events块 第三个是http块

1597999738_1_.jpg

第一部分:全局块

从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行Nginx服务器组的用户(组)、允许生成的worker process 数、进程pid 存放路径、日志存放路径和类型以及配置文件的引入等。
比如上面第一行配置的 worker_processes 1;

这是Nginx服务器并发处理服务的关键配置,worker_processes值越大,可以支持的并发处理量也越大,但是会受到硬件,软件等设备的制约

第二部分:events块

events块涉及的指令主要影响nginx服务器与用户的网络连接比如worker_connections 1024;是支持的最大连接数;

第三部分:http块(http全局块,server块)

这个地方是Nginx服务器配置最为频繁的部分,代理,缓存,和日志定义等绝大多数功能和第三房模块的配置都在这里.
需要注意的是:http块也可以包括HTTP全局快server块.

http全局块

http全局块主要是管理 mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等

server块

server块和虚拟主机有密切关系,每一个http块可以包含多个server块,在server块中配置虚拟主机需要监听的端口,ip或域名

配置Nginx反向代理

反向代理实战1:

要求:访问Nginx服务器请求代理tomcat服务器(!!!tomcat安装运行自行百度)

修改nginx配置文件

1598495901_1_.jpg

访问Nginx的端口发现实际访问的是tomcat证明是成功了😀

1598496344.jpg

反向代理实战2

要求:访问 NginxIP/edu 跳转到tomcat1 访问 NginxIP/vod 跳转到tomcat2(!!!注意需要准备两个tomcat并且在Tomcat中的Webapps目录下创建与访问路径相同的目录和index.html(内容自定义))

修改nginx配置文件

1598508936_1_.jpg

访问edu和vod 成功😀
访问edu 成功😀

1598509118_1_.jpg

访问vod 成功😀

1598509135_1_.jpg

location详解

参考连接: https://www.jianshu.com/p/7e0d3c768fe7

Nginx负载均衡

对同一个请求分发到不统的服务器 两台服务器的资源必须一摸一样但是端口不一样

修改配置文件

hBtWK1pwm6fkxXI.png

然后一直重复的访问同一个路径发现有的时候访问的是端口8080 有的时候是8081 这样一个最基本的负载均衡就做好了

1598521952_1_.jpg
1598521964_1_.jpg

Nginx对于负载均衡提供了多种算法

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除

2、weight

weight 代表权重,默认为1,权重越高被分配的客户端越多
1598522975_1_.jpg

3、ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题
1598523219_1_.jpg

Nginx动静分离

动静分离就是将静态资源(html,img,js,css)分配到Nginx 动态请求分配到tomcat(从数据库获取数据)

实现动静分离前请在服务器任务路径下创建三个文件夹分别是html/js/img 当作测试数据并放入对应的静态数据

设置配置文件

6beb40521ede4af40486e6bac3c32db.png

访问html目录
1599190969_1_.jpg
访问img目录
1599190907_1_.jpg

上面需要注意的是一个是默认打开 一个是默认展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值