下载Server

描述 下载
基于debian的linux的安装包(github) rabbitmq-server_3.6.13-1_all.deb
基于debian的linux的安装包(Bintray) rabbitmq-server_3.6.13-1_all.deb

标准Ubuntu和Debian仓库

rabbitmq-server被包含在标准Debian和Ubuntu仓库中。然而,包含的版本经常是过旧的。你可以从rabbitmq.com或者是Package Cloud中的apt仓库中来安装最新的安装包。检查Debian包管理和Ubuntu包管理来获取哪一个发行版的版本是可用的。

你也可以下载上面链接中的安装包并且使用dpkg安装,或使用官方的APT仓库(见下面)。

支持的发布

下面是RabbitMQ 3.6.3 支持的基于Debian发行版的列表。

  • Ubuntu 14.04到17.02
  • Debian Jessie
  • Debian Wheezy

如果是依赖满足的话,该安装包可能也可以正常工作在其他基于Debian的发行版上,但是他们的测试和支持是尽力而为的。

安装Erlang/OTP

RabitMQ需要Erlang/OTP来运行。在标准Debial和Ubuntu中的Erlang/OTP也是过时的。考虑安装一个新的版本,例如19.3。

Erlang发行序列 提供他的仓库
20.x Erlang解决方案 。从3.6.11开始支持,以前版本不支持
19.x Erlang解决方案。Ubuntu Zesty(17.04)
18.x Erlang解决方案。Ubuntu Yakkety(16.10),Ubuntu Xenial(16.04)
17.x Erlang解决方案。Debian Jessie,Debian Wheezy backports

Erlang版本固定

apt包固定可以被使用来避免不期望的Erlang更新。下面引用的文件的例子将会固定esl-erlang包到19.3.6并且erlang-*包到19.3

# /etc/apt/preferences.d/erlang
    Package: erlang*
    Pin: version 1:19.3-1
    Pin-Priority: 1000

    Package: esl-erlang
    Pin: version 1:19.3.6
    Pin-Priority: 1000

上面的例子应该被放到/etc/apt/preference.d/下面的一个文件中,例如/etc/apt/preference.d/erlang

使用下面的命令可以使有效的包锁定被验证。

sudo apt-cache policy

包依赖

当使用apt安装的时候,所有的依赖在最近的发行中都应该自动满足。在不满足的情况下,所有的依赖包应该从一个合适的仓库中可用。然而,当使用dpkg安装的时候,就不会出现这样的情况。下面是RabbitMQ服务例如3.6.3的依赖列表。

erlang-nox (>= 1:16.b.3) | esl-erlang. Erlang can installed either from the standard repositories,backport repositories or Erlang Solutions.
    init-system-helpers >= 1.13. required for systemd support.
    socat
    adduser
    logrotate

APT仓库

RabbitMQ维护自己的APT仓库。我们在Package Cloud中也有可选择的仓库。

使用rabbitmq.com APT仓库

执行下面的命令将APT仓库添加到你的/etc/apt/sources.list.d中。

echo 'deb http://www.rabbitmq.com/debian/ testing main' |
     sudo tee /etc/apt/sources.list.d/rabbitmq.list

(请注意单词在这行中的testing指向我们RabbitMQ的发行版的状态,不是任何特定的Debian发行版。你可以使用Debian稳定的,测试的或不稳定的或者是Ubuntu来用他。我们使用”testing”来描述发行版来强调我们发行的有些频繁。)

(可选的)为了避免未签名包的警告,使用apt-key(8)来添加我们的公共key到你的可信的key列表中。

wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc |
     sudo apt-key add -

我们公共的签名key从Bintray中也是可用的。

wget -O- https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc |
         sudo apt-key add -

运行下面的命令来更新包列表。

sudo apt-get update

安装rabbitmq-server包。

sudo apt-get install rabbitmq-server

运行RabbitMQ服务器

定置化RabbitMQ环境变量

服务器应该使用默认值启动的。你可以定制化RabbitMQ环境。也可以去查看如何配置组件。

开启服务

当RabbitMQ服务器包被安装的时候,该服务默认是以守护进程启动的。

作为一个管理员,在Debian中使用service rabbitmq-server start启动和停止服务。

注意:该服务被设置为以系统用户rabbitmq来运行。如果你改变了节点数据库或日志的位置,你必须确定文件是属于这个用户的(并且更新环境变量)。

