首页 > 系统相关 >Nginx从入门到入土(三): 静态资源管理与代理服务

Nginx从入门到入土(三): 静态资源管理与代理服务

时间:2024-09-19 18:22:43浏览次数:8  
标签:负载 127.0 代理服务 0.1 代理 Nginx 服务器 资源管理 客户端

软负载和硬负载的区别

软负载均衡是通过在服务器上运行的软件应用程序来实现负载均衡的。这些软件可以是开源的,如Nginx、HAProxy,也可以是商业产品。

工作原理:

  • 运行环境: 软件负载均衡器通常运行在标准的物理服务器或虚拟机上。
  • 流量分配: 它通过软件算法来分析传入的网络请求,并根据预定的规则(如轮询、最小连接数、IP哈希等)将请求分发到后端服务器。
  • 可扩展性: 软件负载均衡器可以根据需要轻松添加或移除节点,通常与云服务兼容,支持自动扩展。
  • 成本: 相对于硬件负载均衡器,软件负载均衡器通常成本较低,特别是开源解决方案。

特点:

  • 灵活性: 软件负载均衡器易于配置和定制,可以快速适应不同的应用场景。
  • 性能: 性能取决于运行软件的服务器硬件,对于高流量的应用可能会有性能瓶颈。
  • 故障恢复: 通常依赖于服务器自身的冗余机制和高可用性配置。

硬负载均衡是通过专门的硬件设备来实现负载均衡的。这些设备通常由网络设备制造商提供,如F5 Networks的BIG-IP系列产品。

工作原理:

  • 专用硬件: 硬件负载均衡器是专门设计用于处理网络流量的硬件设备,具有高性能的网络处理器和优化的操作系统。
  • 流量分配: 硬件负载均衡器同样使用算法来分配流量,但通常提供更高级的功能,如SSL终止、压缩、数据缓存等。
  • 可扩展性: 硬件负载均衡器通常具有固定的处理能力,扩展需要购买额外的硬件设备。
  • 成本: 硬件负载均衡器成本较高,但提供了高性能和稳定性。

特点:

  • 高性能: 硬件负载均衡器设计用于处理高流量,通常具有更好的吞吐量和较低的延迟。
  • 可靠性: 硬件设备通常具有冗余电源、风扇和硬件组件,以提高可靠性。
  • 安全性: 硬件负载均衡器可能提供更高级的安全特性,如防火墙、DDoS防护等。

基于Nginx存放HTML静态资源

总的来说就是在html文件夹下面放置项目的静态资源文件,需要的时候调用。 

 

1. 在html文件夹下面创建两个文件夹,分别对应创建两个html文件。

2. 在hosts文件夹下面((一)中提到过)配置上相关的域名

为什么要配置不同的域名:项目中会根据业务分域名,每个子项目都是有自己的独立的团队的域名

例如  处理会员业务的团队域名member.boyatop.cn ;处理支付业务的团队域名order.boyatop.cn

3.修改nginx访问的端口与服务名称 

(conf文件允许多个server存在)

 在原有的server下面新添加两个server

listen:监听的端口

server_name:访问的服务名称,与host文件相匹配。

location  / : 用于匹配对 Web 服务器根目录(即域名后面的第一个 /)的请求

root :存放静态资源的目录相对路径

index:静态资源文件的名称  例如上图下面那个server里的内容应该修改成order.html

4.开启服务器防火墙,开放端口

 如果没有,就添加规则,添加你想要的端口

开启成功: 

5.在地址栏输入127.0.0.1:+你的端口

即可显示,没有显示的出来可以后台查看nginx是否正常运行等等

网页源代码:

成功页面: 

 基于nginx的反向代理/正向代理

反向代理

见图思义

客户端请求到达Nginx代理服务器,再通过代理服务器转发到后端服务器。

可以看到两个服务器都有各自的ip。反向代理的好处之一就是隐藏后端服务器的IP地址,由nginx代为转发

通过下面一个例子来验证:(先演示再解释)

1.打开nginx.conf文件

可以看到我们设置的服务名为www.boyatop.cn,要代理的服务器ip为127.0.0.1:8071/

确保你在host文件里面设置了127.0.0.1 www.boyatop.cn

2.启动nginx,防火墙没起的起防火墙等等(具体见小编的前两节)

第一篇文章中写过一个本地程序,端口起的是8071,也就是说能通过127.0.0.1:8071访问

如果访问的是“127.0.0.1:8071/ ”则走下面,输出Hello World!

如果访问的是“127.0.0.1:8071/getBoyatop” 则走上面,输出Hello World Nginx8071!!!!

3.在浏览器地址栏里输入 www.noyatop.cn:8070

跳到了我们通过127.0.0.1:8071/ 才能访问到的页面,8071也是能访问的

缘由,什么是反向代理??? 

  • 反向代理:Nginx作为代理服务器,接收客户端的请求,然后将请求转发到实际处理请求的服务器(本例中是运行在127.0.0.1:8080的服务器)。客户端不需要知道后端服务器的具体位置,对外表现就像是直接与Nginx进行交互。

体现在以下几个方面:

  1. URL隐藏:客户端访问的是www.boyatop.cn:8070,但实际处理请求的服务器地址是127.0.0.1:8071。客户端不会直接与后端服务器通信,因此后端服务器的地址被隐藏起来。

  2. 请求转发:Nginx配置中的proxy_pass指令指示Nginx将匹配到/的请求转发到127.0.0.1:8071。我们的Nginx配置是这样的:

    server {
        listen  8070;
        server_name www.boyatop.cn;
        
        location / {
            proxy_pass http://127.0.0.1:8071/;
            # 其他可能需要的代理设置...
        }
    }
    

    当请求www.boyatop.cn:8070时,Nginx会将请求转发到127.0.0.1:8071

  3. URL重写:在某些配置中,我们可以调整proxy_pass指令后的URL路径,以确保请求的URI正确地传递到后端服务器。例如,我们的proxy_pass指令也可以是这样的:

    proxy_pass http://127.0.0.1:8071/getBoyatop;
    

    那么请求www.boyatop.cn:8070会被转发到http://127.0.0.1:8071/getBoyatop

  4. 响应返回:后端服务器处理完请求后,将响应返回给Nginx,然后Nginx再将响应返回给客户端。客户端看到的始终是来自www.boyatop.cn:8070的响应,而不会知道实际上是由127.0.0.1:8071提供的内容。

通过这种方式,Nginx不仅可以实现反向代理,还可以提供负载均衡、SSL终止、缓存静态内容等附加功能。

当然负载均衡会在下面提到。

正向代理

是在用户端的,比如需要访问某些国外网站 ,例如Github。在相关部门的允许下,我们可以使用VPN,并且VPN是在我们的用户浏览器端设置的(并不是在远端的服务器设置)。浏览器先访问vpn地址,vpn地址转发请求,并最后将请求结果原路返回回来。

正向代理与反向代理的区别 

正向代理隐藏用户的真实行为,反向代理隐藏真实服务器

正向代理

  1. 服务的对象是客户端:正向代理服务器代表客户端发送请求,客户端知道代理的存在,并且通常需要配置代理设置。
  2. 隐藏客户端身份:正向代理可以隐藏客户端的真实IP地址,使服务器无法直接知道客户端的IP。
  3. 突破访问限制:正向代理可以用于绕过网络访问限制,比如翻墙访问被限制的网站。
  4. 缓存和加速:正向代理可以缓存常用资源,加快客户端访问速度。
  5. 安全性较低:由于客户端配置了代理,如果代理不安全,客户端的信息可能会泄露。

反向代理

  1. 服务的对象是服务器:反向代理服务器代表服务器接收客户端的请求,客户端通常不知道代理的存在。
  2. 隐藏服务器身份:反向代理可以隐藏服务器的真实IP地址和端口,提高服务器安全性。
  3. 负载均衡:反向代理可以分发请求到不同的后端服务器,实现负载均衡,提高服务的可用性和可靠性。
  4. SSL终止:反向代理可以处理SSL加密连接,减轻后端服务器的负担。
  5. 缓存和加速:反向代理可以缓存静态内容,加速内容的交付。
  6. 安全性较高:由于客户端不知道后端服务器的具体信息,因此反向代理可以作为一种安全措施,保护后端服务器免受直接攻击。

