introduction
This paper describes the Linux server, the building RabbitMQ, and related configuration.
Series Document Catalog
Linux server Java environment deployment series (a): Install the JDK
Linux server Java environment deployment series (two): Install nginx, mysql, tomcat, redis
Linux server Java environment deployment series (three): install git, maven
Linux server Java environment deployment series (v): to build a RabbitMQ
Ready to work
- Erlang download the installation package: If the line is too slow to install, can be selected directly from the official website https://www.erlang.org/downloads download
wget http://erlang.org/download/otp_src_22.0-rc2.tar.gz
- Download rabbitmq-server installation package
wget wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.2/rabbitmq-server-3.8.2-1.el7.noarch.rpm
Installation Erlang
- Installation depends libraries:
- yum -y install gcc-c++
- yum -y install ncurses-devel
- yum -y install openssl-devel
- yum -y install unixODBC-devel
- Create a directory (the installation directory specified): mkdir / usr / local / erlang
- Open Directory cd otp_src_22.2 /
- Mounted to the specified directory: ./configure --prefix = / usr / local / erlang --without-Javac
- make && make install
- After installation is complete configuration & compilation Erlang environment variables: vim / etc / profile
- Appended to the end of the file environment variables: export PATH = $ PATH: / usr / local / erlang / bin
-
source /etc/profile
RabbitMQ installation
- Loading Source: rpm -ivh --nodeps rabbitmq-server-3.8.2-1.el7.noarch.rpm
- If linux firewall is turned on, the need to do the following
- firewall-cmd --zone=public --add-port=15672/tcp --permanent
- firewall-cmd --zone=public --add-port=5672/tcp --permanent
- firewall-cmd --reload
- start up:
- rabbitmq-plugins enable rabbitmq_management
- rabbitmq-server
- Background start: rabbitmq-server -detached
- Create a login account, password: rabbitmqctl add_user [account] [password]
- Grant administrator privileges: rabbitmqctl set_user_tags [account] administrator
- Authorized user to the virtual machine (/): '. *' Rabbitmqctl set_permissions -p / [Account] '*'. '*.'
- Configure boot from the start:
- Adding custom startup script:
- Create a rabbitmq-server file in the /etc/init.d directory, as follows:
#!/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 export HOME=/root PATH=/sbin:/usr/sbin:/bin:/usr/bin NAME=rabbitmq-server #DAEMON=/usr/sbin/${NAME} #CONTROL=/usr/sbin/rabbitmqctl DAEMON=/server/rabbitmq/sbin/${NAME} CONTROL=/server/rabbitmq/sbin/rabbitmqctl DESC=rabbitmq-server USER=root ROTATE_SUFFIX= INIT_LOG_DIR=/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} ensure_pid_dir () { PID_DIR=`dirname ${PID_FILE}` if [ ! -d ${PID_DIR} ] ; then mkdir -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 quiet if [ $RETVAL = 0 ] ; then echo RabbitMQ is currently running else RETVAL=0 ensure_pid_dir set +e RABBITMQ_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>&1 RETVAL=$? set -e case "$RETVAL" in 0) echo SUCCESS if [ -n "$LOCK_FILE" ] ; then touch $LOCK_FILE fi ;; *) remove_pid echo FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\} RETVAL=1 ;; esac fi } stop_rabbitmq () { status_rabbitmq quiet if [ $RETVAL = 0 ] ; then set +e $CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err RETVAL=$? set -e if [ $RETVAL = 0 ] ; then remove_pid if [ -n "$LOCK_FILE" ] ; then rm -f $LOCK_FILE fi else echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err fi else echo RabbitMQ is not running RETVAL=0 fi } status_rabbitmq() { set +e if [ "$1" != "quiet" ] ; then $CONTROL status 2>&1 else $CONTROL status > /dev/null 2>&1 fi if [ $? != 0 ] ; then RETVAL=3 fi set -e } rotate_logs_rabbitmq() { set +e $CONTROL rotate_logs ${ROTATE_SUFFIX} if [ $? != 0 ] ; then RETVAL=1 fi set -e } restart_running_rabbitmq () { status_rabbitmq quiet if [ $RETVAL = 0 ] ; then restart_rabbitmq else echo RabbitMQ is not runnning RETVAL=0 fi } restart_rabbitmq() { stop_rabbitmq start_rabbitmq } case "$1" in start) echo -n "Starting $DESC: " start_rabbitmq echo "$NAME." ;; stop) echo -n "Stopping $DESC: " stop_rabbitmq echo "$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_rabbitmq echo "$NAME." ;; try-restart) echo -n "Restarting $DESC: " restart_running_rabbitmq echo "$NAME." ;; *) echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2 RETVAL=1 ;; esac exit $RETVAL
-
- The above modifications in the actual situation
# Increase the Erlang environment path of the PATH = / sbin: / usr / sbin: / bin: / usr / bin: / usr / local / Erlang / bin # service script DAEMON = / Server / RabbitMQ / sbin / $ {NAME} CONTROL = / Server / RabbitMQ / sbin / rabbitmqctl DESC = rabbitmq- Server the USER = root # log directory INIT_LOG_DIR = / the Data / Soft / rabbitmq_server-3.7.9 / var / log / RabbitMQ # pid file, look for command: find / -name rabbit .pid * PID_FILE=/var/lib/rabbitmq/mnesia/[email protected]
-
- Set execute permissions, the command: chmod a + x /etc/init.d/rabbitmq-server
-
Add boot entry:
- Add command: chkconfig --add /etc/init.d/rabbitmq-server
- View startup items, command: chkconfig --list
- We need to set rabbitmq-server start command: chkconfig rabbitmq-server on
- Close command: chkconfig rabbitmq-server off
- Delete command: chkconfig --del rabbitmq-server
- Run reboot, reboot the server to verify nginx boot