Настройка службы RStudio Server для nginx-входа в GKE - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть кластер Kubernetes на GKE, на котором сверху находится входной контроллер nginx для отображения конечной точки сервера RStudio в / rstudio /. Это работает довольно хорошо.

К сожалению, одно из моих развертываний (RStudio Server) не работает должным образом, потому что оно использует перенаправления на стороне клиента во время входа в систему / выхода из системы, что в результате приводит к ошибке 404 при попытке доступа к / auth-login (это должно быть / rstudio) / авт-Логин)

Раньше, когда использовалась неконтейнерная установка RStudio Server, я обычно использовал обратный прокси-сервер Apache для обработки перезаписей URL.

Из официального руководства по RStudio Server Pro я вижу, что добавление этого раздела location к nginx.conf должно решить проблему.

location /rstudio/ {
  rewrite ^/rstudio/(.*)$ /$1 break;
  proxy_pass http://localhost:8787;
  proxy_redirect http://localhost:8787/ $scheme://$host/rstudio/;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection $connection_upgrade;
  proxy_read_timeout 20d;
}

Можно ли использовать аннотацию на входном контроллере для получения тех же результатов?

1 Ответ

0 голосов
/ 17 сентября 2018

Хотя это не заканчивается тем же контентом nginx.conf, похоже, он работает. Но я не знаю, может ли это вызвать некоторые побочные эффекты (проверено только на одном капсуле).

Может быть, другие помогут прокомментировать ответ о ...

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: rstudio-ingress-nginx
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/add-base-url: "true"
    nginx.ingress.kubernetes.io/proxy-redirect-from: "$scheme://$host/"
    nginx.ingress.kubernetes.io/proxy-redirect-to: "$scheme://$host/rstudio/"
    nginx.ingress.kubernetes.io/proxy-read-timeout: 20d
    nginx.ingress.kubernetes.io/affinity: "cookie"
    nginx.ingress.kubernetes.io/session-cookie-name: "route"
    nginx.ingress.kubernetes.io/session-cookie-hash: "sha1"
spec:
  rules:
  - http:
      paths:
      - path: /rstudio/
        backend:
          serviceName: rstudio
          servicePort: 8787
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...