Я пытаюсь запустить 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;
Это может быть немного больше, чем нужно, но у меня это сработало. Удачи!