我正在尝试使用nginx通过HTTPS / SSL访问RabbitMQ接口,但无法弄清丢失的内容。
这是我的rabbitmq.conf文件:
[
{ssl, [{versions, ['tlsv1.2', 'tlsv1.1']}]},
{rabbit, [
{reverse_dns_lookups, true},
{hipe_compile, true},
{tcp_listeners, [5672]},
{ssl_listeners, [5671]},
{ssl_options, [
{cacertfile, "/etc/ssl/certs/CA.pem"},
{certfile, "/etc/nginx/ssl/my_domain.crt"},
{keyfile, "/etc/nginx/ssl/my_domain.key"},
{versions, ['tlsv1.2', 'tlsv1.1']}
]}
]
},
{rabbitmq_management, [
{listener, [
{port, 15671},
{ssl, true},
{ssl_opts, [
{cacertfile, "/etc/ssl/certs/CA.pem"},
{certfile, "/etc/nginx/ssl/my_domain.crt"},
{keyfile, "/etc/nginx/ssl/my_domain.key"},
{versions, ['tlsv1.2', 'tlsv1.1']}
]}
]}
]}
].
重新启动rabbitmq-server时一切正常
我的nginx文件如下所示:
location /rabbitmq/ {
if ($request_uri ~* "/rabbitmq/(.*)") {
proxy_pass https://example.com:15671/$1;
}
}
现在,我猜测ngnix配置中有些内容无法解析HTTPS URL,因为尝试浏览时出现504个超时错误:
https://example.com/rabbitmq/
显然,这不是正确的FQDN,但没有/ rabbitmq /
是否有人能够通过FQDN和HTTPS在外部连接上使用RabbitMQ Management Web界面?
我是否需要在专门用于15671端口的Nginx配置中创建一个新的“服务器”块?
任何帮助将非常感激!
我最终恢复为默认的rabbitmq.config文件,然后根据另一个我现在找不到的stackoverflow答案,将我的nginx配置块修改为以下内容。
location ~* /rabbitmq/api/(.*?)/(.*) {
proxy_pass http://127.0.0.1:15672/api/$1/%2F/$2?$query_string;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location ~* /rabbitmq/(.*) {
rewrite ^/rabbitmq/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:15672;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
另外,我在浏览器中缓存了JS文件,这导致了问题并已将其禁用。
我将尝试逐段重新启用SSL,但示例URL现在仍在起作用:
https://example.com/rabbitmq/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句