Nginx_负载均衡配置讲解
反向代理说完了,接下来就是负载均衡了,负载均衡也是比较简单的,之前反向代理就是用proxy_pass这个参数,负载均衡无非就是用upstream这个参数,叫做upstream,这个就上来直接讲吧,cd /usr/local/nginx/conf下,然后vim nginx.conf,刚才我们已经做了反向代理这一块,无非就是加了这一块
负载均衡其实就是更简单了,我把它暂时先注释掉,我把这块注释掉,反向代理就结束了,负载均衡我这里还有一个小例子,#webapp#upstream myapp { # server 192.168.1.171:8080 weight=1 max_fails=2 fail_timeout=30s; # server 192.168.1.172:8080 weight=1 max_fails=2 fail_timeout=30s; #} 这个你要注意,负载均衡是在http之内,但是是在server之外的,跟server平级的一个配置,叫做upstream,后面的myapp名字可以随便取无所谓,那也就是说我不应该放在server里边,可以放到server外边,比如我放到这,这都是可以的,当然我这里只是最基本的简单的使用,你百度一下upstream的详细的用法很多很多,当然这个是一个注释掉的,我们刚才只是反向代理的一台,一个节点,如果你想要有多个节点的话,你要指定upstream指定的一个名字然后在upstream里面去配置多个节点,其实相当于这样的,看一下,upstream这个固定的,myapp这个名字你自己随便去取,那我现在myapp相当于代理了均衡了两个节点,171和172,当然在我这里是114和115了,都是8080,然后这个weight权重是什么意思呢,他们两个都是1,就是一半一半,如果我有10个请求,5个请求走114,5个请求走115,如果我这儿写成2呢,那就相当于什么啊,相当于一共如果有9个请求的话,3个请求走第一个,有6个请求走第二个,差不多这样的,max fails然后如果请求过来了,2次失败了的话,认为你的节点挂了,fail timeout每次连接失败的超时时间是30秒,当然也可以有一个backup,失效了以后我可以切换到备服务器,也会有一个backup的选项,这个我们稍后讲keeepalived的时候会去说,当然upstream里面也有很多的配置,在这里先了解几个最常用的,首先server名一定要有,然后指定IP或者域名都行,那我这里就是114和115两个,肯定是两个tomcat,权重都平均,然后基本上两次失败就认为节点挂了,每一个挂的时间是30s,如果连接超时了就认为连接挂了,差不多就是这样的一个配置,然后你这个名字叫做myapp
注意看我这块怎么去写了,我这个location里面没什么东西,就一句话
就把之前的反向代理的这块,给他改成这个样子,就可以了
就用原先那个,他愿意拦截哪个就拦截哪个,总之我就把这个粘到这,因为这个我们可能会用到,因为是真实IP,如果没有x-real-ip,tomcat那边getHeader报错了,所以我也顺带也带着,接下来proxy_pass还是不变的,只不过http换成了什么啊换成了myapp了,注意要加分号,不加分号就报错,现在就实现了一个负载均衡了,当然这个策略里有很多种策略,有哈希策略,包括等等一些策略,咱们就按照一个最简单的权重分吧,这样其实就实现了负载均衡了
如果说我代理到这个节点,upstream去给我负载均衡策略,写完了以后,保存退出,然后接下来115就用到他了,cd /usr/local/software/,这里面有没有tomcat,tar -zxvf apache-tomcat.tar.gz -C /usr/local,给他解压到local下,然后cd到tomcat的webapps下,rm -rf docs/, rm -rf examples/, rm -rf host-manager/, rm -rf manager/,先把这些删了,cd 到 ROOT下,下面还是有这么些个,我把114的配置文件scp一下,scp /usr/local/apache-tomcat/webapps/ROOT/test.jsp 192.168.1.115:/usr/local/apache-tomcat/webapps/ROOT/然后回车,输入密码
copy成功,那115下面就应该有他了,vim test.jps,我们改一下,由于我们要看到代理的情况,我们把它改成2,注意这里Test2我改成2了,114是Test1,115就是Test2,就这点区别
我把这个tomcat也启动,/usr/local/apache-tomcat/bin/startup.sh
启动jps
tail -f -n 100 /usr/local/apache-tomcat/logs/catalina.out,看一下启动了,没问题
现在基本上来讲,我114,115呢有两个,两个tomcat,192.168.1.114:8080/test.jsp,回车
是这样的结果,115呢
也是这样的结果,只不过Test是2,这是第二个界面,然后,上面是第一个界面,现在我们已经在linux下配置了负载均衡了,那我就直接reload看一下结果了,vim nginx.conf,我已经配置upstream,上面因为我已经配置了两个节点,当然你可以多个,两台节点,tomcat你可以配10个,然后权重都是1,1人访问1次,差不多是这样的情况
然后去重启一下,/usr/local/nginx/sbin/nginx -s reload
这样的话,我就敲http://192.168.1.114:70/test.jsp回车
第一次访问的是Test1,第二次访问的是Test2
第三次又是1,这样的话每次请求,相当于负载均衡了,一会再说优化的事情,明白怎么去做负载均衡的事了吧,非常简单,其实就是一个配置,很简单,至于你说nginx如何去优化,优化就复杂了去了,不是一句两句能说明的,其实优化这个地方啊,其实我刚才说了,你可以做很多种方式,动静分离啊,加快这种访问的速度,然后还有一些通过正则啊,分流啊,如果你想优化nginx速度的话,因为网络传输有带宽,你可以做之前我所说的那块,我觉得这个是你自学的东西,我会在这里讲这个,没有太多意义,纯配置了其实优化就是根据你自己的工作经验,然后你具体是什么样的服务器,然后你具体怎么去优化,这个就和配置有关了,其实没什么含量,没什么技术含量,无非就是一些什么啊,对一些静态的文件进行缓存,动静分离吗,然后对你的请求,你的每次请求做一次压缩,这个是我要发给你的一个小例子,我这里就有一个config
#user nobody;
worker_processes 1;#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;#gzip on;server {listen 8888;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location ~/group([0-9])/M00 {#alias /fastdfs/storage/data;ngx_fastdfs_module;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {# proxy_pass http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {# deny all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {# listen 8000;# listen somename:8080;# server_name somename alias another.alias;# location / {# root html;# index index.html index.htm;# }#}# HTTPS server##server {# listen 443 ssl;# server_name localhost;# ssl_certificate cert.pem;# ssl_certificate_key cert.key;# ssl_session_cache shared:SSL:1m;# ssl_session_timeout 5m;# ssl_ciphers HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers on;# location / {# root html;# index index.html index.htm;# }#}}
我们工作中最简单的,根据工作中的一个小的虚拟机,去配置一些这个东西,因为很多网站吗,不是天猫淘宝那个级别,没那么大并发量,有一个nginx意思意思就行了,就是适量的去加一些client端的buffer,然后max_body限制多少兆,其实你要说优化就是这些东西,就是在http下,配置一堆,加一些缓存的level,加一些这些东西,其实都一样,配置其实就这一块,优化没什么可讲的,就这一块,其实咱们的session共享的话,这块我还是要说,我一般不会用session去做任何的东西,记得之前讲redis的时候,你可以用redis结合tomcat,结合的去做session共享,如果你想实现单点登陆的东西,一般流行自己开发一个认证系统,那肯定是配合着CAS,加上你自己的一些权限啊,一些设置啊,去开发,session里面放东西的可能性还是不大的,基本上今天就对nginx做一个入门级的描述,大体上把一些很常见的问题吧,虚拟主机配置啊,location怎么去URL过滤啊,写正则啊,包括日志啊,怎么开启多个虚拟主机啊,像upstream负载均衡,反向代理啊,自己做一个演示一下,明天可能就是通过nginx,可能现在是一个nginx,明天可能是2个三个,然后是一个keepalived区做一个高可用,就是这个nginx挂了怎么办差不多就是这样的一个意思
Nginx_负载均衡配置讲解相关推荐
- 学完Nginx/OpenResty详解,反向代理与负载均衡配置,能涨薪多少
反向代理与负载均衡配置 接下来介绍Nginx的重要功能:反向代理+负载均衡.单体Nginx的性能虽然不错,但也是有瓶颈的.打个比方:用户请求发起一个请求,网站显示的图片量比较大,如果这个时候有大量用户 ...
- Nginx负载均衡配置实例详解
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...
- oracle负载均衡方案,Oracle负载均衡配置代码
对于专业的数据处理存储的Oracle ARC而言,负载均衡的设置就更为重要了.那么如何对Oracle负载均衡进行配置呢?就让我们一起看看本文来学习一下吧.我们将从客户端和服务器端来进行解说. Orac ...
- 地址设置nginx负载均衡_nginx负载均衡配置实例
什么是负载均衡? 负载均衡主要通过专门的硬件设备或者通过软件算法实现.通过硬件设备实现的负载均衡效果好.效率高.性能稳定,但是成本比较高.通过软件实现的负载均衡主要依赖于均衡算法的选择和程序的健壮性. ...
- Nginx负载均衡配置实例详解(转)
| 时间:2013-09-05 20:19:17 | 阅读数:810738 [导读] 负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的 ...
- VMware ESX 主机的网卡负载均衡配置3种方法
VMware ESX 5.0 网卡负载均衡配置3种方法 (1) 基于端口的负载均衡 (Route based on the originating virtual port ID)(这个是默认支持) ...
- windows server 网络负载均衡配置
我们以虚拟机做实验来说明这个配置过程. 1. 确保三台服务器的操作系统一致,IP地址设置正确,最好在同一网段,服务器之间Ping没有问题. 假设三台服务器的IP分别为 1). 192.168.0.25 ...
- Nginx+Tomcat负载均衡配置
Nginx+tomcat是目前主流的java web架构,如何让nginx+tomcat同时工作呢,也可以说如何使用nginx来反向代理tomcat后端均衡呢?下面然给我们详细来了解一下吧 Ng ...
- nginx安装及负载均衡配置
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev ...
最新文章
- Struts2 自己定义下拉框标签Tag
- Linux C 时间函数
- Java学习系列(十)Java面向对象之I/O流(上)
- 射频放大电路的优化及ADS仿真
- Oracle dbv 坏块信息,【dbv】使用dbv工具检验数据文件是否有坏块
- 怎样快速开发属于自己的微信小程序?
- wps加入全国计算机二级,WPS进入全国计算机二级考试,明年3月开考
- 银行数字化转型导师坚鹏:金融场景搭建与营销活动策划培训结束
- “三年拿下全球第一!”7年小米销量冲到全球第二,雷军做对了什么?
- CPU 与 GPU 渲染:如何选择及原因?
- Windows内存清理----其实是没必要的
- 研华运动控制卡接线图_运动控制卡说明书
- pycharm申请学生账号收不到邮件问题(不是你收不到而是你没找到,邮件被拦截了)
- KD树+BBF+KNN使用C#实现(3)
- react使用qrcode.react生成扫描二维码
- 某查查请求头随机加密参数
- java jdbc连接 代码块_java 中JDBC连接数据库代码和步骤详解及实例代码
- IBM 小型机查看CPU内存电源风扇信息(更换部件)
- MySQL-数字格式化
- amd服务器cpu皓龙性能,性能提升20% HPC巨头升级AMD皓龙服务器
热门文章
- Windows server 2008 r2 开启Aero
- 【zTree】基于zTree动态生成树节点的一些应用
- JBoss 系列五十:使用Apache httpd(mod_jk)和JBoss构架高可用集群环境
- 云服务器 ECS CentOS 7配置默认防火墙 Firewall
- 搭建Maven私有仓库
- 加载JavaScript文件时nginx报::ERR_CONTENT_LENGTH_MISMATCH错误解决
- JavaScript高级程序设计学习(六)之设计模式
- 啊~ 五环 你比四环多一环 啊~ 五环 你比六环少一环
- JAVA微信开发:[17]如何获取所有关注用户
- linux各机器之间配置无密码访问