Назад | Перейти на главную страницу

Обратный прокси с проблемами перезаписи URL для check_mk и nginx

Я пытаюсь запустить check_mk в докере за прокси, но у меня проблемы с невозможностью установить check_mk base_url.

Итак, check_mk работает на http: // somehost: 6000 / sitename / check_mk / и мне нужно получить к нему доступ из https://example.com/prefix/check_mk/

У меня есть следующая настройка nginx:

location /prefix/check_mk/ {
    proxy_pass http://somehost:6000;
    rewrite ^/prefix/check_mk/(.*) /sitename/check_mk/$1 break;
}

У меня также есть следующая конфигурация прокси

proxy_http_version 1.1;

             # add server_port if we are not running on a standard port or a iptables nat to a standard port
             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;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection $connection_upgrade;
             proxy_read_timeout 86400s;

Я впервые могу получить доступ к check_mk по адресу https://example.com/prefix/check_mk/index.py

Однако все ссылки на возвращенной странице недействительны, потому что им не известен прокси. Так они такие вещи, как https://example.com/checkmksitename/check_mk/dashboard.py вместо того https://example.com/prefix/dashboard.py

Как мне заставить что-то подобное работать за прокси, если он не поддерживает базовый URL-адрес для создания своих ссылок?

Это похоже на ПУТЬ слишком поздно, но я наткнулся на это и в конце концов понял это. Это должно быть в вашем блоке местоположения:

proxy_pass_header Authorization;
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;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
proxy_request_buffering off;
client_max_body_size 0;
proxy_read_timeout  36000s;
proxy_redirect off;
proxy_ssl_session_reuse off;
proxy_hide_header x-frame-options;

Это может быть немного больше, чем нужно, но у меня это сработало. Удачи!