nginx详解【反向代理、负载均衡、动静分离】

Nginx简介

Nginx概述

Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,能经受高负载的考验,有报告表明能支持高达50,000个并发连接数。

正向代理

什么是正向代理?

​ 需要在客户端配置代理服务器机型指定网站访问
nginx详解【反向代理、负载均衡、动静分离】_第1张图片

反向代理

什么是反向代理?

​ 暴露的是代理服务器地址,隐藏了真实服务器ip地址

nginx详解【反向代理、负载均衡、动静分离】_第2张图片

负载均衡

什么是负载均衡?

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

nginx详解【反向代理、负载均衡、动静分离】_第3张图片

动静分离

nginx详解【反向代理、负载均衡、动静分离】_第4张图片

Nginx安装

# 编译依赖gcc环境
yum install gcc-c++ 
# nginx的http模块使用pcre来解析正则表达式
yum install -y pcre pcre-devel
# zlib库提供了很多种压缩和解压缩的方式
# nginx使用zlib对http包的内容进行gzip
yum install -y zlib zlib-devel
# OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
# nginx不仅支持http协议,还支持https(即在ssl协议上传输http)
yum install -y openssl openssl-devel

将下载好的nginx-1.8.0.tar.gz拷贝至linux服务器中

tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure
make && make install

# 然后进入/usr/local 会发现多了一个nginx的文件夹
cd /usr/local/ nginx/ sbin/
# 运行
./nginx 
# 如果没开放端口 记得关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

Nginx常用命令

查看nginx版本号: ./nginx -v

启动nginx: ./nginx

停止nginx: ./nginx -s stop

重新加载: ./nginx -s reload

Nginx实例

反向代理实例1

实现效果

打开浏览器,在浏览器地址栏输入地址_www.123.com,跳转到liunx系统tomcat主页面中

准备工作

在linux系统安装jdk 配置环境变量

#将jdk拷贝进root目录,并且进入root目录
#将jdk解压到 /opt/SoftWare/java 下 
tar -xvf jdk-8u141-linux-x64.tar.gz -C
/opt/SoftWare/java/
#配置jdk环境变量,打开/etc/profile配置文件,将下面配置拷贝进去
#set java environment
export JAVA_HOME=/opt/software/java/jdk1.8.0_141
export JRE_HOME=/opt/software/java/jdk1.8.0_141/jre
export CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
#重新加载/etc/profile配置文件 
source /etc/profile
#java -version 或者 javac 或者 java 是否都识别,
#识别就证明安装成功。

在liunx系统安装tomcat,默认端口8080

#上传Tomcat到linux上
#解压Tomcat到/usr/local下
#开放Linux的对外访问的端口8080/或者关闭防火墙
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
/etc/rc.d/init.d/iptables save
#启动关闭Tomcat
#进入tomcat的bin下启动:
./startup.sh
#进入tomcat的bin下关闭:
./shutdown.sh

流程分析

nginx详解【反向代理、负载均衡、动静分离】_第5张图片

具体配置

在windows系统下的host配置域名与ip对应关系的配置

C:\Windows\System32\drivers\etc

在这里插入图片描述

修改配置文件(配置完记得关闭nginx 在打开 或者reload)

cd /usr/local/nginx/conf/
vi nginx.conf

nginx详解【反向代理、负载均衡、动静分离】_第6张图片

结果显示

nginx详解【反向代理、负载均衡、动静分离】_第7张图片

反向代理实例2

实现效果

使用nginx反向代理,根据访问的路径跳转到不同的端口服务中

nginx监听端口为9001

访问http://192.168.21.113:9001/edu/直接跳转到127.0.0.1:8080
访问http://192.168.21.113:9001/vod/直接跳转到127.0.0.1:8081

准备工作

准备两个tomcat服务器,一个8080端口,一个8081端口

具体配置

创建文件夹和测试页面(配置完记得关闭nginx 在打开 或者reload)
nginx详解【反向代理、负载均衡、动静分离】_第8张图片

结果显示

nginx详解【反向代理、负载均衡、动静分离】_第9张图片
nginx详解【反向代理、负载均衡、动静分离】_第10张图片

负载均衡

实现效果

浏览器地址栏输入地址http://192.168.17.129/edu/a.html,负载均衡效果,平均8080和8081端口中

准备工作

1)准备两台tomcat服务器,一台8080,一台8081
(2)在两台tomcat里面webapps目录中,创建名称是edu文件夹,在edu文件夹中创建页面a.html,用于测试

具体配置

在nginx的配置文件中配置(配置完记得关闭nginx 在打开 或者reload)

nginx详解【反向代理、负载均衡、动静分离】_第11张图片

nginx分配服务器策略

  • 第一种轮询(默认)
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
  • 第二种weight
    weight代表权重默认为1,权重越高被分配的客户端越多
  • 第三种ip_hash
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器
  • 第四种fair(第三方)
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。

结果显示

刷新
nginx详解【反向代理、负载均衡、动静分离】_第12张图片
nginx详解【反向代理、负载均衡、动静分离】_第13张图片

动静分离

什么是动静分离?

​ 通过location指定不同的后缀名实现不同的请求转发。通过expires参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires定义:是给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件,不建议使用Expires来缓存),我这里设置3d,表示在这3天之内访问这个URL,发送一
个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码304,如果有修改,则直接从服务器重新下载,返回状态码200。

流程分析

nginx详解【反向代理、负载均衡、动静分离】_第14张图片

准备工作

在linux系统中准备静态资源 www放html image放图片

在这里插入图片描述

具体配置

nginx详解【反向代理、负载均衡、动静分离】_第15张图片

结果显示

nginx详解【反向代理、负载均衡、动静分离】_第16张图片
nginx详解【反向代理、负载均衡、动静分离】_第17张图片
nginx详解【反向代理、负载均衡、动静分离】_第18张图片

你可能感兴趣的:(Nginx,nginx)