云服务器 ECS 建站教程:部署RabbitMQ

news/2024/5/15 1:06:56/文章来源:https://blog.csdn.net/weixin_33762130/article/details/90430949


部署RabbitMQ


RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP 等,支持 AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

部署方式

在阿里云服务器下部署 RabbitMQ 提供两种部署方式:

  • RabbitMQ 镜像部署
  • 手动部署(源码编译安装)

一般推荐镜像部署适合新手使用更加快捷方便,安装包部署以及手动部署适合对 Linux 命令有基本了解的用户,可以满足用户个性化部署的要求。本教程主要介绍镜像和手工部署的方式。

镜像部署

1.单击 RabbitMQ 环境 ( CentOS7.3 Erlang19.3 ) 进入镜像详情页。

2.单击 立即购买,按提示步骤购买 ECS 实例。

3.登录 ECS 管理控制台。

4.在左边导航栏里,单击 实例,进入 ECS 实例列表页。

5.选择所购 ECS 实例所在的地域,并找到所购 ECS 实例,在 IP 地址 列获取该实例的公网 IP 地址。

6.在浏览器地址栏中输入公网 IP 地址,下载操作文档。


image


7.使用 putty 登录 Linux 服务器,请参考连接Linux实例;忘记 root 密码,请参考重置实例密码。

8.初始化 rabbitmq。

 cd /root/oneinstack./init_rabbitmq.sh


image


9.进入管理页面,浏览器访问 http://公网IP:15672 。


image


手工部署

  • 系统平台:CentOS 7.3
  • rabbitmq版本:rabbitmq-server -3.6.9
  • erlang版本:erlang19.3
  • JDK版本:JDK1.8.0_121

前提准备

创建一般用户 rabbitmq,运行 rabbitmq。

useradd rabbitmq

设置 Linux 主机名。

centos 7 修改 /etc/hostname,centos6 修改 /etc/sysconfig/network,下面以 centos 7 为例:

echo rabbit1 > /etc/hostname
hostname rabbit1
exit  #退出重新登录


image


安装依赖包

yum -y install make gcc gcc-c++ m4 ncurses-devel openssl-devel unixODBC-devel


image


源代码下载

wget http://erlang.org/download/otp_src_19.3.tar.gz
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-generic-unix-3.6.9.tar.xz

安装 Erlang

tar xzf otp_src_19.3.tar.gz #解压
cd otp_src_19.3
./configure --prefix=/usr/local/erlang --enable-shared-zlib --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac
make && make install

解压 RabbitMQ

1.解压 rabbitmq-server-generic-unix-3.6.9.tar.xz 。

tar xvJf rabbitmq-server-generic-unix-3.6.9.tar.xz
mv rabbitmq_server-3.6.9  /usr/local/rabbitmq

2.rabbitmq 环境变量配置。

sed -i 's@^ERL_DIR=.*@ERL_DIR=/usr/local/erlang/bin/@' /usr/local/rabbitmq/sbin/rabbitmq-defaults
sed -i 's@^LOG_BASE=.*@LOG_BASE=/usr/local/rabbitmq/var/log/rabbitmq@' /usr/local/rabbitmq/sbin/rabbitmq-defaults
mkdir -p /usr/local/rabbitmq/var/{lib,log}/rabbitmq

3.一般用户(rabbitmq)运行 RabbitMQ。

wget http://pkgs.fedoraproject.org/cgit/rpms/rabbitmq-server.git/plain/rabbitmq-script-wrapper
sed -i 's@cd /var/lib/rabbitmq@cd /usr/local/rabbitmq/var/lib/rabbitmq@g' rabbitmq-script-wrapper  #更改rabbitmq数据存储目录
sed -i 's@/usr/lib/rabbitmq/bin/@/usr/local/rabbitmq/sbin/@g' rabbitmq-script-wrapper
chmod +x rabbitmq-script-wrapper
cp rabbitmq-script-wrapper /usr/sbin/rabbitmqctl
cp rabbitmq-script-wrapper /usr/sbin/rabbitmq-server
cp rabbitmq-script-wrapper /usr/sbin/rabbitmq-plugins
chown -R rabbitmq.rabbitmq /usr/local/rabbitmq/var

4.rabbitmq 日志割接。