端口访问

SELinux,或者是类似的机制可能会阻止RabbitMQ绑定端口。当这种事情发生的时候,RabbitMQ将会启动失败。防火墙会阻止节点和CLI工具之间的通信。确保下面的端口是开着的:

  • 4369:epmd,一个被RabbitMQ节点和CLI工具使用的伙伴搜索服务。
  • 5672,5671:被带有或不带有TLS的AMQP 0-9-1和1.0客户端使用的端口。
  • 25672:被Erlang发行版用于内部节点和CLI工具通信并且从一个动态的范围被分配(默认限制到一个单一的端口,以AMQP端口+20000来计算)。
  • 15672:HTTP API客户端和rabbitmqadmin(仅仅管理插件被使能的时候)
  • 61613,61614:带有或不带有TLS的STOMP客户端(仅仅在STOMP插件被使能的时候)
  • 1883,8883:(如果MQTT插件被使能的时候,带有或不带有TLS的MQTT客户端。)
  • 15674:STOMP-over-WebSocket客户端(仅仅Web STOMP插件被使能的时候)
  • 15675:MQTT-over-WebSocket客户端(仅仅是Web MQTT 插件被使能的时候)

默认用户访问

该代理使用密码guest创建了一个用户guest。未配置的客户端大体上将会使用这些证书。默认情况下,这些证书只有作为localhost连接的时候才会被使用,所在连接其他机器之前你需要做一些操作。

查看文档访问控制来获取更多信息来创建更多用户,删除guest用户,或者是对guest用户允许远程访问。

在Linux中控制系统限制

运行生产工作负载的RabbitMQ的安装可能需要系统限制和内核参数整定,来处理一定数量的并行连接和队列。需要满足的主要设置就是打开文件的最大数量,也被称为ulimit -n。在很多操作系统中的默认值对于消息代理来说太低了(例如在多个Linux发行版上是1024)。我们推荐在生产环境中对用户rabbitmq最少允许65536个文件描述符。4096对大多数开发工作负载来说应该是充足的。

使用systemd(最近Linux发行版)

在发行版中使用systemd。系统限制是由位于/etc/systemd/system/rabbitmq-server.service.d/limits.conf文件来控制的。例如:

 [Service] LimitNOFILE=300000 

没有systemd(较早期的Linux发行版)

在发行版中,使RabbitMQ能够调整每一个用户限制最直接的方式就是不使用systemd而是在服务启动之前,编辑/etc/default/rabbitmq-server(RabbitMQ Debian包提供的)或者是rabbitmq-env.conf来唤起ulimit。

ulimit -S -n 4096

该软件limit不能超过硬限制(在大多数发行版中默认为4096)。硬限制可以通过文件/etc/security/limits.conf来增加。这也要求使能pam_limits.so模块,并且重启重新登录系统。

注意在运行的OS进程中,limits是不能被改变的。

验证limit

RabbitMQ管理页面展示了可用的文件描述符的数量。

rabbitmqctl status

包含同样的值。

下列命令:

cat /proc/$RABBITMQ_BEAM_PROCESS_PID/limits

可以被用于显示一个运行的进程的有限的限制(limits)。$RABBITMQ_BEAM_PROCESS_PID是运行RabbitMQ的Erlang VM的操作系统PID,就像是rabbitmqctl status返回的值。

配置管理工具

配置管理工具提供了系统限制调整的协助。我们的开发工具指导列出了相关的模块和项目。

管理代理

停止服务或者是检查他的状态等,你可以使用包特定脚本或者是运行rabbitmqctl命令。在系统路径中他是可用的。所有的rabbitmqctl命令将会报告节点缺少,如果没有代理正在运行的话。

运行rabbitmqctl stop来停止服务。

运行rabbitmqctl status来检查其是否在运行。

日志

来自服务的所有的输出被送到位于RABBITMQ_LOG_BASE目录中的RABBITMQ_NODENAME.log文件中。其他的日志数据被写到RABBITMQ_NODENAME-sasl.log中。

代理经常依赖于日志文件,所有一个完整的日志历史被维护。

你可以使用轮替程序来做所有必要的循环和压缩,并且你可以修改它。默认情况下,这个脚本没有运行默认位于/var/log/rabbitmq目录中的文件。查看/etc/logrotate.d/rabbitmq-server来配置轮替。

