内网穿透、nginx(负载均衡、动静分离),闭关60天学懂NDK+Flutter

代理其实就是一个中介,A和B本来可以直连,中间插入一个C,C就是中介。
刚开始的时候,代理多数是帮助内网client访问外网server用的
后来出现了反向代理,"反向"这个词在这儿的意思其实是指方向相反,即代理将来自外网客户端的请求转发到内网服务器,从外到内。

正向代理

正向代理类似一个跳板机,代理访问外部资源

比如我们国内访问谷歌,直接访问访问不到,我们可以通过一个正向代理服务器,请求发到代理服,代理服务器能够访问谷歌,这样由代理去谷歌取到返回数据,再返回给我们,这样我们就能访问谷歌了

\*\*正向代理的用途\*\*
1 访问原来无法访问的资源,如google
2 可以做缓存,加速访问资源
3 对客户端访问授权,上网进行认证
4 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
5 代理中间进行拦截,可以进行访问控制,限制客户端对内部网络资源的访问。

在这里插入图片描述
反向代理

反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

反向代理的作用

1 保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网
2 负载均衡,通过反向代理服务器来优化网站的负载
3 可以进行会话保持,确保客户端请求连续发送到同一个后端服务器上,保证用户体验。
4 可以进行 SSL 加密和解密,提高数据传输的安全性。
5 可以通过 CDN 等手段优化网络带宽使用,提高客户端访问速度。

在这里插入图片描述

2.2 nginx介绍

主要功能有:
反向代理

做请求转发。用户发送了一个http请求,nginx代理服务器接收请求,然后将请求转发给内部网络上的服务器,
并将从服务器上得到的结果返回给internet上请求连接的客户端。

负载均衡

负载均衡:多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,
减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。

动静分离

Nginx提供的动静分离是指把动态请求和静态请求分离开,合适的服务器处理相应的请求,
使整个服务器系统的性能、效率更高。

Nginx可以根据配置对不同的请求做不同转发,这是动态分离的基础。静态请求对应的静态资源可以直接放在Nginx上做缓冲,更好的做法是放在相应的缓冲服务器上。动态请求由相应的后端服务器处理。

2.3 nginx负载均衡

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

单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器
闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。

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

nginx的负载均衡

所谓负载均衡,就是 Nginx 把请求均匀的分摊给上游的应用服务器,这样即使某一个服务器宕机
也不会影响请求的处理,或者当应用服务器扛不住了,可以随时进行扩容。

# 1: 在server外面增加配置upstream
upstream 名字 {
    server 127.0.0.1: 8080;
    server 127.0.0.1: 8081;
}

# 2: 指定上游名字,则会随机选择其中一个转发。
location / {
    include uwsgi\_params;
    uwsgi\_pass 名字;
}

负载均衡策略:https://www.cnblogs.com/liuqingzheng/p/16322504.html

2.4 nginx动静分离

是一种通过配置nginx服务器,将静态资源和动态资源分别存放在不同的服务器或路径上,
以提高网站的性能和并发访问能力。把后端所有的静态文件收集起来,用nginx转发。

http {
  server {
    listen 80;
    server\_name example.com;
 
    # 配置动态请求的转发
    location ~\* \.php$ {
      proxy\_pass http://dynamic\_backend\_server;
    }
 
    # 配置静态资源的处理
    location /static/ {
      root /path/to/static/folder;
      expires 7d;
      access\_log off;
    }
 
    # 配置其它静态资源的处理
    location /images/ {
      root /path/to/images/folder;
      expires 30d;
      access\_log off;
    }
  }
}


在上述配置中,动态请求(以.php结尾的请求)会被转发给名为dynamic_backend_server的后端服务器处理,而静态资源则会由nginx自身根据不同的URL路径进行处理。可以根据实际需求,将不同的静态资源放置在不同的路径或服务器上,并配置相应的location规则。

3 wsgi uwsgi uWSGI,cgi,fastcgi 分别是什么?

CGI:通用网关接口(Common Gateway Interface/CGI),CGI描述了服务器(nginx,apache)
和请求处理程序(django,flask,springboot web框架)之间传输数据的一种标准

所有bs架构软件都是遵循CGI协议的
一句话总结: 一个标准,定义了客户端服务器之间如何传数据
FastCGI:快速通用网关接口(Fast Common Gateway Interface/FastCGI)是一种让交互程序与Web服务器通信的协议。FastCGI是早期通用网关接口(CGI)的增强版本

FastCGI致力于减少网页服务器与CGI程序之间互动的开销,从而使服务器可以同时处理更多的网页请求
常见的fastcgi服务器:Apache,Nginx,Microsoft IIS
CGI的升级版
WSGI:Python Web Server Gateway Interface,缩写为WSGI,Python定义的Web服务器(比如uWSGI) 和Web应用程序或框架(比如django)之间的一种通用的接口规范

一句话总结:为Python定义的web服务器和web框架之间的接口标准
uWSGI:符合wsgi协议的 web服务器,用c写的,性能比较高,咱们通常用来部署django,flask

一句话总结:一个Web Server(web服务器),即一个实现了WSGI协议的服务器,处理发来的请求及返回响应。
uWSGI:项目上线使用的web服务器
wsgiref:测试阶段使用的
uwsgi:uWSGI服务器实现的独有的协议,用于定义传输信息的类型,是用于前端服务器与 uwsgi 的一种线路协议

一句话总结: uWSGI自有的一个协议

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值