`
annan211
  • 浏览: 460083 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

nginx MQ 负载均衡

 
阅读更多


要求 :
1 nginx 1.9版本以上。
2 openssl
3 pcre





1 sudo apt-get install openssl libssl-dev

2 tar -zxvf pcre-8.36.tar.gz
cd pcre-8.36
./configure
make && make install

以上准备工作已经完成。以下开始进入安装。

3 安装openssl

一、解压

tar -xzvf ./openssl-1.0.1t.tar.gz
二、配置

cd openssl-1.0.1t/
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl
三、编译&&安装
make &&  make install


# 查看安装版本
[root@localhost openssl]# openssl version -a
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Mon Jun 29 12:45:07 UTC 2015
platform: linux-x86_64


出现 POD document had syntax errors at /usr/bin/pod2man line 69.
make: *** [install_docs] Error 1


直接 rm -f /usr/bin/pod2man  重新编译安装即可

如果出现openssl版本不对,请安装对应的版本OPENSSL,
  cd openssl-1.0.2/
./config --prefix=/opt/robustlink/openssl/ssl
make &&  make install
创建软连接
ln -s /opt/robustlink/openssl/ssl/bin/openssl /usr/bin/openssl
ln -s /opt/robustlink/openssl/ssl/include/openssl /usr/include/openssl
并检查相应版本 openssl version -a

如果确认openssl安装成功,并且版本检查也正确,但是还是提示版本太低 请直接删除 /usr/bin/openssl   /usr/include/openssl 这两个软连接

如果相关路径权限不允许 请chown 一下

4 编译 nginx

./configure --prefix=/usr/local/nginx  --with-http_stub_status_module --with-stream --with-http_ssl_module   --with-openssl=/opt/robustlink/openssl/ssl --conf-path=/usr/local/nginx/nginx.conf


nginx 安装出错
打开nginx源文件下的/usr/local/src/nginx-1.9.9/auto/lib/openssl/conf文件:
找到以下代码
CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"

修改为如下

CORE_INCS="$CORE_INCS $OPENSSL/include"
CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"
CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
CORE_LIBS="$CORE_LIBS $NGX_LIBDL"




#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;
}


	stream{
		upstream MQTT_1883 {
		#hash $remote_addr consistent;     
        server 172.16.18.205:1883;
        server 172.16.18.206:1883;
		server 172.16.18.207:1883;
    }
	
	upstream MQTT_1884 {
		#hash $remote_addr consistent;     
        server 172.16.18.205:1884;
        server 172.16.18.206:1884;
		server 172.16.18.207:1884;
    }
			
		
	
    server {
        listen 1883;
        proxy_pass MQTT_1883;
        proxy_connect_timeout 5s;     
        #快速故障检查
        proxy_timeout 6s;          
        #设置超时时间,连接将超时断开。
        proxy_download_rate 1k;     
        #限制下载速度为1k
        proxy_upload_rate   1000k;    
        #限制上传速度为10k
        #limit_conn ip_addr 1;       
        ##是限制每个IP只能发起1个连接 (addr 要跟 limit_conn_zone 的变量对应)
        #allow 0.0.0.0;           
        #acl,设置允许访问IP地址;
        #deny all;
    }
	
	  server {
        listen 1884;
        proxy_pass MQTT_1884;
        proxy_connect_timeout 1s;     
        #快速故障检查
        proxy_timeout 3s;          
        #设置超时时间,连接将超时断开。
        proxy_download_rate 1k;     
        #限制下载速度为1k
        proxy_upload_rate   1000k;    
        #限制上传速度为10k
        #limit_conn ip_addr 1;       
        ##是限制每个IP只能发起1个连接 (addr 要跟 limit_conn_zone 的变量对应)
        #allow 0.0.0.0;           
        #acl,设置允许访问IP地址;
        #deny all;
    }

	}

http {
    include       mime.types;
    default_type  application/octet-stream;
	client_max_body_size 500M;


    sendfile        on;

    keepalive_timeout  65;

     upstream link.robustel.com.iot{   
           server 172.16.18.250:8080 ;  
    }  
	
	
	
	
	
	server { 
	   listen  80;
	   server_name localhost;

	   location / {
            root   html;
            index  login.html index.html index.htm;
        }
		
		location /iot { 
				proxy_pass http://link.robustel.com.iot/iot; 
				root   html;
				index  index.html index.htm;
		}
		
		location /pl { 
				proxy_pass http://link.robustel.com.iot/pl; 
				root   html;
				index  index.html index.htm;
		}
		
		location /link { 
				proxy_pass http://link.robustel.com.iot/link;
				root   html;
				index  index.html index.htm;
		}
		
		location /rlink { 
				proxy_pass http://link.robustel.com.iot/rlink;
				root   html;
				index  index.html index.htm;
		}
		
		
		error_page 404 = login.html;

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }


	}

}




分享到:
评论

相关推荐

    NGINX配置NGX-HTTP-CONSISTENT-HASH实现一致性哈希负载均衡

    2.NGX_HTTP_CONSISTENT_HASH 是一个用于 Nginx 的模块,可以实现基于一致性哈希的负载均衡策略。下载地址:https://github.com/replay/ngx_http_consistent_hash/tree/master,如果打不开,我将我下载的内容上传,...

    Nginx+keepalived双机热备(主从模式)

    Nginx+keepalived双机热备(主从模式)是一种常见的负载均衡技术,用于实现高可用环境和故障转移。该技术通过将Nginx与keepalived结合,实现了前端负载均衡和高可用性。 Nginx是一款流行的开源Web服务器软件,具有...

    dubbo zookeeper nginx redis MQ 等实战-rumoprojects.zip

    通过实践,你可以学习到如何配置Dubbo服务,如何在Zookeeper中注册服务,如何利用Nginx进行负载均衡,以及如何使用Redis存储和检索数据,还有如何实现消息队列的发送和接收。这些技能对于任何想要深入理解分布式系统...

    nginx实战-基于lua语言

    在现代Web服务领域,Nginx以其高性能、轻量级以及强大的反向代理和负载均衡能力而备受青睐。结合Lua语言,Nginx可以进一步提升其灵活性和功能扩展性,实现更复杂的业务逻辑。以下是对Nginx与Lua结合使用的深入解析。...

    P2P网络借贷平台项目SSH+Redis+ActiveMQ+POI+Shiro+AngularJS+Nginx+Quartz等

    1、项目整体采用Maven分模块构建、SVN版本控制、PowerDesigner数据建模,基于约定标准的项目工程结构,同时... 11、项目部署采用tomcat+Nginx的集群部署方式,在部署过程中可以深刻体会到nginx在负载均衡中发挥的优势。

    一键安装mysql,redis,nginx,rabbitmq脚本

    接着,Nginx是一款反向代理服务器和负载均衡器,以其高性能和稳定性而著称。它能够处理大量的并发连接,并且能够有效地分发流量,确保服务器的稳定运行。通过一键安装脚本,你可以快速配置Nginx,为你的Web应用提供...

    毕业设计早餐外卖微信小程序课程设计源代码

    配置三个节点的Nginx作为负载均衡器,第一个Nginx负责请求分发给后面两个Nginx,最后再把请求发送到不同的Tomcat容器 使用Redis Cluster作为早餐详细页面的第一级缓存 配置使用Ehcache作为页面的第二级缓存,并设置...

    趁早(quickearly)早餐外卖微信小程序-方便面的毕业设计.zip

    配置三个节点的Nginx作为负载均衡器,第一个Nginx负责请求分发给后面两个Nginx,最后再把请求发送到不同的Tomcat容器 使用Redis Cluster作为早餐详细页面的第一级缓存 配置使用Ehcache作为页面的第二级缓存,并设置...

    车吧项目依赖

    描述中提到Nginx的配置已经修改,这意味着它可能已经针对车吧项目进行了定制,例如配置了虚拟主机、重定向规则或负载均衡策略。在Windows上,Nginx通常以服务的形式运行,与项目集成时,需要确保其配置文件正确无误...

    趁早(quickearly)B2C早餐外卖微信小程序

    配置三个节点的Nginx作为负载均衡器,第一个Nginx负责请求分发给后面两个Nginx,最后再把请求发送到不同的Tomcat容器 使用Redis Cluster作为早餐详细页面的第一级缓存 配置使用Ehcache作为页面的第二级缓存,并设置...

    RabbitMQ+Zookeeper+Dubbo+Nginx+Mysql+Redis搭建.txt

    **Dubbo** 是一个高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用、智能容错和负载均衡、服务自动注册与发现。 1. **搭建Dubbo环境** - 安装Java环境。 - 下载Dubbo的示例项目...

    西北工业大学分布式实验内容

    此外,负载均衡、服务发现和故障恢复也是这一阶段的重点,例如使用Nginx进行负载均衡,Zookeeper或Consul进行服务发现。 实验三:分布式存储与计算 在这个环节,学生会接触到分布式文件系统(如Hadoop HDFS)和...

    容器使用过程中的典型问题分析.docx

    K8S 升级应谨慎进行,建议采用双 Master 结构并使用 VIP,配合 haproxy 或 nginx 做负载均衡。升级时,避免跨度太大,逐步升级,先下线一个 Master,升级后再切换负载均衡,逐个升级 Node。 4. Kubeadmin join ...

    pawo:秒杀购物系统

    采用mq处理普通下单信息,下单高峰或抢单时采用rpc + Nginx实现负载均衡。 技术实现:Springboot + Redis + RabbitMQ + Dubbo + Nginx 项目服务模块: pawo-power抢单接口和基础服务 pawo-server提供订单处理服务 ...

    商城项目介绍1

    1. **Nginx集群**:通过Nginx进行负载均衡,确保高可用性。 2. **Axios**:前端与后端通信,进行AJAX请求,处理GET/POST请求。 3. **权限检查**:通过网关检查用户访问权限,无权限则拒绝访问。 4. **RedisService**...

    大型分布式网站架构设计与实践.rar

    常见的负载均衡器如Nginx、HAProxy等,都是实现这一功能的关键工具。 其次,分布式缓存是大型网站架构中的重要组成部分。如Redis、Memcached等,它们可以显著减少数据库的访问压力,提高数据读取速度。书中会详细...

    leetcode下载-learn-git:少即是多

    leetcode下载 Less is more. quick. Importance ...负载均衡LB memcached 网络协议 TCP HTTP 容器化与分布式 熟悉python web项目的自动化部署 Docker python 后台django + vue前台 + bootsrapCSS界面 +

    docker-deploy:方便日常开发的docker-compose

    负载均衡 docker常用命令 # 列出本地主机上的镜像 docker images # 查看镜像<nginx>可用版本 docker search nginx # 启动容器,下面的命令输出一个 “Hello World”,之后终止容器 docker run ubuntu:18.04 /bin/...

    大型电商分布式系统实践(视频+源码)代码.zip

    我们将学习Nginx的负载均衡策略,以及Spring Cloud Eureka、Consul等服务发现机制,理解它们如何确保服务的高可用性和可扩展性。 4. **课时4:分布式缓存Redis** 缓存是提升系统性能的关键,这里会详细讲解Redis的...

Global site tag (gtag.js) - Google Analytics