用于访问 minikube 内 ActiveMQ Artemis Web 控制台的 nginx 配置

问题描述 投票:0回答:1

我正在设置 minikube 来运行通过 ActiveMQ Artemis 进行通信的服务。

为了从其他机器访问服务,我在主机上设置了nginx,它从端口

19000
转发到Ingress Controller端口

server {
    listen       19000;
    listen       [::]:19000;
    server_name  _;
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
        proxy_pass http://192.168.58.2:32076; # Ingress controller port
        proxy_set_header Host $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;
    }


    error_page 404 /404.html;
    location = /404.html {
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
}

所以到目前为止,这对我有用。现在我已经部署了 ActiveMQ Artemis。

minikube service list
|---------------|------------------------------------|--------------|---------------------------|
|   NAMESPACE   |                NAME                | TARGET PORT  |            URL            |
|---------------|------------------------------------|--------------|---------------------------|
| default       | artemis-web                        |         8161 | http://192.168.58.2:30001 |

我可以通过节点端口使用

curl -L http://192.168.58.2:30001
访问它。

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8" />
  <title>Hawtio</title>
  <base href='/console/'>
  <link id="favicon" rel="icon" type="image/x-icon" href="img/favicon.ico?v=1">

  <link rel="stylesheet" href="css/lib-6a1e4ce9ea.css"/>

  <link rel="stylesheet" href="css/app-9653e9917c.css"/>

  <!-- branding -->
  <link id="branding" rel="stylesheet" type="text/css" href="" />

  <script src="js/lib-e53c220218.js" defer></script>

  <script src="js/app-fafe513f4b.js" defer></script>
</head>


<body>
  <hawtio-login></hawtio-login>
</body>

但我似乎无法创建 nginx 服务器或位置映射来从我的主机访问 Web 控制台。

例如添加以下内容:

location /artemis/ {
    proxy_pass http://192.168.58.2:30001;
    proxy_set_header Host $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;
}

并打电话给

http://myip:19000/artemis/
结果

HTTP ERROR 404 Not Found
URI:    /artemis/
STATUS: 404
MESSAGE:    Not Found
SERVLET:    -

如果我在 19001 上创建一个转发到 30001 的新服务器,也会得到类似的结果。

有趣的是,如果我尝试

console
,因为我想象它会尝试重定向到
:8161/console

location /console/ {
    proxy_pass http://192.168.58.2:30001;
    proxy_set_header Host $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;
}

然后

curl -L http://myip:19000/console/
表示
Failed to connect to myip port 80: Connection refused
这意味着它以某种方式重定向到端口 80。 (这没有在任何地方配置)。

有人设法访问 minikube 内的 Web 控制台吗?

kubernetes nginx minikube activemq-artemis portforwarding
1个回答
1
投票

我成功使用ArtemisCloud Operator在minikube上部署ActiveMQArtemis并访问控制台。如果

spec.console.expose
为 true,则操作员创建入口资源,即

apiVersion: broker.amq.io/v1beta1
kind: ActiveMQArtemis
metadata:
  name: my-artemis
spec:
  console:
    expose: true
    ingressHost: my-artemis.my-domain.io
$ curl -Lv --proxy http://192.168.49.2:80 http://my-artemis.my-domain.io

我根据您的配置创建了一个 nigix 容器,并且它有效。我只是将 proxy_pass 参数更改为

<MINIKUBE>:80
,即

$ docker run --name my-nginx --rm -it --network host -p 19000:19000 -v ./nginx.conf:/etc/nginx/nginx.conf:ro nginx

$ curl -Lv --proxy http://localhost:19000 http://my-artemis.my-domain.io
© www.soinside.com 2019 - 2024. All rights reserved.