在Ubuntu上安装rabbitMq server的更多相关文章

  1. Project Perfect让Swift在服务器端跑起来-在Linux上创建你的Perfect项目(三)

    前两篇,分别讲述了入门和在Linux下部署,现在得说说如何在Linux下开发了。在Linux下开发,相对比在Mac下开发更灵活。我们先来看看构建基于Perfect的网站服务的编译方式如图通过引用基础库PerfectLib和数据链接,中间件模块创建你的网页文件,并用makefile打包生成你的网站动态库。所以如果你只是在Linux下构建项目,你只需要先创建好你的Handlers.swift即可。根据上面的方式我们开始在Linux下创建我们的Perfect项目。这里我在Perfect文件夹创建了一个Demo文

  2. 使用 Swift 语言编写 Android 应用入门

    Swift标准库可以编译安卓armv7的内核,这使得可以在安卓移动设备上执行Swift语句代码。做梦,虽然Swift编译器可以胜任在安卓设备上编译Swift代码并运行。这需要的不仅仅是用Swift标准库编写一个APP,更多的是你需要一些框架来搭建你的应用用户界面,以上这些Swift标准库不能提供。简单来说,构建在安卓设备上使用的Swiftstdlib需要libiconv和libicu。通过命令行执行以下命令:gitclonegit@github.com:SwiftAndroid/libiconv-libi

  3. Project Perfect让Swift在服务器端跑起来-Hi Linux(二)

    开篇写了一个简单的入门,今天想说说怎么让Perfect项目在Linux上运行。Swift开源后,苹果让Swift不仅在OSX/iOS上跑,更让Swift在Linux/Windows上跑。作为服务端的Perfect框架+RemObjectSilver,让Swift成为了一个全栈语言。Perfect由于是服务端的,让Perfect在Linux上跑是必然的事情。从第一篇文章中我们可以了解到Perfect由PerfectLib和PerfectServer组成。

  4. Project Perfect让Swift在服务器端跑起来-在Linux上创建你的Perfect项

    前两篇,分别讲述了入门和在Linux下部署,现在得说说如何在Linux下开发了。在Linux下开发,相对比在Mac下开发更灵活。我们先来看看构建基于Perfect的网站服务的编译方式如图通过引用基础库PerfectLib和数据链接,中间件模块创建你的网页文件,并用makefile打包生成你的网站动态库。所以如果你只是在Linux下构建项目,你只需要先创建好你的Handlers.Swift即可。根据上面的方式我们开始在Linux下创建我们的Perfect项目。

  5. Swift for OS X编译Linux?

    我对其他平台上Swift的构建过程感到困惑.Swift是否允许我在OSX上构建Linux项目,或者我是否需要在Linux上专门使用Swift来构建我计划在那里使用的任何东西?我查看了documentation,但这个主题并不是很清楚……

  6. Swift 2和Linux / OS X的区别

    我正在尝试将一些基本的应用程序从OSX移植到Linux,但似乎Linux平台上缺少基本的东西.有些文件缺少什么?

  7. 将Trickle移植到android

    >如何告诉编译器链接我之前为android交叉编译的共享库,以便为android生成最终的可执行命令行应用程序.而且这甚至可以在Android上移植涓流?

  8. phonegap运行android – create命令失败,退出代码8 – linux

    我做了一些googleing但没有发现任何相关内容.任何帮助赞赏.请务必使用裸体vm进行尝试没有nodejs安装或依赖问题.基督教解决方法我刚刚面临同样的问题,问题是没有正确设置sdk工具的路径:请尝试以下方法:

  9. 在Android和Raspberry Pi 3 Linux之间建立Wifi-Direct连接

    我在这里遗漏了什么?谢谢.解决方法你在哪里:使用:

  10. 如何在.pro文件中为Android平台构建指定库?

    我正在尝试使用QtCreatorQT来构建在桌面和移动平台上运行的应用程序.为实现这一目标,我需要根据目标平台使用不同的预构建库.如何在.pro文件中指定它?该向导仅提供linux/mac/windows作为平台选择我试过了但是两个构建目标只有unix:!mac被执行/评估.所以我的问题是:如何在.pro文件中检测构建目标并相应地更改库定义?

