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终结、健康检查等功能,以提高负载均衡的可用性和安全性。

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

相关推荐
灰勒塔德5 分钟前
Linux文件IO
linux·运维·服务器
我曾经是个程序员35 分钟前
C#Directory类文件夹基本操作大全
服务器·开发语言·c#
地球资源数据云1 小时前
全国30米分辨率逐年植被覆盖度(FVC)数据集
大数据·运维·服务器·数据库·均值算法
BUG 4042 小时前
LINUX--shell
linux·运维·服务器
菜鸟小白:长岛icetea2 小时前
Linux零基础速成篇一(理论+实操)
linux·运维·服务器
过过过呀Glik3 小时前
在 Ubuntu 服务器上添加和删除用户
linux·服务器·ubuntu
Java小白中的菜鸟5 小时前
centos7的磁盘扩容
linux·运维·服务器
黑客老陈6 小时前
面试经验分享 | 北京渗透测试岗位
运维·服务器·经验分享·安全·web安全·面试·职场和发展
橘子师兄6 小时前
如何在自己的云服务器上部署mysql
运维·服务器·mysql
@泽栖6 小时前
Docker 常用命令
运维·服务器·docker