Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

270
Visualizações
Rieles - ActionCable: "action_cable.url" para Kubernetes/Minikube

¿Qué config.action_cable.url debe configurarse para websockets/Rails/Kubernetes/Minukube con Nginx?

Cuando se ejecuta "docker-compose" localmente, un proceso Nginx frente a un proceso Rails (no solo API, sino con SSR) y un proceso de Cable independiente (consulte las guías ), los websockets funcionan bien al pasar el siguiente lado del servidor (en diga "/config/application.rb", con action_cable_meta_tag establecido en los diseños):

 config.action_cable.url = 'ws://localhost:28080'

Estoy apuntando a Kubernetes con Minikube localmente: implementé Nginx frente a una implementación de Rails (RAILS_ENV=producción) junto con una implementación de Cable, pero no puedo hacer que funcione. El servicio de Cable es interno de tipo "ClusterIP", con "port" y "targetPort". Probé varias variaciones.

¿Algún consejo?

Tenga en cuenta que uso Nginx -> Rails + Cable en Minikube, y el punto de entrada es el servicio Nginx, externo del tipo LoadBalancer donde usé:

 upstream rails { server rails-svc:3000; } server { listen 9000 default_server; root /usr/share/nginx/html; try_files $uri @rails; add_header Cache-Control public; add_header Last-Modified ""; add_header Etag ""; location @rails { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header Host $http_host; proxy_pass_header Set-Cookie; proxy_redirect off; proxy_pass http://rails; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }

Para permitir cualquier origen, también configuro:

 config.action_cable.disable_request_forgery_protection = true
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Tengo una respuesta: en un clúster de Minikube, no coloque nada y deshabilite la protección contra falsificación, Rails establecerá el valor correcto por defecto. Cuando Nginx está frente a un pod de Rails y un pod de ActionCable/websocket independiente (la imagen de Rails se inicia con el bundle exec puma -p 28080 cable/config.ru ), si nombro "cable-svc" el servicio que expone el contenedor de ActionCable , y "rails-svc" el del contenedor Rails, debe:

  • en K8, no establezca la configuración para CABLE_URI
  • en el backend de Rails, no tiene la URL (desconocido 127.0.0.1:some_port ), haga lo siguiente:
 # config.action_cable.url <-- comment this config.action_cable.disable_request_forgery_protection=true
  • en la configuración de Nginx, agregue una ubicación específica para la ruta "/cable":
 upstream rails { server rails-svc:3000; } server { [...root, location @rails {...}] location /cable { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_pass "http://cable-svc:28080"; } }

Verifique los registros, no más WebSockets en Rails y Cable responde.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda