3
我已經啓用RabbitMQ的Web-Stomp插件,遵循this,因爲我們需要STOMP over WebSockets,並且它可以工作。現在我需要的是一個Nginx服務器作爲我的RabbtMQ服務器前面的反向代理。 以下是Nginx服務器的配置部分,如下所示。如何使用Nginx作爲我的RabbitMQ的websocket函數的反向代理?
http {
upstrem websocket {
# this is the actual rabbitmq server address
server 15.15.181.73:15674
}
server {
# the nginx server addres is 15.15.182.108
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
location /ws/ {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade websocket;
proxy_set_header Connection upgrade;
}
}
}
這裏是訪問服務器
var WebSocket = require('ws');
var Stomp = require('stompjs');
var ws = new WebSocket('ws://15.15.182.108/ws', {
protocolVersion: 8,
origin: 'http://15.15.182.108/ws',
rejectUnauthorized: false
});
var client = Stomp.over(ws);
var on_connect = function(){
client.send("/queue/test", {priority: 9}, "Hello, STOMP for /queue/test");
};
var on_error = function(error){
console.log("error");
console.log(error.headers.message);
};
client.connect('test','test',on_connect,on_error,'/');
的JavaScript代碼
現在有什麼困惑我的是,如果我需要訪問過的WebSockets的RabbitMQ的服務器,那麼我應該在IP地址後追加/ws
,如果我直接訪問它,它會起作用。但是,似乎我不能將/ws
放在部分之後的Nginx配置文件中的IP地址。那麼如果我需要做這個工作,我該怎麼做?謝謝。