提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
之前是为Web应用搭建的两台服务器NLB负载均衡,不想改动,现在三台服务器搭建了RabbitMq集群及镜像队列,想通过负载均衡监听和处理队列,所以想到了nginx,nginx不光是个高性能Web服务器,还能做负载均衡
提示:以下是本篇文章正文内容,下面案例可供参考
一、nginx是什么?
Nginx 是一款是由俄罗斯的程序设计师 Igor Sysoev 所开发高性能的 Web 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
优点:
1、作为Web服务器,Nginx处理静态文件、索引文件,自动索引的效率非常高
2、作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行速度
3、作为负载均衡服务器,Nginx既可以在内部直接支持Rails和PHP,也可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进行负载均衡
4、在性能方面,Nginx是专门为性能优化而开发的,实现上非常注重效率。它采用内核Poll模型,可以支持更多的并发连接,最大可以支持对5万个并发连接数的响应,而且只占用很低的内存资源
5、在稳定性方面,Nginx采取了分阶段资源分配技术,使得CPU与内存的占用率非常低。Nginx官方表示,Nginx保持1万个没有活动的连接,而这些连接只占用2.5MB内存,因此,类似DOS这样的攻击对Nginx来说基本上是没有任何作用的
6、在高可用性方面,Nginx支持热部署,启动速度特别迅速,因此可以在不间断服务的情况下,对软件版本或者配置进行升级,即使运行数月也无需重新启动,几乎可以做到7x24小时不间断地运行
具体不说了,网上资料比较多
二、搭建步骤
1.软件和环境
IP | 操作系统 | 软件 | 端口 |
---|---|---|---|
10.20.32.** | Centos 7 | nginx | 13456,3456 |
10.20.36.** | WindowServer2012 | RabbitMq | 15672,5672 |
10.20.35.** | WindowServer2012 | RabbitMq | 15672,5672 |
10.20.36.** | WindowServer2012 | RabbitMq | 15672,5672 |
2.安装nginx
代码如下(示例):
----#安装nginx
root: mkdir -p /data/nginx
root: cd /data/nginx
root: rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm
root: rpm -q zlib-devel
##--解压
root: tar -zxvf nginx-1.24.0.tar.gz
root: mv nginx /usr/local/
root: cd /usr/local/nginx
root: ./configure --with-stream
root: make && make install
root: mkdir -p /usr/local/nginx
root: cp /data/nginx/nginx-1.24.0/objs/* -a /usr/local/nginx/sbin/
##配置nginx.conf
##--启动
root: cd /usr/local/nginx/sbin
root: ./nginx
root:/usr/local/nginx
nginx -s stop
nginx -s reload
3.负载均衡配置nginx.conf
#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;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
upstream rabbitmq_web{
server 10.20.36.**:15672 fail_timeout=10s weight=5;
server 10.20.35.**:15672 fail_timeout=10s weight=4;
server 10.20.36.**:15672 fail_timeout=10s weight=3;
}
upstream rabbitmq_56{
server 10.20.36.**:5672 fail_timeout=10s weight=5;
server 10.20.35.**:5672 fail_timeout=10s weight=4;
server 10.20.36.**:5672 fail_timeout=10s weight=3;
}
server {
listen 13456;
server_name localhost;
location / {
proxy_pass http://rabbitmq_web;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
stream{
upstream rabbitTcp{
server 10.20.36.**:5672;
server 10.20.35.**:5672;
server 10.20.36.**:5672;
}
server{
listen 3456;
proxy_pass rabbitTcp;
}
}
启动nginx
http://10.20.32.**:13456/
rabbitmq_web后台管理 nginx负载均衡 成功
4.应用程序配置
生产者:
**
**
消费者:
总结
记录点点滴滴