nginx 电子书_Nginx最详细的反向代理配置步骤,拿去不谢

8e72b113fa94ef74cdc3b368c152dec0.gif

点击“蓝字”关注我们

63a1864270c6ef8a5f749dd48e238740.gif

#今日份技术干货#

使用Nginx实现Web反向代理功能,实现如下功能:

◆后端Web服务器两台,可以使用httpd实现

◆Nginx采用轮询的方式调用后端Web服务器

◆两台Web服务器的权重要求设置为不同的值

◆最大失败次数为1,失败超时时间为30秒

方案

使用4台centos7虚拟机,其中一台作为Nginx代理服务器,该服务器需要配置两块网卡,IP地址分别为192.168.4.5和192.168.2.5,两台Web服务器IP地址分别为192.168.2.100和192.168.2.200。客户端测试主机IP地址为192.168.4.10。

8edc26804f4f523e8532e4655e49d4f0.png

步骤一:部署实施后端Web服务器

1)部署后端Web1服务器

后端Web服务器可以简单使用yum方式安装httpd实现Web服务,为了可以看出后端服务器的不同,可以将两台后端服务器的首页文档内容设置为不同的内容。

1、[root@web1 ~]# yum -y install httpd

2、[root@web1 ~]# echo "192.168.2.100" > /var/www/html/index.html

3、[root@web1 ~]# systemctl restart httpd

4、[root@web1 ~]# firewall-cmd --set-default-zone=trusted

5、[root@web1 ~]# setenforce 0

2)部署后端Web2服务器

1、[root@web2 ~]# yum -y install httpd[root@web2 ~]# echo "192.168.2.200" > /var/www/html/index.html

2、[root@web2 ~]# systemctl restart httpd

3、[root@web2 ~]# firewall-cmd --set-default-zone=trusted

4、[root@web2 ~]# setenforce 0

f1e86fa631b07cc5766cda38f83bb405.png

步骤二:配置Nginx服务器,添加服务器池,实现反向代理功能

1、改/usr/local/nginx/conf/nginx.conf

配置文件

2、[root@proxy ~]#vim /usr/

local/nginx/conf/nginx.conf

3、....

