URL обратного прокси Nginx переписывается - PullRequest
0 голосов
/ 11 февраля 2019

Я использую обратный прокси-сервер nginx с входящим объектом для маршрутизации своих запросов к модулю kubernetes.

При установленном ниже конфиге, когда я размещаю запрос к моему LB url http://myservices.myorg.com/jenkins

Мой запрос будет http://myservices.myorg.com/login?from=%2F Но я хочу, чтобы он пошел на http://myservices.myorg.com/jenkins/login?from=%2F

Так что после того, как я вручную заменил на вышеуказанный правильный путь, все ресурсы, такие как css, js, отображаются с неправильным путемкак http://myservices.myorg.com/static/beacae7e/css/simple-page.css

Но это должно быть http://myservices.myorg.com/jenkins/static/beacae7e/css/simple-page.css

Аналогично, после того, как я вошел в систему (я думаю, что метод HTTP POST), он переходит на домашнюю страницу (в браузере он меняется с http://myservices.myorg.com/jenkins/login до
http://myservices.myorg.com/jenkins

Но все ресурсы, отображаемые снова, имеют неправильный путь (без / jenkins) - http://myservices.myorg.com/static/beacae7e/css/layout-common.css

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myingress
spec:
  rules:
  - host: myservices.myorg.com
    http:
      paths:
      - path: /jenkins
        backend:
           serviceName: jenkins
           service port: 80

И нижеis nginx.conf -

http {
server {
    listen 80;
    server_name ip-10-118-6-35.ec2.internal;
     location /jenkins {
       proxy_pass https://backend_nodes_jenkins/;
      }
   }
 upstream backend_nodes_jenkins {
    server 10.102.194.242:80;
  }
}

Как вы можете видеть выше в nginx.conf, в proxy_pass у меня косая черта в конце URL, так как я не должен передавать / jenkins своему модулю.

Так что это работает, как и ожидалось, но единственная проблема заключается в том, что запросы get переписывают мой URL, я верю.п.

1 Ответ

0 голосов
/ 12 февраля 2019

Понял это, передав переменную env в Docker CMD - JENKINS_OPTS = "- prefix = / jenkins"

...