cat >> /etc/logrotate.d/rabbitmq-server << EOF
/usr/local/rabbitmq/var/log/rabbitmq/*.log {
weekly
missingok
rotate 20
compress
delaycompress
notifempty
sharedscripts
postrotate/sbin/service rabbitmq-server rotate-logs > /dev/null
endscript
}
EOF

5.rabbitmq 启动脚本。

vi /etc/init.d/rabbitmq-server
#!/bin/sh
#
# rabbitmq-server RabbitMQ broker
#
# chkconfig: - 80 05
# description: Enable AMQP service provided by RabbitMQ
#
### BEGIN INIT INFO
# Provides:          rabbitmq-server
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Description:       RabbitMQ broker
# Short-Description: Enable AMQP service provided by RabbitMQ broker
### END INIT INFO
# Source function library.
. /etc/init.d/functions
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/erlang/bin
NAME=rabbitmq-server
DAEMON=/usr/sbin/${NAME}
CONTROL=/usr/sbin/rabbitmqctl
DESC=rabbitmq-server
USER=rabbitmq
ROTATE_SUFFIX=
INIT_LOG_DIR=/usr/local/rabbitmq/var/log/rabbitmq
PID_FILE=/var/run/rabbitmq/pid
START_PROG="daemon"
LOCK_FILE=/var/lock/subsys/$NAME
test -x $DAEMON || exit 0
test -x $CONTROL || exit 0
RETVAL=0
set -e
[ -f /etc/default/${NAME} ] && . /etc/default/${NAME}
[ -f /etc/sysconfig/${NAME} ] && . /etc/sysconfig/${NAME}
ensure_pid_dir () {PID_DIR=`dirname ${PID_FILE}`if [ ! -d ${PID_DIR} ] ; thenmkdir -p ${PID_DIR}chown -R ${USER}:${USER} ${PID_DIR}chmod 755 ${PID_DIR}fi
}
remove_pid () {rm -f ${PID_FILE}rmdir `dirname ${PID_FILE}` || :
}
start_rabbitmq () {status_rabbitmq quietif [ $RETVAL = 0 ] ; thenecho RabbitMQ is currently runningelseRETVAL=0# RABBIT_NOFILES_LIMIT from /etc/sysconfig/rabbitmq-server is not handled# automaticallyif [ "$RABBITMQ_NOFILES_LIMIT" ]; thenulimit -n $RABBITMQ_NOFILES_LIMITfiensure_pid_dirset +eRABBITMQ_PID_FILE=$PID_FILE $START_PROG $DAEMON \> "${INIT_LOG_DIR}/startup_log" \2> "${INIT_LOG_DIR}/startup_err" \0<&- &$CONTROL wait $PID_FILE >/dev/null 2>&1RETVAL=$?set -ecase "$RETVAL" in0)echo SUCCESSif [ -n "$LOCK_FILE" ] ; thentouch $LOCK_FILEfi;;*)remove_pidecho FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\}RETVAL=1;;esacfi
}
stop_rabbitmq () {status_rabbitmq quietif [ $RETVAL = 0 ] ; thenset +e$CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_errRETVAL=$?set -eif [ $RETVAL = 0 ] ; thenremove_pidif [ -n "$LOCK_FILE" ] ; thenrm -f $LOCK_FILEfielseecho FAILED - check ${INIT_LOG_DIR}/shutdown_log, _errfielseecho RabbitMQ is not runningRETVAL=0fi
}
status_rabbitmq() {set +eif [ "$1" != "quiet" ] ; then$CONTROL status 2>&1else$CONTROL status > /dev/null 2>&1fiif [ $? != 0 ] ; thenRETVAL=3fiset -e
}
rotate_logs_rabbitmq() {set +e$CONTROL rotate_logs ${ROTATE_SUFFIX}if [ $? != 0 ] ; thenRETVAL=1fiset -e
}
restart_running_rabbitmq () {status_rabbitmq quietif [ $RETVAL = 0 ] ; thenrestart_rabbitmqelseecho RabbitMQ is not runnningRETVAL=0fi
}
restart_rabbitmq() {stop_rabbitmqstart_rabbitmq
}
case "$1" instart)echo -n "Starting $DESC: "start_rabbitmqecho "$NAME.";;stop)echo -n "Stopping $DESC: "stop_rabbitmqecho "$NAME.";;status)status_rabbitmq;;rotate-logs)echo -n "Rotating log files for $DESC: "rotate_logs_rabbitmq;;force-reload|reload|restart)echo -n "Restarting $DESC: "restart_rabbitmqecho "$NAME.";;try-restart)echo -n "Restarting $DESC: "restart_running_rabbitmqecho "$NAME.";;*)echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2RETVAL=1;;
esac
exit $RETVAL

保存后,添加执行权限,并设置自启动。

chmod +x /etc/init.d/rabbitmq-server
chkconfig --add rabbitmq-server
chkconfig rabbitmq-server on

6.修改 rabbitmq.config 。

特别注意默认用户名密码,请自行修改 default_user,default_pass,loopback_users。

cat > /usr/local/rabbitmq/etc/rabbitmq/rabbitmq.config << EOF
[
{rabbit, [{tcp_listeners,[{"0.0.0.0",5672}]},{tcp_listen_options, [binary, {packet,raw},{reuseaddr,true},{backlog,128},{nodelay,true},{exit_on_close,false},{keepalive,true}]},{default_vhost,       <<"/">>},{default_user,        <<"guest">>},{default_pass,        <<"guest">>},{loopback_users, ["guest"]},{default_permissions, [<<".*">>, <<".*">>, <<".*">>]}
]}
].
EOF

7.开启 rabbitmq manager。

cat > /usr/local/rabbitmq/etc/rabbitmq/enabled_plugins << EOF
[rabbitmq_management].
EOF

8.启动 rabbitmq 。

service rabbitmq-server start


image


9.进入管理页面。

浏览器访问 http://公网IP:15672。


image

更多开源软件尽在云市场:https://market.aliyun.com/software 。

原文链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_792450.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2017年最受欢迎的10个编程挑战网站

2019独角兽企业重金招聘Python工程师标准>>> 1.TopCoder TopCoder是最开始的在线竞技编程平台之一。它提供了很多的算法挑战&#xff0c;用户可以使用平台上的编辑器直接完成挑战。每个月该平台会提供几次它们最受欢迎的Single Round Matches&#xff0c;比赛要求用…

将网站迁移到另一台服务器,宝塔服务器怎么迁移到另一台服务器? | MGDSS

重要提醒&#xff1a;虽然一键迁移迁移数据不涉及原来数据的增删(是将原来数据打包发送)但是我们还是要以防万一。操作前&#xff1a;芒果大叔不管你是什么人&#xff0c;都必须先备份。 如果是阿里服务器 请创建快照&#xff0c;或其他方式备份。数据为先操作前&#xff1a;芒…

CDN+DNS主从/视图+squid反向代理+nginx负载均衡+httpd/nginx/tomcat网站搭建+iscsi后端存储...

1&#xff09;硬件环境 Windowsxp2&#xff09;软件环境 CentOS6864 3&#xff09;项目名称 我叫超级无敌变态实验4&#xff09;项目描述DNS主从DNS视图两个Squid反向代理Nginx负载均衡Httpd/Nginx/Tomcat部署ISCSI后端存储5&#xff09;配置步骤 A、用Visio规划好整体架构…

支付宝支付之扫码支付(电脑网站支付)、H5支付(手机网站支付)相关业务流程分析总结

前言 在上一篇文章《微信支付之扫码支付、公众号支付、H5支付、小程序支付相关业务流程分析总结》中&#xff0c;分析和总结了微信支付相关支付类型的业务流程&#xff0c;这里作为与微信支付平起平坐不相伯仲的支付宝支付&#xff0c;当然也是每个公司少不了的第三方支付接入…

大型网站架构面试要点

2019独角兽企业重金招聘Python工程师标准>>> 分层 分割 分布式 集群 缓存 异步 冗余 自动化 安全 大型网站架构要素 性能 性能的指标&#xff1a;响应时间、并发数、吞吐量、性能计数器 转载于:https://my.oschina.net/u/3421984/blog/1635800

IC设计方面资源的好网站

2019独角兽企业重金招聘Python工程师标准>>> http://www.ictown.com/ 转载于:https://my.oschina.net/u/2963604/blog/2120219

利用PHP扩展Taint找出网站的潜在安全漏洞实践

一、背景 笔者从接触计算机后就对网络安全一直比较感兴趣&#xff0c;在做PHP开发后对WEB安全一直比较关注&#xff0c;2016时无意中发现Taint这个扩展&#xff0c;体验之后发现确实好用&#xff1b;不过当时在查询相关资料时候发现关注此扩展的人数并不多&#xff1b;最近因为…

快速找出网站中可能存在的XSS漏洞实践(一)

一、背景 笔者最近在慕课录制了一套XSS跨站漏洞 加强Web安全视频教程&#xff0c;课程当中有讲到XSS的挖掘方式&#xff0c;所以在录制课程之前需要做大量实践案例&#xff0c;最近视频已经录制完成&#xff0c;准备将这些XSS漏洞的挖掘过程记录下来&#xff0c;方便自己也方便…

通过Web安全工具Burp suite找出网站中的XSS漏洞实战(二)

一、背景 笔者6月份在慕课网录制视频教程XSS跨站漏洞 加强Web安全,里面需要讲到很多实战案例&#xff0c;在漏洞挖掘案例中分为了手工挖掘、工具挖掘、代码审计三部分内容,手工挖掘篇参考地址为快速找出网站中可能存在的XSS漏洞实践(一)https://segmentfault.com/a/1190000016…

通过代码审计找出网站中的XSS漏洞实战(三)

一、背景 笔者此前录制了一套XSS的视频教程&#xff0c;在漏洞案例一节中讲解手工挖掘、工具挖掘、代码审计三部分内容,准备将内容用文章的形式再次写一此,前两篇已经写完&#xff0c;内容有一些关联性&#xff0c;其中手工XSS挖掘篇地址为快速找出网站中可能存在的XSS漏洞实践…

通过代码审计找出网站中的XSS漏洞实战(三)

一、背景 笔者此前录制了一套XSS的视频教程&#xff0c;在漏洞案例一节中讲解手工挖掘、工具挖掘、代码审计三部分内容,准备将内容用文章的形式再次写一此,前两篇已经写完&#xff0c;内容有一些关联性&#xff0c;其中手工XSS挖掘篇地址为快速找出网站中可能存在的XSS漏洞实践…

阿里云快速网站搭建详解

一、网站建站流程 主要步骤: 要有一个域名购买主机要有数据库,一般购买主机赠送解析域名下载网站程序(演示用的WordPress)上传程序安装程序(配置数据库、网站基本信息、管理员信息等)二、DNS服务器快速入门 DNS服务概述 DNS(Domain Name System)域名系统,在TCP/IP 网…

网易易盾推出政企网站安全方案 主打主动治理、防篡改

今天&#xff0c;网站已经成为企业、政府、教育等机构必备的“生产资料”&#xff0c;它是信息展示、服务提供、营销宣传以及企业形象的重要渠道。然而&#xff0c;如此重要的对外窗口&#xff0c;在今天仍遭受连绵不绝的网站篡改等安全事件。 网页篡改是指恶意破坏或更改网页内…

VS2012 发布网站步骤

VS2012中发布网站的方式与以往有了不同&#xff0c;前面的版本发布如图 而2012点publish的时候弹出框有所不同&#xff0c;这边需要新建一个profile名字随便起&#xff0c;发布的方式有好几种&#xff0c; 当然不同的方式配置不同&#xff0c;用的最多的就是files system了 选择…

在Github上搭建自己的博客网站

程序员都应该有写博客的习惯&#xff0c;博客可以作为知识管理&#xff0c;提升自己。当然写博客的地方有很多&#xff0c;CSDN&#xff0c;博客园以及新浪&#xff0c;网易等等。但是如果使用Github Pages来搭建一个有自己域名的独立网站&#xff0c;会不会更加炫酷呢&#xf…

使用七牛云存储在网站中进行图片外链

在CSDN中写博客&#xff0c;如果想在文章中插入一张图片&#xff0c;其实是非常简单的&#xff0c;只要从你本机进行图片选择&#xff0c;然后选择上传&#xff0c;图片就会上传到CSDN的服务器&#xff0c;到时候在文章显示的时候就会读取该图片。但是如果是在自己的搭建的网站…

使用百度统计对网站进行流量分析和统计

在自己建立一个网站后&#xff0c;最关心的问题就是到底有多少人访问了我的网站&#xff0c;也就是我的网站的流量到底是多少。以此可以不断进行完善和优化。这里将会使用百度的两个统计工具&#xff1a;百度统计和百度站长来进行分析。以我自己的建立的基于Hexo博客网站 : htt…

按钮制作网站收集

As Button Generator is the Button Generator 网站地址&#xff1a;http://jirox.net/AsButtonGen/ FlashButton.com free Animated Flash Buttons Menu Generator 网站地址&#xff1a;http://www.flashbuttons.com/ Da Button Factory Create pretty buttons online, quickl…

Logo在线制作网站收集

Supalogo - create nice logo 简单的Logo在线生成器 网站地址&#xff1a;http://supalogo.com/ 效果&#xff1a; 网站预览图&#xff1a; 说明一点就是&#xff0c;该网站也支持中文&#xff0c;日文等等。不过格式只有一两种。 Logo Ease -Free Logo Design Logo Ease…

0days最好的破解网站

best 0days ,0days,crack,patch,keymaker,keygen,bbl,download Search result!不知道有没有人知道这个东西&#xff0c;号称最好的破解&#xff0c;补丁&#xff0c;序列号生成等等之类的。网站地址&#xff1a; http://0days.51cc.net/