Citrix NetScaler CPX:供应内容切换

问题描述

上下文

我正在为涉及 Citrix netscaler 的客户端进行POC。我的整个演示是一个docker-compose.yml,其中:

  • 不同的 DBMS
  • 一些Web服务
  • 我的监视解决方案(grafana,prometheus,telegraf)

我想使用this image作为网络服务的反向代理,并使用 prometheus 监视此服务。

需要

我想进行设置,以便不需要任何手动操作即可运行演示。在Nginx的上下文中,我将简单地 mount 相关的conf文件放在/etc/Nginx/conf.d中的某个位置。我不确定使用Citrix netscaler

简而言之,我希望能够通过覆盖一些配置文件来将http请求路由到不同的Web服务,例如:

  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

this documentation,我假设这是地方。我可以这样假设吗?

编辑

覆盖nsboot.conf不能按预期方式工作,因为该文件很可能是由entrypoint.sh编写的。我最终得到了多个定义。似乎正确的方法是注入/etc/cpx.confsource)。

# /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>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...