Nginx反向代理和负载均衡

1.反向代理

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。通过在网络各处放置反向代理节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。

正向代理 :

加速器: 属于正向代理 雷神加速,在我自己的电脑上安装的,启动雷神软件, 雷神给我们访问蓝洞,从蓝洞拿到资源,再给我们。我们是知道蓝洞服务器的地址的。

反向代理:

我们开发了一个网站,但是总是收到别人的攻击, <www.laohan.com> 。 但是为了不让别人直接攻击我的服务器,我就做了一个代理服务器,nginx 。别人通过访问nginx就能代理到我的网址,其实他们是不知道我真正的服务器地址的,他们访问的只是我的nginx的地址。

一般会拿正向代理和方向代理来做对比,本质上来讲,就是看对谁负责

  • 反向代理:代理服务器是对服务器负责,站在服务器的一边的。

  • 正向代理:代理服务器是对客户端负责,站在客户端的一边的。

2.负载均衡

负载均衡是通过将请求分发到多个服务器来分摊服务器的负载,以提高整体性能和可用性。以下是使用Nginx进行负载均衡的一般步骤:

  1. 安装Nginx: 首先,确保在服务器上安装了Nginx。你可以使用系统的包管理工具(如apt、yum、brew等)进行安装。

    复制代码

    bashCopy code

    # 使用apt安装的例子(适用于Ubuntu) sudo apt-get update sudo apt-get install nginx

  2. 配置负载均衡: 修改Nginx的配置文件以定义负载均衡。配置文件通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf。以下是一个简单的负载均衡配置示例:

    复制代码

    nginxCopy code

    http { upstream backend { server backend1.example.com; server backend2.example.com; # 添加更多的后端服务器... } server { listen 80; location / { proxy_pass http://backend; } } }

    在上面的示例中,backend1.example.combackend2.example.com是你的后端服务器的地址。你可以根据需要添加更多的后端服务器。

  3. 重启Nginx: 在修改配置文件后,重新加载Nginx以使更改生效。

    复制代码

    bashCopy code

    sudo service nginx restart

    或者

    复制代码

    bashCopy code

    sudo systemctl restart nginx

  4. 验证负载均衡: 打开浏览器并访问Nginx服务器的IP地址或域名。由Nginx负载均衡器代理的请求将被分发到后端服务器。

这只是一个简单的负载均衡配置示例。Nginx支持多种负载均衡算法,如轮询、IP哈希、最小连接数等。你可以根据你的需求选择适当的负载均衡算法。此外,Nginx还支持SSL终结、健康检查等功能,以提高负载均衡的可用性和安全性。

请注意,以上配置是一个基本的示例,实际的配置可能因你的环境和需求而异。在生产环境中,确保按照最佳实践和安全性准则进行配置。

相关推荐
PcVue China2 小时前
PcVue + SQL Grid : 释放数据的无限潜力
大数据·服务器·数据库·sql·科技·安全·oracle
舞动CPU4 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
钰@5 小时前
小程序开发者工具的network选项卡中有某域名的接口请求,但是在charles中抓不到该接口
运维·服务器·小程序
wanhengwangluo5 小时前
云服务器和物理服务器的区别有哪些?
运维·服务器
扣得君7 小时前
C++20 Coroutine Echo Server
运维·服务器·c++20
keep__go8 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell
矛取矛求8 小时前
Linux中给普通账户一次性提权
linux·运维·服务器
Fanstay9858 小时前
在Linux中使用Nginx和Docker进行项目部署
linux·nginx·docker
jieshenai8 小时前
使用VSCode远程连接服务器并解决Neo4j无法登陆问题
服务器·vscode·neo4j
渗透测试老鸟-九青8 小时前
通过投毒Bingbot索引挖掘必应中的存储型XSS
服务器·前端·javascript·安全·web安全·缓存·xss