Puncte:1

Reverse Proxy către containerul local

drapel cn

Trebuie să rulez Kafka pe docker cu interfață de utilizare web pe un anumit domeniu ȘI LINK, de exemplu:

http://somesite.com/kafka

Folosesc acest docker-compose.yml.

versiunea: „3.3”
Servicii:
  ingrijitor zoo:
    imagine: „bitnami/zookeeper:latest”
    porturi:
      - „2181:2181”
    mediu inconjurator:
      - ALLOW_ANONYMOUS_LOGIN=da
  kafka:
    imagine: „bitnami/kafka:latest”
    porturi:
      - „9092:9092”
    mediu inconjurator:
      - KAFKA_BROKER_ID=1
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092
      - KAFKA_CFG_ZOOKEEPER_CONNECT=gardist:2181
      - ALLOW_PLAINTEXT_LISTENER=da
    depinde de:
      - ingrijitor zoo
  kafka-ui:
    imagine: „provectuslabs/kafka-ui:latest”
    mediu inconjurator:
      - KAFKA_CLUSTERS_0_NAME=local
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092
      - KAFKA_CLUSTERS_0_ZOOKEEPER=gardist:2181
    depinde de:
      - kafka
    retele:
      - Mod implicit
    porturi:
      - „9099:8080”

Când am stabilit apache2 prin domeniul direct kafka.somesite.com, functioneaza.

<VirtualHost *:80>
  ServerName kafka.somesite.com
  ProxyPreserveHost On
  ProxyPass / http://127.0.0.1:9099/
  ProxyPassReverse / http://127.0.0.1:9099/
</VirtualHost>

Dar când încerc să setez domeniul cu linkul somesite.com/kafka, există doar un ecran gol.

<VirtualHost *:80>
  ServerName somesite.com
  ProxyPreserveHost On
  ProxyPass /kafka http://127.0.0.1:9099/
  ProxyPassReverse /kafka http://127.0.0.1:9099/
</VirtualHost>

Cum pot face Kafka funcțional cu link?

Mulțumesc.

drapel ar
De ce să nu folosiți un container proxy invers Nginx?
drapel in
Poate că Apache oferă deja conținut sau proxy către alte servicii.
Puncte:0
drapel in

Trebuie să schimbi două lucruri. În primul rând, trebuie să configurați adresa URL de bază a containerului kafka-ui, puteți face asta folosind SERVER_SERVLET_CONTEXT_PATH variabilă de mediu.

#...
  kafka-ui:
    imagine: „provectuslabs/kafka-ui:latest”
    mediu inconjurator:
      - KAFKA_CLUSTERS_0_NAME=local
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092
      - KAFKA_CLUSTERS_0_ZOOKEEPER=gardist:2181
      - SERVER_SERVLET_CONTEXT_PATH=/kafka
#...

Dacă nu, toate adresele URL generate de kafka-ui vor începe la /, rezultând CSS, JavaScript și altele asemenea preluate de la / în loc de /kafka/.

Apoi trebuie să adaptați ProxyPass directivă către acea cale:

ProxyPass /kafka/ http://127.0.0.1:9099/kafka/
ProxyPassReverse /kafka/ http://127.0.0.1:9099/kafka/

Cu ProxyPass asigurați-vă întotdeauna că se potrivesc barele oblice, după cum este menționat în documentație:

Dacă primul argument se termină cu un / final, al doilea argument ar trebui să se termine și cu un / și invers. În caz contrar, solicitările rezultate către backend pot pierde unele bare oblice necesare și nu oferă rezultatele așteptate.

Puncte:0
drapel my

ServerName ar trebui să fie în continuare somesite.com, deoarece Apache încă se așteaptă la asta ca URL de bază. Când URL-ul este somesite.com/kafka ar trebui să-l redirecționeze către http://127.0.0.1:9099/

În concluzie, a doua configurație ar trebui să funcționeze atâta timp cât setați ServerName somesite.com

genderbee avatar
drapel cn
Nu, nici nu merge.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.