我在Amazon EC2和其他公司的另一個VPS上都遇到了這個問題,我無法從外部訪問rabbitmq服務器以使用5672端口連接到服務器。在這兩種情況下的命令:RabbitMQ在Ubuntu 14.04服務器配置
telnet <ip> 5672
returnes這樣的:
telnet: Unable to connect to remote host: Connection timed out
,並在Python簡單hellow世界的代碼示例使用鼠庫:
import pika
credentials = pika.PlainCredentials('admin', 'password')
connection = pika.BlockingConnection(pika.ConnectionParameters('<ip>', 5672, "/", credentials))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='',
routing_key='hello',
body='Hello World!')
print " [x] Sent 'Hello World!'"
connection.close()
拋出此異常:
No handlers could be found for logger "pika.adapters.base_connection"
Traceback (most recent call last):
File "/home/.../Send.py", line 7, in <module>
connection = pika.BlockingConnection(pika.ConnectionParameters('<ip>', 5672, "/", credentials))
File "/usr/local/lib/python2.7/dist-packages/pika/adapters/base_connection.py", line 61, in __init__
File "/usr/local/lib/python2.7/dist-packages/pika/connection.py", line 513, in __init__
File "/usr/local/lib/python2.7/dist-packages/pika/connection.py", line 804, in _connect
File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 138, in _adapter_connect
File "/usr/local/lib/python2.7/dist-packages/pika/adapters/base_connection.py", line 120, in _adapter_connect
pika.exceptions.AMQPConnectionError: 2.0
在ec2上,我允許所有實例端口上的所有安全組上的TCP,ICMP和UDP(用於測試目的),並在this tutorial, 中進行了簡單的安裝說明,我可以在ec2上成功創建rabbitmq的雙節點集羣,但我無法訪問任何來自外部的集羣節點,就允許在所有端口上的訪問,還是一樣的telnet的結果,我也使管理插件,發行:
wget <ip>:15672
在EC2實例保存的HTML文件,這意味着管理插件正在工作並可從每個節點訪問。我在/ etc/hosts中使用私有IP地址使節點在/ etc/hosts中找到彼此。
我決定在ubuntu 14.04 vps上安裝一個簡單的rabbitmq服務器,這次我的目的只是爲了使訪問成爲可能,我所做的幾乎是工作流程解釋in here和所有在本地服務器上工作但仍然一開始就解釋了同樣的問題。
與禁用的Ubuntu防火牆 :
# ufw disable
,併發出命令:
# iptables -F
爲了發出任何問題沒有幫助去除防火牆或iptable的。 我想不出任何額外的配置,我應該從外部訪問rabbitmq服務器,任何想法?
謝謝。
這裏是我的rabbitmq.config:
[
{kernel,
[{inet_dist_listen_min, 45000},
{inet_dist_listen_max, 45000}
]
}
].
在我的EC2安全CONFIGS
:
All ICMP 0.0.0.0/0 everywhere
ALL TCP 0.0.0.0/0 everywhere
ALL UDP 0.0.0.0/0 everywhere
和SSH端口22上
更新&另外一種情況:
我非常努力解決這個問題,並且爲了記錄m y更具體的問題,在一個單一的Ubuntu 14的情況下。04比如我想從我的個人計算機上EC2訪問單個的RabbitMQ服務器實例,這不能是硬:(這裏都可以瞭解個案的詳情解釋:
的Ubuntu 14.04 EC2實例安全組設置:
我/etc/rabbitmq/rabbitmq-env.conf文件:
NODE_IP_ADDRESS=<instance private ip taken from ifconfig = 177.31.*.*>
我/etc/hosts中文件:
127.0.0.1 localhost
172.31.*.* ip-172-31-*-*
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
我netstat -vpln
命令的輸出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 927/sshd
tcp 0 0 172.31.*.*:5672 0.0.0.0:* LISTEN 4662/beam
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 4662/beam
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 2089/epmd
tcp6 0 0 :::22 :::* LISTEN 927/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 501/dhclient
udp 0 0 0.0.0.0:45419 0.0.0.0:* 501/dhclient
udp6 0 0 :::61763 :::* 501/dhclient
,但每當從我個人的電腦我執行:
$ telnet <instance public IP > 5672
Trying 54.86.*.*
telnet: Unable to connect to remote host: Connection timed out
我已經設置了NODE_IP_ADDRESS
到0.0.0.0
,仍然沒有成功。 (我也已將此場景發佈到rabbitmq mailing list here)
你可以從EC2添加您的安全組設置你的問題?你的rabbitmq conf文件也是? –
@jpsf我已經添加了你在最後問的問題,謝謝 – NOVIA
你能從安裝它的同一臺機器上訪問rabbitmq嗎?例如,如果你用'localhost'替代'',請輸入 –
Vor