Nginx网络服务六-----IP透传、调度算法和负载均衡

1.实现反向代理客户端 IP 透传

就是在日志里面加上一个变量

Module ngx_http_proxy_module

[root@centos8 ~]# cat /apps/nginx/conf/conf.d/pc.conf
server {
 listen 80;
 server_name www.kgc.org;
 location / {
   index index.html index.php;
   root /data/nginx/html/pc;
   proxy_pass http://10.0.0.18;
    #proxy_set_header X-Real-IP $remote_addr;                   #只添加客户端IP到请求报文头部,转发至后端服务器
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #添加客户端IP和反向代理服务器IP到请求报文头部
 }
}
#重启nginx
[root@centos7 ~]#systemctl restart nginx
#后端Apache配置:
[root@centos7 ~]#vim /etc/httpd/conf/httpd.conf
 LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
#重启apache访问web界面并验证apache日志
 [root@centos8 ~]#cat /var/log/httpd/access_log
10.0.0.1 10.0.0.8 - - [05/Mar/2019:00:40:46 +0800] "GET / HTTP/1.0" 200 19 "-"
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/72.0.3626.119 Safari/537.36"

#Nginx配置:
[root@centos8 conf.d]# cat /apps/nginx/conf/nginx.conf
"$http_x_forwarded_for"' #默认日志格式就有此配置
#重启nginx访问web界面并验证日志格式:
10.0.0.8 - - [04/Mar/2019:16:40:51 +0800] "GET / HTTP/1.0" 200 24 "-"
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/72.0.3626.119 Safari/537.36" "10.0.0.1"

nginx已经可以看到了

 先看主配置文件中  /apps/nginx/conf/nginx.conf

 在看日志配置文件  /apps/nginx/logs/access.log

日志变量简单介绍 

1.1实验:单机去传

###7-1,7-3为nginx

###7-2为apache

###7-2是apache

tail   -f   /etc/httpd/logs/access_log

###实时看日志

1.先在 7-1 自己的文件中写内容

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#添加客户端IP和反向代理服务器IP到请求报文头部

2.在 7-2 的日志主配置文件中写内容

vim   /etc/httpd/conf/httpd.conf

3.用7-3访问,然后看7-2的日志

1.2实验:多机去传

三台主机均为nginx服务

1.将7-2转为nginx服务

发生的一个小错误,跳转到下面的  ”小问题解决“  去看

2.然后开启nginx服务

3.编辑内容

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#添加客户端IP和反向代理服务器IP到请求报文头部

4.去7-1访问一下

5.浏览器访问,看日志信息

三个地址我们都能看到,这就是IP透传

2.http反向代理负载均衡

在上一个节中Nginx可以将客户端的请求转发至单台后端服务器但是无法转发至特定的一组的服务器,而且不能对后端服务器提供相应的服务器状态监测,Nginx 可以基于ngx_http_upstream_module模块提供服务器分组转发、权重分配、状态监测、调度算法等高级功能

官方文档: https://nginx.org/en/docs/http/ngx_http_up

2.1轮询

1.给7-3和7-2网页编辑内容

我们做实验,为了看到效果,所以内容不一样

真实环境中,内容是一样的

2.在7-1的主配置文件下写内容

下面图标错了,是7-1!!!

 

3.在7-1中访问

4.当我们把7-3nginx服务停掉

5.把7-3nginx开启

2.2加权轮询

1.编辑主配置文件

2.访问,查看结果

2.3参数解析

max_fails=3 ###连你3次,没反应就认为你死了

fail_timeout=30 ###上线后,给一个延迟时间30s,然后再连你

max_conns=10 ###最大连接数,只给你连10个

backup  #设置为备份服务器,当所有后端服务器不可用时,才会启用此备用服务器 sorry server   自己不能转自己 

2.4设置备胎

1.编辑主配置文件

2.curl访问看结果

3.停掉7-2服务

2.5hash

1.写配置文件内容

2.访问看结果

缺点:和你的权重有关(weight),当你改变权重,会改变他的地址

2.6url  hash

1.改配置文件

2.访问看结果

实现每个url定向到同一个后端服务器

2.7cookie  hash

