Windows10-本机实现nginx+tomcat负载均衡
作者:快盘下载 人气:标注;tomcat部署项目;windows系统;nginx80端口配置多个站点
1、C:WindowsSystem32driversetchosts配置虚拟路径;加上ip和对应的域名。形如;
127.0.0.1 www.a.com
127.0.0.1 www.b.com
127.0.0.1 www.c.com
2、nginx安装文件夹下;打开/conf/nginx.conf
在http里加上几个server
如果只是静态资源;就直接用root;就不需要反向代理;比如www.b.com就是访问的静态资源
server {
listen 80; #端口号
server_name www.a.com; #域名
#location / {
# root html; #相对nginx的安装文件夹下的路径
# index index.html index.htm; #相对上面html文件夹下的文件;作为启动页面
#}
location / {
proxy_pass http://localhost:8080/; #反向代理请求路径
}
}
server {
listen 80;
server_name www.b.com;
location / {
root D:b;
}
}
server {
listen 80;
server_name www.c.com;
location / {
proxy_pass http://localhost:8081/;
}
}
3、启动nginx
;1;可直接运行安装nginx文件夹下的nginx.exe
;2;dos命令;win ; r -> cmd -> cd 到nginx安装文件夹下 -> start nginx
4、关闭nginx
;1;运用任务管理器;结束nginx.exe的进程
;2;dos命令;win ; r -> cmd -> cd 到nginx安装文件夹下 -> nginx.exe -s stop
5、访问
直接用域名就可以访问相应的项目
前言
1.什么是Nginx?
Nginx是一个高性能的HTTP和反向代理服务器,常用于做负载均衡服务器
搭建
一、nginx下载及安装
nginx下载
下载后解压;直接双击nginx.exe 启动即可;注意的是;点击一次就行了;它会出来命令窗口后马上自动退出;但是这就是启动了;点击多次的话会遇到nginx配置不生效的情况
访问localhost;若出现如下界面代表成功
在这里插入图片描述
二、Tomcat配置
我是分别下载了7.0和8.5版本的tomcat
tomcat启动的时候会去找你的CATALINA_BASE和CATALINA_HOME环境变量;在启动一个tomcat后;再启动一个发现启动不了;就是因为他们俩去找的同一个环境变量;所以我们需要配置两个。
配置好两个环境变量后;我们需要让这两个环境变量分别对应两个tomcat,也就是让其中一个去找CATALINA_BASE2和CATALINA_HOME2
打开其中一个tomcat的bin文件夹;找到startup.bat和catalina.bat文件;修改CATALINA_HOME->CATALINA_HOME2
CATALINA_BASE->CATALINA_BASE2
如果你使用的是文本文档;直接全局替换
如果是sublimetext;左上角find/replace
同时;要注意的是;要想启动两个tomcat必须进行端口的更改;防止端口冲突。
修改一个tomcat的端口就行;打开tomcat目录下的conf;编辑server.xml;将其中的三个端口分别;1;以避免冲突
至此;tomcat配置成功;我们可以在本机上运行两个tomcat了;如下
三、配置nginx负载均衡
nginx目录下打开conf文件夹;打开nginx.conf
在如下位置增加upstream;具体nginx调度算法请看后面
upstream wth{
server localhost:8080;
server localhost:8081;
}
在如下位置添加
proxy_pass http://wth;
至此;nginx配置完成;需要保存配置后重启nginx和tomcat
重启nginx:dos 窗口cd到跟根目录;nginx -s reload
重启tomcat:到根目录的bin目录;双击shutdown.bat文件;即可关闭;再双击startup.bat即可打开
四、 测试
按时间顺序逐一分配到不同的后端服务器。
upstream wth {
server localhost:8080 ;
server localhost:8081 ;
}
2、加权轮询
可在配置的server后面加个weight=number;number值越高;分配的概率越大。
upstream wth {
server localhost:8080 weight=10;
server localhost:8081 weight=20;
}
3、ip_hash
每个请求按访问IP的hash分配;这样来自同一IP固定访问一个后台服务器。
upstream wth {
ip_hash;
server localhost:8080;
server localhost:8081;
}
4、least_hash
最少链接数;哪个机器连接数少就发分发给哪个机器。
upstream lb_demo {
least_conn;
server localhost:8080;
server localhost:8081;
}
5、url_hash
按访问的url的hash结果分配请求;是每个url定向到同一后端服务器上。
upstream wth {
url_hash;
server localhost:8080;
server localhost:8081;
}
六、注意
如果你重启后负载均衡配置文件没有生效;应该是你刚开始双击nginx.exe了很多次;解决方法就是关掉多余的就可以;cmd中
taskkill /IM nginx.exe /F
关闭所有的nginx进程;再打开一次就行了
原文链接;https://blog.csdn.net/weixin_43889841/article/details/102768088
Nginx几种调度算法
Nginx几种调度算法
我们经常用nginx做反向代理和负载均衡;这里汇总一下nginx的几种调度算法;
1、轮询
按时间顺序逐一分配到不同的后端服务器。
upstream lb_demo { server 172.16.255.194:9001; server 172.16.255.195:9001; }
2、加权轮询
可在配置的server后面加个weight=number;number值越高;分配的概率越大。
upstream lb_demo {
server 172.16.255.194:9001 weight=10;
server 172.16.255.195:9001 weight=20;
}
3、ip_hash
每个请求按访问IP的hash分配;这样来自同一IP固定访问一个后台服务器。
upstream lb_demo {
ip_hash;
server 172.16.255.194:9001;
server 172.16.255.195:9001;
}
4、least_hash
最少链接数;哪个机器连接数少就发分发给哪个机器。
upstream lb_demo {
least_conn;
server 172.16.255.194:9001;
server 172.16.255.195:9001;
}
5、url_hash
按访问的url的hash结果分配请求;是每个url定向到同一后端服务器上。
upstream lb_demo {
url_hash;
server 172.16.255.194:9001;
server 172.16.255.195:9001;
}
6、hash关键值
hash自定义的key。
注;调度算法在设置upstream中配置;例如在此大括号里面写入ip_hash表示使用ip_hash的方式分配
轮询只是简单实现请求的顺序转发;并没有考虑不同服务器的性能差异;
加权轮询设置了初始时服务器的权重;但是没有考虑运行过程中的服务器状态;
IP Hash保证同一个客户端请求转发到同一个后台服务器实现了session保存;然而当某一后台服务器发生故障时;某些客户端将访问失败;
最少连接数只是考虑了后端服务器的连接数情况;并没有完全考虑服务器的整体性能。
小型集群搭建实践;五;--------配置nginx
Nginx详解;正向代理、反向代理、负载均衡原理;
Nginx几种调度算法
加载全部内容