随机推荐

  1. crontab发送一个月份的电子邮件

    ubuntu14.04邮件服务器:Postfixroot收到来自crontab的十几封电子邮件.这些邮件包含PHP警告.>我已经解决了这些警告的原因.>我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null2>&1)>我删除了之前的所有电子邮件/var/mail/root/var/spool/mail/root但我仍然每小时收到十几封电子邮件.这些电子邮件来自cronjobs,

  2. 模拟两个ubuntu服务器计算机之间的慢速连接

    我想模拟以下场景:假设我有4台ubuntu服务器机器A,B,C和D.我想在机器A和机器C之间减少20%的网络带宽,在A和B之间减少10%.使用网络模拟/限制工具来做到这一点?

  3. ubuntu-12.04 – 如何在ubuntu 12.04中卸载从源安装的redis?

    我从源代码在Ubuntu12.04上安装了redis-server.但在某些时候它无法完全安装,最后一次makeinstallcmd失败.然后我刚刚通过apt包安装.现在我很困惑哪个安装正在运行哪个conf文件?实际上我想卸载/删除通过源安装的所有内容,只是想安装一个包.转到源代码树并尝试以下命令:如果这不起作用,您可以列出软件自行安装所需的步骤:

  4. ubuntu – “apt-get source”无法找到包但“apt-get install”和“apt-get cache”可以找到它

    我正在尝试下载软件包的源代码,但是当我运行时它无法找到.但是当我运行apt-cache搜索squid3时,它会找到它.它也适用于apt-getinstallsquid3.我使用的是Ubuntu11.04服务器,这是我的/etc/apt/sources.list我已经多次更新了.我尝试了很多不同的debs,并没有发现任何其他地方的错误.这里的问题是你的二进制包(deb)与你的源包(deb-src)不

  5. ubuntu – 有没有办法检测nginx何时完成正常关闭?

    &&touchrestarted),因为即使Nginx没有完成其关闭,touch命令也会立即执行.有没有好办法呢?这样的事情怎么样?因此,pgrep将查找任何Nginx进程,而while循环将让它坐在那里直到它们全部消失.你可以改变一些有用的东西,比如睡1;/etc/init.d/Nginx停止,以便它会休眠一秒钟,然后尝试使用init.d脚本停止Nginx.你也可以在某处放置一个计数器,这样你就可以在需要太长时间时发出轰击信号.

  6. ubuntu – 如何将所有外发电子邮件从postfix重定向到单个地址进行测试

    我正在为基于Web的应用程序设置测试服务器,该应用程序发送一些电子邮件通知.有时候测试是使用真实的客户数据进行的,因此我需要保证服务器在我们测试时无法向真实客户发送电子邮件.我想要的是配置postfix,以便它接收任何外发电子邮件并将其重定向到一个电子邮件地址,而不是传递到真正的目的地.我正在运行ubuntu服务器9.10.先感谢您设置本地用户以接收所有被困邮件:你需要在main.cf中添加:然后

  7. ubuntu – vagrant无法连接到虚拟框

    当我使用基本的Vagrantfile,只配置了两条线:我看到我的虚拟框打开,但是我的流氓日志多次显示此行直到超时:然后,超时后的一段时间,虚拟框框终于要求我登录,但是太久了!所以我用流氓/流氓记录.然后在我的物理机器上,如果我“流氓ssh”.没有事情发生,直到:怎么了?

  8. ubuntu – Nginx – 转发HTTP AUTH – 用户?

    我和Nginx和Jenkins有些麻烦.我尝试使用Nginx作为Jenkins实例的反向代理,使用HTTP基本身份验证.它到目前为止工作,但我不知道如何传递带有AUTH用户名的标头?}尝试将此指令添加到您的位置块

  9. Debian / Ubuntu – 删除后如何恢复/ var / cache / apt结构?

    我在ubuntu服务器上的空间不足,所以我做了这个命令以节省空间但是现在在尝试使用apt时,我会收到以下错误:等等显然我删除了一些目录结构.有没有办法做apt-getrebuild-var-tree或类似的?

  10. 检查ubuntu上安装的rubygems版本?

    如何查看我的ubuntu盒子上安装的rubygems版本?只是一个想法,列出已安装的软件包和grep为ruby或宝石或其他:)dpkg–get-selections

返回
顶部