Nginx -学习

news/2024/7/7 21:47:47 标签: nginx, 学习, 服务器

所谓 负载均衡 就是:就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器,从而不会产生集群中大量请求只请求某一台服务器,从而使该服务器宕机的情况。

一,nginx 反向代理

实现负载均衡之前我们要实现 反向代理 ,即请求到某个域名,默认该请求被nginx接受到,然后nginx根据配置,类似DNS解析,nginx会根据配置把特定的请求转发到对应的服务器

我们修改nginx 的 conf/nginx。conf 配置文件如上图两个地方

实现效果:使用nginx 反向代理,访问www.localhost:80.com 直接跳转到 127.0.0.1:8080

二,nginx 负载均衡

实现效果

浏览器地址栏输入地址 http://127.0.0.1/myweb/index.jsp, 负载均衡效果,将请求平均分配到8080和9999两台服务器上。

准备工作

(1)准备两台tomcat服务器,一台8080,一台9999

(2)在两台tomcat里面webapps 目录中创建一个小项目如:myweb/index.jsp

实现负载均衡的几种方式

声明:实现负载均衡方式有很多,配置完一种后面的大差不差,我们主要讲解第一种

1,轮询 (默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器

 down掉,能自动剔除。

	# 反向代理配置
	upstream server_list{
	   # 这个是tomcat的访问路径
	   server localhost:8080;
	   server localhost:9999;
	}
	server {
	        listen       80;
	        server_name  localhost;
	
	        location / {
	            root   html;
				proxy_pass http://server_list;
	            index  index.html index.htm;
	        }
	
	        error_page   500 502 503 504  /50x.html;
	        location = /50x.html {
	            root   html;
	        }
	    }

使用 两台服务器,拷贝一个tomcat

 修改 conf 文件下面 server.xml 配置文件,分别修改三个端口号

<Server port="18005" shutdown="SHUTDOWN">

<Connector port="9999" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
               
<Connector port="18009" protocol="AJP/1.3" redirectPort="8443" />    

 修改两台 tomcat 服务器下面 webpps\ROOT\index.jsp

分别加上标记,用以区分

<h1>main</h1>

<h1>back</h1>

这里是插入图片描述

 

 2,weight 权重

weight 代表权重,默认为 1 ,权重越高被分配的客户端越多

指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况,列如

# 反向代理配置
upstream server_list{
# 这个是tomcat的访问路径
server localhost:8080 weight=5;
server localhost:9999 weight=1;
}

 3,ip_hash

每个请求访问ip的hash值分配,这样每个访问客户端会固定访问一个后端服务器,可以解决会话

Session 丢失的问题

upstream backserver { 
		ip_hash; 
		server 127.0.0.1:8080; 
		server 127.0.0.1:9090; 
}

 不管刷新多少遍,始终访问的是同一台Tomcat服务器

4,最少链接

web请求会被转发到链接数量最少的服务器

upstream backserver { 
	least_conn;
	server 127.0.0.1:8080; 
	server 127.0.0.1:9090; 
}	


http://www.niftyadmin.cn/n/1230013.html

相关文章

MySQL触发器之insert、update、delete的使用

一、建表 testb_log表 /* test库下建立testb_log表 */ CREATE TABLE test.testb_log (ID int(8) NOT NULL AUTO_INCREMENT,TESTB_ID int(11) DEFAULT NULL,NAME varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,AGE int(11) DEFAULT NULL,STATUS int…

yaffs2 image逆向工具

转载时请注明出处和作者联系方式 文章出处&#xff1a;http://www.limodev.cn/blog 作者联系方式&#xff1a;李先静 <xianjimli at hotmail dot com> 这 两天在分析yaffs2文件系统&#xff0c;花了几天时间把yaffs2的代码通读了几遍&#xff0c;基本脉络差不多搞清楚了…

用NETLINK实现磁盘满通知

转载时请注明出处和作者联系方式 文章出处&#xff1a;http://www.limodev.cn/blog 作者联系方式&#xff1a;李先静 <xianjimli at hotmail dot com> 手 机内置FLASH容量有限&#xff0c;在磁盘空间不足的情况下&#xff0c;应该提醒用户进行磁盘清理。这个处理在哪里做…

get 提交成功文件丢失找回方案

一&#xff0c;我的是前段时间还有那个 Mapper.xml 文件 &#xff0c;不知道为什么自己的项目没有了&#xff0c;也有可能是冲突给冲没有了&#xff0c;具体原因不知道 下面是如何找到&#xff01;&#xff01;&#xff01; 第一&#xff0c; 因为我这个包下面少了一个Mappe…

PowerDesigner根据Excel模板生成表结构

一、模板规范 T_STUDENT学生表 IDIDVARCHAR(255)主键姓名NAMEVARCHAR(255) 性别SEXCHAR(1)0-男&#xff1b;1-女年龄AGEVARCHAR(255) Excel中模板如下&#xff1a; 二、脚本 Option Explicit Dim mdl the current model Set mdl ActiveModel If (mdl Is Nothing) The…

如何把树结构存储到数据库

一&#xff0c;我们的树结构都是一个一个的数组&#xff0c;我们要想插入数据库必须要切割 // 把树结构数据 插入数据库SetTree(){console.log(123123)if (this.$refs.dept.getCheckedKeys().length>0){ //判断 >0 执行 --- 这个 dept 是你在这个 el-tree 定义的 reflet…

PowerDesigner互换表结构中NAME和CODE的值

前言&#xff1a;由于一次失误&#xff0c;导致根据Excel模板生成表结构name和code值反了&#xff0c;又使用一个脚本进行更换 一、表结构示例&#xff1a; 二、脚本(推荐保存为".vbs"的文档) Option Explicit ValidationMode True InteractiveMode im_Batch…

Redis --- 学习 NoSQL 五大类型

一&#xff0c;什么是NoSQL NoSQL NoSQL Not Only SQL (不仅仅是SQL) 关系型数据库&#xff1a;表格&#xff0c;行&#xff0c;列 泛指非关系型数据库&#xff0c;随着web 2.0 互联网的诞生&#xff01;传统的关系型数据库很难对付 web 2.0 时代 &#xff…