Как перенаправить запрос с nginx на sentry?

Поднимаю на VDS следующую конфигурацию:

version: '3'

services:

  sentryredis:
    image: redis:6.0.6-alpine

  sentrypostgres:
    image: postgres:12.3-alpine
    env_file:
      - .env
    environment:
      POSTGRES_USER: ${DB_USER}
      POSTGRES_PASSWORD: ${DB_PASS}
      POSTGRES_DB: ${DB_NAME}
    volumes:
     - ./pgdb:/var/lib/postgresql/data

  sentrybase: &sentrybase
    image: sentry:9.1.2
    depends_on:
      - sentryredis
      - sentrypostgres
    env_file:
      - .env
    environment:
      SENTRY_SECRET_KEY: ${SENTRY_KEY}
      SENTRY_POSTGRES_HOST: sentrypostgres
      SENTRY_DB_USER: ${DB_USER}
      SENTRY_DB_PASSWORD: ${DB_PASS}
      SENTRY_DB_NAME: ${DB_NAME}
      SENTRY_REDIS_HOST: sentryredis

  sentry:
    <<: *sentrybase
    ports:
     - ${UI_PORT}:9000

  sentrycron:
    <<: *sentrybase
    command: "sentry run cron"

  sentryworker:
    <<: *sentrybase
    command: "sentry run worker"

Инициализирую БД, рестартую контейнеры.

Потом ставлю nginx. В /etc/nginx/sites-enabled/default у меня такой конфиг:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;

        server_name some.domain.name;

        location / {
                proxy_pass http://0.0.0.0:9000;
                proxy_http_version 1.1;
                proxy_redirect  off;
                proxy_buffering off;

                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;
        }

}

Захожу в браузере на /, меня редиректит на /auth/login/ - получаю ошибку 502.

Вроде не делаю ничего необычного, но не могу достучаться.
Что я делаю не так?


Ответы (1 шт):

Автор решения: Sergei Kirjanov

Попробуйте прописать в proxy_pass реальный IP хоста, если он статический.

Если nginx пускать в том же compose -- proxy_pass http://sentry:9000;

В этом случае допускаю вариант, когда контейнер sentry пересоздастся/перезапустится, получит другой IP, а nginx закеширует старый; надо проверять.

→ Ссылка