Linux-Nginx反向代理

news/2024/11/26 0:00:58/

文章目录

      • 反向代理
      • 负载均衡

https://i-blog.csdnimg.cn/blog_migrate/58966ddd9b29aabe8841f5ec34f0d31c.gif

🏡作者主页:点击!

🤖Linux专栏:点击!

⏰️创作时间:2024年11月24日10点32分

在这里插入图片描述

反向代理

虚拟主机 1 为虚拟主机 3 提供代理服务

vi /etc/nginx/conf.d/vhost.confserver{listen 81;    #监听81端口server_name localhost;    #域名为www.test.comlocation / {    #任意匹配proxy_pass http://127.0.0.1:83;    #开启代理,并为主机3提供代理服务#root /data/Nginx1;    #主目录为#index index.html;    #默认页面为index.html}}	server{listen 83;    #监听83端口server_name localhost;    #域名为www.test.comlocation / {    #任意匹配root /data/nginx3;    #主目录为index index.html;    #默认页面为index.html}}nginx -s reloadcurl localhost:81    #此时直接返回 nginx3 的内容

虚拟主机1为虚拟主机2作代理

vi /etc/nginx/conf.d/vhost.confserver{listen 81;    #监听81端口server_name localhost;    #域名为www.test.comlocation /nginx1 {    #匹配nginx1proxy_pass http://127.0.0.1:82/nginx2;    #开启代理,并为主机3提供代理服务#root /data/Nginx1;    #主目录为#index index.html;    #默认页面为index.html}}	server{listen 82;    #监听82端口server_name localhost;    #域名为www.test.comlocation /nginx2 {    #意思是精准匹配/nginx2/index.htmlalias /data/nginx2/index.html;    #别名为/data,此时alias为绝对路径,root为相对路径index index.html;    #默认页面为index.html}}server{listen 83;    #监听83端口server_name localhost;    #域名为www.test.comlocation / {    #任意匹配root /data/nginx3;    #主目录为index index.html;    #默认页面为index.html}}nginx -s reload    #重新加载curl localhost:81/nginx1    #之后就返回了 nginx2 的页面信息

负载均衡

体验场景,不建议在工作中使用

cd /data
mv Nginx1 nginx1    #将文件名恢复vi /etc/nginx/conf.d/vhost.confserver{listen 81;    #监听81端口server_name localhost;    #域名为www.test.comlocation / {    # / 意思是随意匹配root /data/nginx1;    #主目录为 Nginx1index index.html;    #默认页面为index.html}}server{listen 82;    #监听82端口server_name localhost;    #域名为www.test.comlocation / {    # / 意思是随意匹配root /data/nginx2;    #主目录为 Nginx2index index.html;    #默认页面为index.html}}server{listen 83;    #监听83端口server_name localhost;    #域名为www.test.comlocation / {    # / 意思是随意匹配root /data/nginx3;    #主目录为 Nginx3index index.html;    #默认页面为index.html}}nginx -t    #检查 Nginx 服务
nginx -s reload    #重新加载服务curl localhost:81
curl localhost:82
curl localhost:83    #必须全部访问正常#编辑负载均衡文件vi /etc/nginx/conf.d/lb.confupstream www.test.com{    #创建虚拟主机组,包含三个主机,分别监听 81 82 83 三个端口server localhost:81;server localhost:82;server localhost:83;}server{    #定义了一个接受所有请求的模块location / {    #通用匹配,加上反向代理,请求的url能匹配上这个location Nginx就会把请求代理到www.test.comproxy_pass http://www.test.com;    #Nginx会根据上游服务器的健康状况来选择一个服务器来处理请求,如果												一个不能工作,Nginx也会把请求自动转发到可以工作的服务器上面}}nginx -s reload    #保存并重新加载配置vi /etc/hosts
127.0.0.1    www.test.comcurl www.test.com
curl www.test.com
curl www.test.com    #每次返回的数据都不一样,由服务器轮流返回数据,这就是负载均衡配置
#补充权重值,来选择哪个优先转发
vi /etc/nginx/conf.d/lb.confupstream www.test.com{server localhost:81 weight=2;server localhost:82 weight=1;}:wqnginx -s reload    #重新加载curl www.test.com    #配置监听81端口的主机返回的次数比较多,使用 curl 命令进行测试
#设置备用服务器
vi /etc/nginx/conf.d/lb.confupstream www.test.com{server localhost:81 backup;    #将主机1设置为备用服务器server localhost:82;server localhost:83;}:wqnginx -s reload    #重新加载curl www.test.com    #此时主机1成为备用服务器,不会再回答,主要由主机2和主机3回答
#启用备用服务器
vi /etc/nginx/conf.d/lb.confupstream www.test.com{server localhost:81 backup;    #将主机1设置为备用服务器server localhost:82 down;    #将主机2和主机3手动 down 掉server localhost:83 down;}:wqnginx -s reload    #重新加载curl www.test.com    #此时主机1成为唯一的一台服务器
#启用down掉的服务器
vi /etc/nginx/conf.d/lb.confupstream www.test.com{server localhost:81 backup;    #将主机1设置为备用服务器server localhost:82;    #将主机3手动 down 掉server localhost:83 down;}:wqnginx -s reload    #重新加载curl www.test.com    #此时主机2成为唯一的一台服务器,主机1为备用服务器

http://www.ppmy.cn/news/1549945.html

相关文章

【创建型设计模式】单例模式

【创建型设计模式】单例模式 这篇博客接下来几篇都将阐述设计模式相关内容。 接下来的顺序大概是:单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。 一、什么是单例模式 单例模式是一种创建型设计模式,它保证一个类仅有一个实例&#…

Linux---ps命令

​​​​​​Linux ps 命令 | 菜鸟教程 (runoob.com) process status 用于显示进程的状态 USER: 用户名,运行此进程的用户名。PID: 进程ID(Process ID),每个进程的唯一标识号%CPU: 进程当前使用的CPU百分比%MEM: 进程当前使用的…

【网络云计算】2024第47周-每日【2024/11/21】周考-实操题-RAID6实操解析3

文章目录 一、标记故障磁盘二、移除故障磁盘三、添加备用磁盘四、监控数据重建过程五、验证RAID配置和数据完整性注意事项 使用 mdadm命令将故障磁盘替换为备用磁盘,并恢复数据的过程大致如下: 一、标记故障磁盘 检查RAID状态: 首先&#xf…

D74【 python 接口自动化学习】- python 基础之HTTP

day74 http基础定义 学习日期:20241120 学习目标:http定义及实战 -- http基础介绍 学习笔记: HTTP定义 HTTP 是一个协议(服务器传输超文本到浏览器的传送协议),是基于 TCP/IP 通信协议来传递数据&…

FPGA经验谈系列文章——8、复位的设计

前言 剑法往往有着固定的招式套路,而写代码似乎也存在类似的情况。不知从何时起,众多 FPGA 工程师们在编写代码时开启了一种关于 always 语句块的流行写法,那就是: always @(posedge i_clk or negedge i_rstn) 就笔者所经历的诸多项目以及所接触到的不少工程师而言,大家在…

STM32总体架构简单介绍

目录 一、引言 二、STM32的总体架构 1、三个被动单元 (1)内部SRAM (2)内部闪存存储器 (3)AHB到APB的桥(AHB to APBx) 2、四个主动(驱动)单元 &#x…

Day03_AJAX原理 (黑马笔记)

Day03_AJAX原理 目录 Day03_AJAX原理 学习目标 01.XMLHttpRequest - 基础使用 目标 讲解 小结 02.XMLHttpRequest - 查询参数 目标 讲解 小结 03.案例 - 地区查询 目标 讲解 小结 04.XMLHttpRequest - 数据提交 目标 讲解 小结 05.认识_Promise 目标 讲解…

selenium grid 远程webdriver添加上网代理

################## selenium grid config start ####################### # UI自动化测试策略 Grid/Local UIAutomation_TestStrategy Grid selenium_grid_url http://172.16.99.131:4444/wd/hub # Windows XP / linux grid_platformName linux # windows capabilities win…