当前位置: 首页 > news >正文

Nginx反向代理简介,作用及配置;Nginx负载均衡简介,作用及配置;

一,Nginx反向代理

1.1简介

                反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

1.2作用

  • 通过反向代理可以增加安全性,减少后台服务被攻击的隐患

  • 通过缓存的方式可以增加静态资源响应效率

  • 通过反向代理实现负载均衡

1.3基础配置

配置文件在conf目录下的nginx.config文件中。

其中内容:

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server { #--只需要关注server的配置--listen       80;server_name  localhost;location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}} #--只需要关注server的配置--
}

listen:监听哪个端口

server_name:给这个服务取一个名字

location:反向代理的配置

error_page:错页面

root:静态资源的根目录

index:欢迎页,默认的请求页面

1.4介绍location指令

做反向代理映射地址的

location [ = | ~ | ~* ] uri {}

=:精确匹配,请求地址必须和uri相同才会进入这个location

~:模糊匹配,只要符合uri规则就会进入了这个location

~*:不区分大小写的模糊匹配

1.5反向代理案例

1.51实现nginx代理百度

在nginx.config中修改server中内容如下:

    server {listen       80;server_name  localhost;location / {proxy_pass  http://www.baidu.com;}}

修改完配置文件后,要重新加载一下配置文件

./nginx -s reload

地址栏输入虚拟机登录端口号访问nginx

显示的是百度

1.52实现nginx代理tomcat

注意修改端口号

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  localhost;location / {proxy_pass http://192.168.1.173:8080;}}
}

创建一个html页面:

粘贴到tomcat/webapps/abc文件夹里去:

访问一下123.html页面。

补:proxy_pass:反向代理的地址。这个配置的地址最后可以用“/”结尾的,也可以不用“/”结尾,有很大区别。有正斜杠代理时会代理到根目录。

请求地址:http://192.168.1.173/abc/123.html

没有正斜杠时,代理后的地址是http://192.168.1.173:8080/abc/123.html

proxy_pass http://192.168.1.173:8080;

有正斜杠时,代理后的地址是http://192.168.1.173//123.html,由此会导致404问题

proxy_pass http://192.168.1.173:8080/;

二,Nginx负载均衡

        负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。  

        负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。    

(Nginx能做负载均衡,但是并不是主力军。)

【负载:就是这个服务器压力有多大;

均衡:就是把这份压力平坦下去,把它分给多个服务器,这样原本是给一台服务器上的压力,现在分给多台服务器了】

2.1、配置hello集群

创建一个【java项目】的springboot工程:

打包(install):

打包成功后,在target目录下会生成.jar的文件。(打包两个输出不同的项目)

虚拟机创建新目录:

    

通过命令启动两个服务,注意两个服务端口号要不同,并且要能通过请求区分出两个服务。

java -jar XXX.jar

2.2、配置nginx负载均衡

和反向代理是同一个配置文件。

注意修改为自己的端口号

upstream:负载均衡配置,内部可以配多个server

proxy_pass:代理到hw这个负载均衡配置

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;upstream hw {  ## 负载均衡配置server 192.168.1.173:88;server 192.168.1.173:99;}server {listen       80;server_name  localhost;location / {proxy_pass http://hw;}}
}

修改完配置文件后,要重新加载一下配置文件

./nginx -s reload

配置成功后只需要打开一个网页端口,点击刷新可以切换两个项目内容,即配置成功。

2.3nginx的负载均衡的模式

1.轮询:平均分配,逐一做负载,是默认的方式

2.权重:可以设置一个权重值,让某一个服务被分配做负载的比例增大

【访问的时候,显示88 端口1次,99端口两次】(不够智能)

upstream hw {server 192.168.1.173:88 weight=1;server 192.168.1.173:99 weight=2;}

3.ip_hash:对发送请求过来的ip地址进行hash计算,得到值会分配给upstream中配置的服务,且相同的ip访问计算的结果相同,就会被分配到同一个服务中。【这样做的好处是,实现session共享的问题,可以保证同一个ip地址不会被负载均衡到其他项目里,而导致拿不到session。】

upstream hw {ip_hash;server 192.168.1.173:88;server 192.168.1.173:99;}

同一个IP,无论访问多少次,都是显示同一个内容。(不够智能)

http://www.lryc.cn/news/444849.html

相关文章:

  • SAP MIGO M7146不支持移动原因
  • vue使用PDF.JS踩的坑--部署到服务器上显示pdf.mjs viewer.mjs找不到资源
  • 重型工程车辆数据集
  • 【Kubernetes】常见面试题汇总(三十三)
  • ubuntu安装无线网卡驱动(非虚拟机版)
  • 保障电气安全的电气火灾监控系统主要组成有哪些?
  • gitlab集成CI/CD,shell方式部署
  • UE学习篇ContentExample解读-----------Blueprint_Mouse_Interaction
  • 得物App荣获新奖项,科技创新助力高质量发展
  • 傅里叶变换(对称美)
  • 基于单片机与 PC 机通信的数据采集控制系统设计
  • MyBatis参数处理
  • Beyond 5.5旗舰版和高级版激光软件
  • python爬虫/引用requests/基本使用
  • 输电线塔目标检测数据集yolo格式该数据集包括2644张输电线塔高清图像,该数据集已经过yolo格式标注,具有完整的txt标注文件和yaml配置文件。
  • MySQL之基本查询(二)(update || delete || 聚合函数 || group by)
  • 全栈开发(五):初始化前端项目(nuxt3+vue3+element-plus)+前端代理
  • Linux环境变量进程地址空间
  • C++读取txt文件中的句子在终端显示,同时操控鼠标滚轮(涉及:多线程,产生随机数,文件操作等)
  • Android 中使用高德地图实现根据经纬度信息画出轨迹、设置缩放倍数并定位到轨迹路线的方法
  • LeetCode从入门到超凡(二)递归与分治算法
  • superset 解决在 mac 电脑上发送 slack 通知的问题
  • SQL_UNION
  • 高等代数笔记(2)————(弱/强)数学归纳法
  • 模拟自然的本质:与IBM量子计算研究的问答
  • Robot Operating System——带有时间戳和坐标系信息的多边形信息
  • 内网穿透(当使用支付宝沙箱的时候需要内网穿透进行回调)
  • Contact Form 7最新5.9.8版错误修复方案
  • 【第十一章:Sentosa_DSML社区版-机器学习之分类】
  • kafka3.8的基本操作