參考:https://blog.csdn.net/tianjiewang/article/details/58383062html
說明: ubuntu14.04 rabiitmq 默認 安裝路徑 /var/lib/rabbitmq/python
默認 持久化路徑: /var/lib/rabbitmq/mnesianginx
修改RabbitMQ數據存儲位置:web
方式一:json
1.1複製RabbitMQ存儲數據到/data/lib/rabbitmq,cp命令-p能夠將文件屬性也複製ubuntu
sudo cp -R -p /var/lib/rabbitmq /data/lib/rabbitmq
1.2.添加RabbitMQ環境變量文件vim
sudo vim /etc/rabbitmq/rabbitmq-env.conf
1.3 rabbitmq-env.conf文件內容,修改完文件,重啓RabbitMQ服務後端
RABBITMQ_MNESIA_BASE=/data/lib/rabbitmq/mnesia sudo service rabbitmq-server start
方式二: 直接修改path :服務器
須要將這些文件更換位置 1、先建立數據文件和日誌文件存放位置的目錄並給權限 mkdir -p /usr/local/rabbitmq/mnesia mkdir -p /usr/local/rabbitmq/log chmod -R 777 /usr/local/rabbitmq chown -R rabbitmq:rabbitmq /usr/local/rabbitmq/mnesia chown -R rabbitmq:rabbitmq /usr/local/rabbitmq/log 2、建立或新增環境參數配置文件 vi /etc/rabbitmq/rabbitmq-env.conf 增長以下兩行內容 RABBITMQ_MNESIA_BASE=/usr/local/rabbitmq/mnesia RABBITMQ_LOG_BASE=/usr/local/rabbitmq/log 保存,重啓 rabbitmq 服務
1. 配置文件 參考: https://blog.csdn.net/zhuchunyan_aijia/article/details/80800997 Rabbitmq的配置文件有三個,位於/etc/rabbitmq/, 這三個文件分別是: (1)enabled_plugins, 設置容許的插件列表,該配置文檔的格式爲erlang的列表格式如 [rabbitmq_management,rabbitmq_visualiser]. (2)rabbitmq.conf,設置rabbitmq的運行參數。該配置文件中的每一個參數爲一個erlang的 tuple,結構爲{Key,Value}, Key爲atom類型, Value爲一個term。其中幾個關鍵參數爲: tcp_listerners :設置rabbimq的監聽端口,默認爲[5672]。 disk_free_limit :磁盤低水位線,若磁盤容量低於指定值則中止接收數據,默認值爲 {mem_relative, 1.0},即與內存相關聯1:1,也可定製爲多少byte. vm_memory_high_watermark:設置內存低水位線,若低於該水位線,則開啓流控機制,默認值是0.4,即內存總量的40%。 hipe_compile :將部分rabbimq代碼用HighPerformance Erlang compiler編譯,可提高性能,該參數是實驗性,若出現erlang vm segfaults,應關掉。 force_fine_statistics, 該參數屬於rabbimq_management,若爲true則進行精細化的統計,但會影響性能。 (3)rabbitmq-env.conf rabbitmq的環境參數配置 RABBITMQ_NODE_PORT 端口設置,默認爲5672 RABBITMQ_NODENAME 節點名稱,默認爲rabbit MNESIA_BASE 後端存儲目錄,默認爲/var/lib/rabbitmq/mnesia LOG_BASE 日誌目錄,默認爲/var/log/rabbitmq/ http://www.rabbitmq.com/configure.html#define-environment-variables
安裝:app
ubuntu安裝rabbitmq
echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install rabbitmq-server
1
2
3
4
啓動RabbitMQ管理插件,用於web界面管理
sudo rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart
1
2
測試安裝完成的RabbitMQ
sudo rabbitmqctl status
1
經常使用命令列舉
應用管理
rabbitmqctl status //顯示RabbitMQ中間件的全部信息
rabbitmqctl stop //中止RabbitMQ應用,關閉節點
rabbitmqctl stop_app //中止RabbitMQ應用
rabbitmqctl start_app //啓動RabbitMQ應用
rabbitmqctl restart //重置RabbitMQ節點
rabbitmqctl force_restart //強制重置RabbitMQ節點
1
2
3
4
5
6
用戶管理
rabbitmqctl add_user username password //添加用戶
rabbitmqctl delete_user username //刪除用戶
rabbitmqctl change_password username newpassword //修改密碼
rabbitmqctl list_users //列出全部用戶
1
2
3
4
權限控制管理
rabbitmqctl add_vhost vhostpath //建立虛擬主機
rabbitmqctl delete_vhost vhostpath //刪除虛擬主機
rabbitmqctl list_vhosts //列出全部虛擬主機
rabbitmqctl set_permissions [-p vhostpath] username <conf> <write> <read> //設置用戶權限
rabbitmqctl clear_permissions [-p vhostpath] username //刪除用戶權限
rabbitmqctl list_permissions [-p vhostpath] //列出虛擬機上的全部權限
rabbitmqctl list_user_permissions username //列出用戶權限
1
2
3
4
5
6
7
Web界面管理RabbitMQ
使用rabbitmq-plugins enable rabbitmq_management來啓動Management插件。 默認是能夠本地登陸localhost:15672,用戶名:guest;密碼:guest;端口默認15672。
服務器nginx配置
server {
listen 80;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name rabbitmq.tlwlmy.com;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
# try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
proxy_pass http://127.0.0.1:15672;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
修改RabbitMQ數據存儲
複製RabbitMQ存儲數據到/data/lib/rabbitmq,cp命令-p能夠將文件屬性也複製
sudo cp -R -p /var/lib/rabbitmq /data/lib/rabbitmq
1
添加RabbitMQ環境變量文件
sudo vim /etc/rabbitmq/rabbitmq-env.conf
1
rabbitmq-env.conf文件內容,修改完文件,重啓RabbitMQ服務
RABBITMQ_MNESIA_BASE=/data/lib/rabbitmq/mnesia
sudo service rabbitmq-server start
1
2
服務器容許其餘服務器使用RabbitMQ服務,因爲guest默認是localhost使用的,須要另外建立用戶給外部服務器使用,可使用Web管理頁面添加用戶,也能夠經過命令添加用
建立用戶
sudo rabbitmqctl add_user tlwlmy password
1
設置用戶角色
sudo rabbitmqctl set_user_tags tlwlmy administrator
1
設置用戶權限
sudo rabbitmqctl set_permissions -p "/" tlwlmy ".*" ".*" ".*"
1
設置完成後能夠查看當前用戶和角色(須要開啓服務)
sudo rabbitmqctl list_users
1
其餘服務器訪問連接,192.168.1.3爲部署RabbitMQ服務內部ip地址
amqp://tlwlmy:tlwlmy@192.168.1.3:5672//
1
python測試例子
#!/user/bin/env python
# encoding: utf-8
from celery import Celery
celery = Celery(broker='amqp://tlwlmy:tlwlmy@192.168.1.3:5672//')
# 發送
celery.send_task('rabbitmq_test', ({'test': 'test'},), queue='test', compression='zlib', serializer='json')
1
2
3
4
5
6
7
8
注意
修改系統hostname後將會丟失舊數據和用戶,須要從新添加用戶
參考
官方安裝 官方配置 Networking and RabbitMQ RabbitMQ安裝和使用 設置RabbitMQ遠程ip登陸---------------------