4、http {/

5、....

6、#使用upstream定义后端服务器集群,集群名称任意(如webserver)/

7、#使用server定义集群中的具体服务器和端口

8、upstream webserver {/

9、server 192.168.2.100:80;

10、server 192.168.2.200:80;

11、}

12、..../

13、server {

14、listen 80;/

15、server_name localhost;

16、location /{

17、#通过proxy_pass将用户的请求转发给webserver集群/

18、proxy_pass http://webserver;

19、}/

20、}

#使用upstream定义后端服务器集群,集群名称任意(如webserver)

#使用server定义集群中的具体服务器和端口

重启nginx服务

[root@proxy ~]# /usr/local/nginx/

sbin/nginx -s reload

#请先确保nginx是启动状态,否则运行该命令会报错

客户端使用浏览器访问代理服务器测试轮询效果

[root@client ~]# curl ref="http:

//192.168.4.5/">http://192.168.4.5 //使用该命令多次访问查看效果

[root@client ~]# curl 

http://192.168.4.5 //

使用该命令多次访问查看效果

e01bc6791f509e45458e56e801f32504.png

步骤三:配置upstream服务器集群池属性

weight可以设置后台服务器的权重,

max_fails可以设置后台服务器的失败次数,

fail_timeout可以设置后台服务器的失败超时时间。

down标记服务器已关机,不参与集群调度

1、[root@proxy ~]#vim /usr/

local/nginx/conf/nginx.conf

2、....

3、http {/

4、....

5、upstream webserver {/

6、server 192.168.2.100 weight=

1 max_fails=1 fail_timeout=30;

7、server 192.168.2.200 weight=2

 max_fails=2 fail_timeout=30;

8、server 192.168.2.101 down;

9、}/

10、#weight设置服务器权重值,默认值为1

11、#max_fails设置最大失败次数/

12、#fail_timeout设置失败超时时间,单位为秒

13、#down标记服务器已关机,不参与集群调度/

14、....

15、server {/

16、listen 80;

17、server_name localhost;

18、location /{

19、proxy_pass http://webserver;

20}

21、}

6e1fd39ba093d9437ee64f36a27d581e.png

重启nginx服务

[root@proxy ~]# /usr/local/nginx/

sbin/nginx -s reload

关闭一台后端服务器(如web1)

[root@web1 ~]# systemctl stop httpd

客户端使用浏览器访问代理服务器测试轮询效果

[root@client ~]# curl http://192.168.4.5

再次启动后端服务器的httpd(如web1)

[root@web1 ~]# systemctl start httpd

客户端再次使用浏览器访问代理服务器测试轮询效果

[root@client ~]# curl http://192.168.4.5

#Nginx#

356348867006728eb6601e0dc476d974.png

为方便五湖四海的Linux爱好者共同

学(吹)习(牛)讨(打)论(趣)

热烈欢迎大家加入专属QQ群

ab58cc8e6cd1ef0c04d41b128c44756c.png

群内定时上传资料还有老师全天答疑

入群即可免费获得

1、必备工具源码包

2、内部精选电子书

3、运维资料大礼包

欲知更多福利,欢迎你的加入

c3283cc7e4848b3de309137aebdd24a3.png490cc882a4764b434bbd7a2f24dbd6d9.gif

点击“阅读原文”

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

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

相关文章

c# 找出目录下的所有子目录_C# 基础知识系列- 14 IO篇 文件的操作(2)

前接上一篇内容。如果是第一次捧场的小伙伴,为了您阅读的连贯性,烦请扫一眼《C# 基础知识系列- 14 IO篇 文件的操作(1)》。本篇是IO之文件操作的第二篇,介绍一下目录和路径的相关类。下一篇介绍如何通过流来操作文件。1.2 Directory和Directo…

怎么配置在谷歌和ie内核时使用不同的_重磅!微软竟然研发了谷歌内核的edge

走过路过不要错过点击蓝字关注我们很I高I兴I你I能I来小水GOOD NIGHT 希I望I你I别I离I开软件目录第三十九期▼物致于此小得盈满序言上周小编们期末考试已经结束了,从这周开始,推文将会开始有所更新,希望喜爱我们公众号的你们都还在。但由于小编…

Java 8过滤器,地图,收集和流示例

大家好,许多读者给我发了电子邮件,写了一篇有关Java 8的地图和过滤器功能的文章,因为他们发现它们难以理解和使用。 即使我以前同时写过有关map()和filter()的博客,我仍在写这篇文章…

使用mysql命令行的工具_[MySQL]命令行工具和基本操作

一 MySQL命令行工具 (查看帮助 ---help,或 -?)1)MySQLMySQL是一个简单的SQL外壳(有GNUreadline功能)。它支持交互式和非交互式使用。当交互使用时,查询结果采用ASCII表格式。当采用非交互式(例如,用作过滤器)模式时,结…

matlab simulink_MATLAB之Simulink(二)利用switch模块将正弦信号变为方波信号

##MATLAB之Simulink(二)##利用switch模块将正弦信号变为方波信号今天给大家展示一个simulink电路仿真,将正弦信号转化为方波信号。下面开始教程:1.首先直接在MATLAB命令行中输入simulink或者直接点击图标运行。2.新建一个空白编辑界面。3.打开模型库&…

web.xml.jsf_使用JSF 2.2功能来开发可滚动,可延迟加载的Ajax数据表

web.xml.jsf这次,我想与您分享我最近从JSF 2.2功能中学到的知识。 为此,我决定创建一个简单的ajax,可滚动,延迟加载的数据表。 请注意, 绝不这是相当大的库如Primefaces , RichFaces的或ICEFaces的 。 这只…

mysql 并发 锁表_MySQL中的锁(表锁、行锁) 并发控制锁

https://github.com/MrLining/mysql/wiki/MySQL%E4%B8%AD%E7%9A%84%E9%94%81%EF%BC%88%E8%A1%A8%E9%94%81%E3%80%81%E8%A1%8C%E9%94%81%EF%BC%89-%E5%B9%B6%E5%8F%91%E6%8E%A7%E5%88%B6%E9%94%816、 表锁差异MyISAM:只支持表级锁,用户在操作myisam表时&a…

jwt获取token_Koa开发之koa-jwt工作过程

最近的工作是开发一个分布式的服务系统,选用的环境是node开发环境,由于需要全面的进行异步开发所以使用Koa框架,开发Web服务需要对用户进行身份认证,所以就使用koa-jwt,为什么使用token这种方式网上有很多介绍token和s…

c语言大作业_2018 C语言大作业--21_Ekko制作教程

同学们实现的效果:https://www.zhihu.com/video/1066249425780809728以下是开发同学的相关文档:《Ekko》设计报告本组设计并编写的游戏《Ekko》,是一款引用了当下红火的网络游戏《英雄联盟》中的游戏角色Ekko为主角,由本组三名成员…

Nutshell中的Java 8语言功能-第1部分

你好朋友, Java 8发布已经很长时间了,现在越来越多地被使用。 在本文中,我们将讨论以下Java 8主题。 1.功能接口 2,Lambda表达式 3.默认方法 1.功能界面 什么是功能接口? 与一种并且只有一种抽象方法的接口是功能…

做ppt用的小插图_如何用PPT做随机抽奖?

每到年底,每个公司都开始筹备年会活动。年会在员工们最期待的就是抽奖环节了。除了用专门的抽奖软件之外,PPT也可以做随机抽奖。今天就来解锁这个动画的做法。1,先设置好图片和文本;2,选中每一张幻灯片,选择…

mysql 隔离级别 快照_MySql的四种事务隔离级别

一、事务的四大特性(ACID)了解事务隔离级别之前不得不了解的事务的四大特性。1、原子性(Atomicity)事务开始后所有操作,要么全部做完,要么全部不做。事务是一个不可分割的整体。事务在执行过程中出错,会回滚到事务开始之前的状态,…

jsp mysql论坛_使用SSM和ajax做一个简易的论坛-01(简介和建表)

三月底刚学完SSM试着做了个简单的论坛,想分享一下,顺便整理一下自己的收获。一、demo介绍一个具有登录、注册功能,发帖、回帖功能的简易论坛。没有后台系统。设计逻辑类似于贴吧,发帖时自动附带一个一楼。二、使用的框架/库前端&a…

elastic 修改map_Amazon Elastic Map Reduce使用Apache Mahout计算建议

elastic 修改mapApache Mahout是一个“可扩展的机器学习库”,其中包括各种单节点和分布式推荐算法的实现。 在上一篇博客文章中, 我描述了如何在单个节点上实现在线推荐系统来处理数据。 如果数据太大而无法放入内存(> 100M首选项数据点&a…

mysql 更新时间加数字_Mysql实战45讲笔记:8、聚合函数count

count(*)的实现方式在不同的MySQL引擎中,count()有不同的实现方式 1. MyISAM引擎把一个表的总行数存在了磁盘上,因此执行count()的时候会直接返回这个数,效率很高; 2. 而InnoDB引擎就麻烦了,它执行count(*)的时候&…

python学生管理系统类图_类图 python

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我正在研究一个庞大的遗留python类,它有很多方法。 我最终将复杂的方法分解成更小的部分&#x…

简单的测试可以防止最严重的故障

错误处理是软件开发中最困难且被忽略的部分之一,如果系统是分布式的,那么这将变得更加困难。 好的论文写在“ 简单测试可以预防最关键的故障” 主题上。 每个开发人员都应该阅读本文。 我将尝试总结本文的主要内容,但建议阅读该论文以获取有…

sql 两个 in_SQL基础知识——IN运算符

IN的作用IN运算符允许您在WHERE子句中指定多个值。IN运算符是多个OR条件的简写。IN的语法SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...);或者SELECT column_name(s) FROM table_name WHERE column_name IN (SELECT STATEMENT);示例数据库…

pythonlist循环添加元素_python中 for循环之后 添加元素到列表失败?

import re ls list() dc dict() # 介词、连词、人称代词等自己统计 adverb [i, you, he, she, it, in, on, with, by, for, at, about, under, of, to, and, or, therefore, so, of, a] with open("老人与海.txt", moder, encodingutf-8) as f: lryh f.read() # …

开始协议处理句柄_基于smb协议的wmiexec浅析

前言之前研究过Crackmapexec这款工具,对这个工具基于smb协议的wmiexec执行方法产生的流量进行了分析,网上似乎还没有相关的文章,这里旨在抛砖引玉,简单梳理下整个过程,以初学者的视角,探索流量当中存在的奥…