# Прокси WebSockets
# https://www.nginx.com/blog/websocket-nginx/
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

# Сервер WebSocket слушает здесь
upstream websocket {
    server node:8080;
}

# Конфигурация сайта
server {
    listen 80;
    server_name _;

    # Установите таймауты прокси для приложения
    proxy_connect_timeout 600;
    proxy_read_timeout 600;
    proxy_send_timeout 600;
    send_timeout 600;

    # Сначала подключаются прокси-сервер WebSocket
    location /v2/inv {
        proxy_pass http://websocket;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }

    # Сервер PushTX отдельный, поэтому сначала прокси
    location /v2/pushtx/ {
        proxy_pass http://node:8081/;
    }

    # Сервер трекера отдельный, поэтому сначала прокси
    location /v2/tracker/ {
        proxy_pass http://node:8082/;
    }

    # Прокси-запросы к инструменту обслуживания
    location = /admin/conf/index.js {
        proxy_pass http://node:8080/static/admin/conf/index-mainnet.js;
    }

    location /admin/ {
        proxy_pass http://node:8080/static/admin/;
    }

    # Проксировать все остальные запросы версии 2 на сервер учетных записей.
    location /v2/ {
        proxy_pass http://node:8080/;
    }

    # Перенаправить луковый адрес в инструмент обслуживания
    location = / {
        return 301 /admin;
    }

    # Обслуживать оставшиеся запросы
    location / {
        return 200 '{"status":"ok"}';
        add_header Content-Type application/json;
    }
}