1.编辑主文件

2.看结果 

3.换一下data

-b name=data 从服务器响应set-cookie得到值,返回给服务器

2.8ip  hash

1.修改主配置文件

2.curl访问看结果

3.四层代理

stream

###用的四层,只能控制tcp、udp(实现反向代理功能,包括TCP协议代理)

安装redis

小问题解决

在我们安装了apache(httpd)的情况下;当我们想装nginx,发现开启报错

 1.当我们开启服务到时候,查看日志报错信息:我们80端口被占用

一台主机只能给一个服务提供80端口,当有两台服务都是80,就会报错,只能开一台服务 

如果想用两个服务,可以去其中一个服务下的主配置文件中,更改他的端口号 

这样两项服务都可以一起开启了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/707621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BLEU: a Method for Automatic Evaluation of Machine Translation

文章目录 BLEU: a Method for Automatic Evaluation of Machine Translation背景和意义技术原理考虑 n n n - gram中 n 1 n1 n1 的情况考虑 n n n - gram中 n > 1 n\gt 1 n>1 的情况考虑在文本中的评估初步实验评估和结论统一不同 n n n 值下的评估数值考虑句子长度…

从C到C++

二、从C到C 本章介绍一些C拓展的非面向对象功能。 引用&#xff08;掌握&#xff09; 1.1 概念 引用从一定程度上讲是一个指针的平替&#xff0c;几乎被所有面向对象编程语言所使用。引用相当于对某一个目标变量起”别名“。 操作引用与操作原变量完全一样。 #include <iost…

如何获取Header??

两种获取Header的方式&#xff1a; 原始方式&#xff1a; RestController RequestMapping("/param") public class ParamController {//如何获取HeaderRequestMapping("/getHeader")public String getHeader(HttpServletRequest request){String userAge…

springboot之jdbc、druid、mybatis

springboot整合jdbc spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.52.3:3306/mybatis?useUnicodetrue&characterEncodingutf-8&serverTimezoneUTCusername: rootpassword: root<?xml version"1.0" encodi…

trie树(前缀树)

前缀树 1. 前缀树的的介绍2.前缀树的实现2.1插入功能2.2删除功能2.3查找前缀和查找单词功能2.4 哈希表版本 1. 前缀树的的介绍 在计算机科学中&#xff0c;trie&#xff0c;又称前缀树或字典树&#xff0c;是一种有序树&#xff0c;用于保存关联数组&#xff0c;其中的键通常是…

MarkDown实用技巧:MarkDown中如何实现换行?

MarkDown实用技巧&#xff1a;MarkDown中如何实现换行&#xff1f; &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 &#x1f448; 希望…

计讯物联5G RedCap网关TG463化繁为简,推动5G赋能千行百业

5G RedCap&#xff0c;全称为Reduced Capability&#xff0c;即在5G的基础上&#xff0c;对部分功能进行化繁为简后形成的新技术标准&#xff0c;故又称轻量化5G。作为高性价比下的精简技术&#xff0c;5G RedCap技术具备成本低、低功耗、兼顾5G等特点&#xff0c;能够在确保应…

【Android安全】Windows 环境下载 AOSP 源码

准备环境 安装 git 安装 Python 硬盘剩余容量最好大于 800G 打开 Git Bash&#xff0c;用 git 克隆源代码仓库 git clone https://android.googlesource.com/platform/manifest.git //没有梯子使用清华源 git clone https://aosp.tuna.tsinghua.edu.cn/platform/manifest.git这…

代码随想录算法训练营第36天 | 738.单调递增的数字 ,968.监控二叉树

贪心算法章节理论基础&#xff1a; https://programmercarl.com/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 738.单调递增的数字 题目链接&#xff1a;https://leetcode.cn/problems/monotone-increasing-digits/ 思路&#xff1a; …

论文精读--VAE

自编码器(Auto-Encoder)是学一个特征能够代表输入的图像 而VAE则为数据的隐变量加上先验——将隐变量限制为一个标准正态分布&#xff0c;也就是学一个具有代表性的分布 Abstract How can we perform efficient inference and learning in directed probabilistic models, in…

git忽略某些文件(夹)更改方法

