美文网首页工作生活
Nginx负载均衡Rabbitmq

Nginx负载均衡Rabbitmq

作者: 你值得拥有更好的12138 | 来源:发表于2019-06-29 17:59 被阅读0次

以下均为本人理解,欢迎大佬指出错误,小白希望深入理解请到官网
查看TroubleShot,本文最后

为什么使用nginx

因为虽然之前的文章进行rabbitmq的集群搭建,但是在使用过程中,还是要进行负载均衡。尽可能的让每一个节点收到请求,这个三个节点的集群才有意义。

Niginx是什么?

Nginx (engine x) 是一个高性能的HTTP和[反向代理]web服务器,同时也提供了IMAP/POP3/SMTP[服务]。国内貌似都只是用来做反向代理和负载均衡。

Nginx安装

前提是linux的gcc编译环境正常

  • 1.安装基础环境
    apt-get install build-essential
    apt-get install libtool
cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz
tar -zxvf pcre-8.41.tar.gz
cd pcre-8.41
./configure
make
make insta

如果你在自己的目录,然后把pcre-8.41下的文件拷贝/usr/local/src/,Nginx-1.17.1会去这里找pcre。

cd /usr/local/src

wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install
apt-get install openssl
apt-get install libssl-dev

以上都是一些基础环境,本人不知道是干嘛的,就像你使用软件你不会想操作系统是怎么使用硬件的。这些有兴趣,有能力,有时间再去研究吧!

  • 2.下面开始安装Nginx了
cd /usr/local/src
wget http://nginx.org/download/nginx-1.17.1.tar.gz
tar -zxvf nginx-1.17.1.tar.gz
cd nginx-1.17.1
#编译我们要使用的模块,重点是最后的Stream模块,否则无法使用Stream关键字
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_gzip_static_module --http-client-body-temp-path=/usr/local/nginx/tmp/client/ --http-proxy-temp-path=/usr/local/nginx/tmp/proxy/ --http-fastcgi-temp-path=/usr/local/nginx/tmp/fcgi/ --with-poll_module --with-file-aio --with-http_realip_module --with-http_addition_module --with-http_addition_module --with-http_random_index_module --with-http_stub_status_module --http-uwsgi-temp-path=/usr/local/nginx/uwsgi_temp --http-scgi-temp-path=/usr/local/nginx/scgi_temp --with-pcre=/usr/local/src/pcre-8.41 --with-stream

make
make install

安装成功后,先学习下目录和命令

目录 作用
/usr/local/nginx/conf Nginx启动配置文件nginx.conf在这里
/usr/local/nginx/sbin 启动脚本Nginx在这里
/usr/local/nginx/logs 日志
/var/logs/nginx 日志,不清楚为啥两个地方日志
命令 作用
./nginx -V 查看版本号及已编译模块
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 使用配置文件启动
./nginx -s reload 重新加配置
kill -QUIT 2072 杀死进程,可以杀一个,两个nginx进程都退出
  • 3.添加如下配置在/usr/local/nginx/conf/nginx.conf
stream {
   #打开nginx的转发日志,可以看到请求从哪里来,被转发到那台机器上
   log_format proxy '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time "$upstream_addr" '
                 '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

    access_log /var/log/nginx/tcp-access.log proxy ;
    open_log_file_cache off;
    include /etc/nginx/conf.d/*.stream;

   #指定需要负载均衡的服务器地址
   upstream rabbitmq {
       server 47.102.115.83:5672 weight=5 max_fails=1 fail_timeout=30s;
       server 47.102.115.83:5673 weight=5 max_fails=1 fail_timeout=30s;
       server 47.102.115.83:5674 weight=5 max_fails=1 fail_timeout=30s;
   }

   # 创建一个虚拟主机来监听端口
   server {
      listen 5675;
      proxy_connect_timeout 30s;
      proxy_timeout 30s;
      proxy_pass rabbitmq;
   }
}

上面配置就做了三件事
1.创建一个虚拟主机监听端口
2.指定需要负载均衡的上游服务器
3.开启TCP日志,追踪请求转发
4.保留原有的http模块,不要删除,用来验证nginx默认配置

  • 4.启动nginx
    验证默认的配置
    image.png
    验证转发Rabbitmq
    首先查看springboot连接日志
    image.png
    然后查看前面我们配置的tcp追踪日志
    image.png
    图中转发到了rabbitmq的5672,5673,5674三个节点的端口

Trouble Shot

一直连接不上rabbitmq,默认配置页面可以进入,查看日志
recv() failed (104: Connection reset by peer) while reading response header from upstream

缓存或者超时时间太小

相关文章

  • PHP优化之缓存Opcache

    在上一篇Nginx负载均衡与RabbitMQ消息队列实践,我们实践了Nginx负载均衡与RabbitMQ消息队列的...

  • Nginx负载均衡小知识

    Nginx 负载均衡配置Nginx 重试次数限制Nginx 超时重试 Nginx 负载均衡 负载均衡策略 roun...

  • Nginx-进阶学习

    目录: Nginx集群和负载均衡 一、Nginx集群和负载均衡 1、集群 2、负载均衡-权重(1)负载均衡-轮训:...

  • Nginx负载均衡Rabbitmq

    以下均为本人理解,欢迎大佬指出错误,小白希望深入理解请到官网查看TroubleShot,本文最后 为什么使用ngi...

  • Nginx (4)

    Nginx之负载均衡 Nginx 通过Upstream 模块进行负载均衡。 upstream 支持的负载均衡算法N...

  • Linux学习笔记-Nginx配置参数详细中文说明

    Nginx多台服务器实现负载均衡: 1.Nginx负载均衡服务器: Nginx负载均衡服务器的nginx.conf...

  • Nginx负载均衡配置

    基于轮询(Round Robin)的负载均衡配置 Nginx的负载均衡策略默认就是轮询。 Nginx负载均衡策略支...

  • linux学习--week17--nginx-lnmp

    负载均衡2.1 负载均衡与反向代理区别2.2nginx 7层负载2.3 nginx 7层负载2.4 nginx 4...

  • 负载均衡

    Nginx代理中的负载均衡 提到Nginx的反向代理,不得不提的就是Nginx的负载均衡,Nginx支持丰富的负载...

  • 实现Nginx负载均衡、Session共享、Redis集群(三)

    已搭建好redis集群、哨兵模式,Session共享,现在开始搭建nginx负载均衡 了解负载均衡 nginx负载...

网友评论

    本文标题:Nginx负载均衡Rabbitmq

    本文链接:https://www.haomeiwen.com/subject/rnupcctx.html