Citrix NetScaler CPX: переключение подготовки контента
Контекст
Я работаю над POC для клиента, который включает Citrix Netscaler. Вся моя демонстрация - этоdocker-compose.yml
с участием:
- разные СУБД
- некоторые веб-сервисы
- мое решение для мониторинга (графана, прометей, телеграф)
Я хотел бы использовать это изображение в качестве обратного прокси для веб-служб и контролировать эту службу с помощью prometheus.
Нужно
Я хотел бы настроить так, чтобы для запуска демонстрации не требовалось никаких действий вручную. В контекстеnginx
, Я бы просто смонтировал соответствующий файл conf где-нибудь в/etc/nginx/conf.d
. Использование Citrixnetscaler
, Я не уверен
- возможно ли это вообще
- как действовать (единственный документ, который я смог найти, отображает очень графический / сложный процесс)
Вкратце, я хотел бы иметь возможность маршрутизировать HTTP-запросы к различным веб-службам, переопределяя некоторый файл конфигурации, например:
netscaler:
image: store/citrix/netscalercpx:12.0-56.20
container_name: ws-netscaler
ports:
- 444:443
- 81:80
expose:
- 161
volumes:
- ./netscaler/some.conf:/nsconfig/some.conf:ro # what I am trying to achieve
environment:
- EULA=yes
cap_add:
- NET_ADMIN
ulimits:
nproc: 1
Об этом конкретном изображении
Похоже, что все netscaler
связанные файлы здесь
root@61baa67a839f:/# ls /netscaler
cli_script.sh nitro ns_service_stop nscli_linux nsconmsg nsnetsvc nssslgen pitboss
docker_startup.sh ns_reboot nsaggregatord nsconfigaudit nslinuxtimer nsppe nstraceaggregator showtechsupport.pl
netscaler.conf ns_service_start nsapimgr nsconfigd nslped nssetup_linux nstracemergenclean.sh snmpd
и здесь
root@61baa67a839f:/# ls -R nsconfig
nsconfig:
dns monitors nsboot.conf snmpd.conf ssl
nsconfig/dns:
nsconfig/monitors:
nsconfig/ssl:
ns-root.cert ns-root.req ns-server.cert ns-server.req ns-sftrust-root.key ns-sftrust-root.srl ns-sftrust.der ns-sftrust.req
ns-root.key ns-root.srl ns-server.key ns-sftrust-root.cert ns-sftrust-root.req ns-sftrust.cert ns-sftrust.key ns-sftrust.sig
На основе nsboot.conf
содержание
root@61baa67a839f:/# cat /nsconfig/nsboot.conf
add route 0 0 172.18.0.1
set rnat 192.0.0.0 255.255.255.0 -natip 172.18.0.2
add ssl certkey ns-server-certificate -cert ns-server.cert -key ns-server.key
set tcpprofile nstcp_default_profile mss 1460
set ns hostname 61baa67a839f
и эта документация, я предполагаю, что это будет то место. Правильно ли я так предполагаю?
редактировать
Отмена nsboot.conf
не работал должным образом, поскольку этот файл вполне вероятно написан entrypoint.sh
. Я получаю несколько определений. Кажется, что правильный способ сделать это - ввести/etc/cpx.conf
( источник).
# /etc/cpx.conf
WS_ADDRESS=$(getent hosts some_web_service | awk '{ print $1 }')
add cs vserver some_ws HTTP $WS_ADDRESS 5000
Но я не могу получить доступ к ресурсу через netscaler
(в основном потому, что я еще не понимаю NetScaler CLI)
$ curl http://localhost:5000/hello
Hello, World!%
$ curl http://localhost:81/some_ws/hello
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /some_ws/hello was not found on this server.</p>
</body></html>