概述 在项目中,常有需要忽略的文件、文件夹提交到代码仓库中,在此做个笔录。 一、在项目根目录内新建文本文件,并重命名为.gitignore,该文件语法如下 # 以#开始的行,被视为注释. # 忽略掉所有文件名是 a.txt的文件. a.txt # 忽略所有生成的 java文件, *.java # a.j…

Time Travel

题目链接 解题思路 由于所有边集中的边加起来的总和至多为&#xff0c;无向图即&#xff0c;可以存下所以直接对所有边集中的边进行建边&#xff0c;同时对于每条边&#xff0c;记录其所在边集号对于每个边集&#xff0c;由大到小维护其能通过的时间点然后从1号跑最短路到当前…

高级语言期末2011级A卷(软件学院)

1.编写函数&#xff0c;判定正整数m和n&#xff08;均至少为2&#xff09;是否满足&#xff1a;数m为数n可分解的最小质因数&#xff08;数n可分解的最小质因数为整除n的最小质数&#xff09; 提示&#xff1a;判定m为质数且m是n的最小因数 #include <stdio.h> #include…

DiffiT | 英伟达提出用于图像生成的扩散ViT架构DiffiT,达成新SOTA!

本文首发于AIWalker&#xff0c;欢迎关注。 https://arxiv.org/abs/2312.02139 https://github.com/NVlabs/DiffiT 扩散模型以其强大的表达能力和高样本质量在许多领域得到了新的应用。对于样本生成&#xff0c;这些模型依赖于通过迭代去噪生成图像的去噪神经网络。然而&#…

坚持刷题|二叉树展开为链表

文章目录 题目考察点代码实现实现总结扩展问题用递归的方式实现在展开二叉树为链表的过程中&#xff0c;递归和迭代两种方法各有什么优缺点&#xff1f;可能的扩展问题 Hello&#xff0c;大家好&#xff0c;我是阿月。坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;今天刷&…

LTD营销枢纽2023年度功能升级回顾

在过去的2023年&#xff0c;我们的团队致力于不断进步和创新。经过一年的不懈努力&#xff0c;我们共发布了50次的系统升级&#xff0c;引入了16种全新的解决方案与业务应用&#xff0c;并实施了1363项各类细致优化。 这些更新和改进不仅在我们的营销枢纽系统现有功能的基础上实…

35岁程序员,深入理解JVM的核心知识点

网络&#xff1a;分层模型、TCP、UDP、HTTP、HTTPS 分层模型 应用层&#xff1a;负责处理特定的应用程序细节&#xff0c;如 HTTP、FTP、DNS运输层&#xff1a;为两台主机提供端到端的基础通信&#xff0c;如 TCP、UDP网络层&#xff1a;控制分组传输、路由选择等&#xff0c…

【大数据架构(1)】Lambda Architecture – Realtime Data Processing 论文重点翻译

文章目录 1. INTRODUCTION2. LAMBDA ARCHITECTUREA) BATCH LAYERB) SPEED LAYERC) SERVICE LAYER 3. LIMITATIONS OF THE TRADITIONAL LAMBDAARCHITECTURE4. A PROPOSED SOLUTION1. 架构说明2. 前后架构改进对比 1. INTRODUCTION Lambda架构背后的需求是由于虽然MR能够处理大数…

SpringBoot+PDF.js实现按需分片加载预览(包含可运行示例源码)

SpringBootPDF.js实现按需分片加载预览 前言分片加载的效果前端项目前端项目结构前端核心代码前端项目运行 后端项目后端项目结构后端核心代码后端项目运行 项目运行效果首次访问分片加载 项目源码 前言 本文的解决方案旨在解决大体积PDF在线浏览加载缓慢、影响用户体验的难题…

Fabric V2.5 通用溯源系统——区块链部分设计

本节对Fabric V2.5 通用溯源系统的区块链部分做一个简单的介绍,包括目录结构、文件作用、设计思路。此节内容免费发布在TrueTechLabs Fabric学习交流QQ群。 购买专栏前请认真阅读:《Fabric项目学习笔记》专栏介绍 TrueTechLabs Fabric学习交流QQ群: 一、区块链部分文件目录简…