标签:负载,127.0,代理服务,0.1,代理,Nginx,服务器,资源管理,客户端
From: https://blog.csdn.net/rc1596919047/article/details/142341864

相关文章

  • 通过nginx搭建文件服务器
    1.先配置nginx,配置代理,根据路径跳转到linux存放共享文件目录:autoindexon;#显示目录autoindex_exact_sizeon;#显示文件大小,这个变量控制文件大小精确展示还是友好展示,on精确展示,展示的是字节数,false展示的是MBautoindex_localtimeon;#显示文件时间server{ listen......
  • 全网最简单ubuntu18.04+mysql5.7+nginx+uwsgi一次性部署Django!!!!!
    ubuntu18.04,自带python3.6,mysql5.7 Nginx*******************************1.安装nginx apt-getupdate apt-getupgrade apt-getinstallnginx 2.修改端口为81(可选),是一个链接 /etc/nginx/sites-enabled/default3.servicenginxreload4.servicenginx......
  • Nginx配置
    终极Nginx配置指南(全网最详细)前言对于自己上线项目的前端来说,nginx也是必须要了解和熟悉的,查了很多的nginx文章,看着写的都很详细,但是却没有了整体的概念。这里就重新梳理一遍,也理清思路。我们在安装nginx之后,会自动生成很多的文件,但是nginx.conf这个文件是我们的核心,如......
  • springboot人力资源管理系统-计算机毕业设计源码28241
    摘要人力资源管理对于企业的发展和成功至关重要。随着企业规模的扩大和组织结构的复杂化,传统的人力资源管理方法已经无法满足日益增长的需求。因此,许多企业开始采用信息化系统来支持人力资源管理流程,提高效率、准确性和数据可靠性。本研究旨在基于SpringBoot开发一款全功能......
  • 怎么使用Nginx反向代理Rancher
    环境查看系统环境#cat/etc/redhat-releaseRockyLinuxrelease9.4(BlueOnyx)#uname-a#1SMPPREEMPT_DYNAMICThuSep1218:24:53UTC2024x86_64x86_64x86_64GNU/Linux软件环境#nginx-versionnginxversion:nginx/1.26.2Nginx配置文件已经搭建好R......
  • 怎么使用nginx把80端口代理到想要的端口?
    最近研究了一下云服务器搭建Halo博客,为了好好体验开发者的快乐,所以我把之前装的Hexo博客直接干掉了,重装了系统,宝塔面板也决定弃用。因为使用宝塔面板虽然能省不少事,但是没了宝塔还活不了了?这可不行,所以决定自己配置,下面来看看URL搜索怎么绑定的吧:前提是域名和公网IP已经绑......
  • 多线程下载nginx站点目录下文件
    代码如下importosimporttimeimportrequestsfrombs4importBeautifulSoupfromurllib.parseimporturljoinfromconcurrent.futuresimportThreadPoolExecutor,as_completedfromtqdmimporttqdmbase_url=""#要下载文件的基础URLdownload_dir="&......
  • Nginx-HTTP和反向代理web服务器
    概述Nginx(enginex)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。其将源代码以类BSD许可证的形式发布,因它的稳......
  • 基于Java+Vue+Mysql的人力资源管理系统:简单易用,高效协同(项目源码分享)
      前言:eHR(ElectronicHumanResources)人力资源管理系统是一个综合性的软件平台,用于管理组织的人力资源相关的各种活动和数据。该系统可以显著提高人力资源部门的工作效率,确保数据准确性和一致性,同时提供决策支持。以下是eHR人力资源管理系统的六个主要模块及其功能的简要介......
  • nginx配置的简单介绍
    Nginx基础使用目录结构进入Nginx的主目录我们可以看到这些主要文件夹confhtmllogssbinconf用来存放配置文件相关html用来存放配置文件相关sbinnginx的主程序Nginx配置与应用场景最小配置worker_processesworker_processes1;默认为1,表示开启一个业务......