我正在尝试 nginx 的动态上游配置,但找不到任何好的解决方案来实现来自第三方源(如 redis 或 mysql)的上游配置。
其背后的想法是在主服务器中拥有单个文件配置,并根据环境条件将请求代理到各种应用程序服务器。考虑一下动态部署,其中有 X 个服务器在不同端口上运行 Y 个工作线程。例如,我创建一个新应用程序并部署。应用程序管理器选择一个服务器,然后推出一个工作程序(Ruby/PHP/Python),然后将 ip:port 报告给中央数据库,状态为“up”。此时,当我转到给定的 url 时,nginx 应该将所有请求代理到指定的 ip:port 上游。整个事情与 Heroku 所做的非常相似,除了这个概念验证不应该准备好生产,主要是为了内部需求。
我发现的最简单的解决方案是使用带有基于 ruby 的 DNS 服务器的解析器。它可以工作,nginx 正确获取 IP 地址,但唯一的问题是您无法为该 IP 定义端口号。
第二个解决方案(我还没有尝试过)是使用其他东西作为代理服务器,可能是用 Erlang 编写的。在这种情况下,我们需要使用一些东西来提供静态内容。
有什么想法如何以更灵活和稳定的方式实现这一点?
PS 一些研究选择:
在内容服务器上备份数据的最佳方法是什么?例如,我有 15 台只有内容的服务器,上面没有运行任何应用程序。每台服务器都有一个 250 GB 的硬盘驱动器。所以,这是一个相当大的数据量。所有数据都可以从外部访问(通过 HTTP)。所以,问题是:在我的情况下,哪种方法是最好的?
我知道的最有用的方法是交叉备份:当每台服务器包含自己的数据和另一台服务器的备份时。但是,总容量显着减少。
袭击?
我在设置 FreeRadius 服务器以允许来自所有外部 IP 地址的连接时遇到问题。我的热点系统基于 CoovaAP 和定制的强制门户,它与 CoovaChilli 通信(部署在路由器上,而不是服务器上)。路由器通过以太网连接到调制解调器。Captive Portal 与radius mysql 数据库通信以验证热点授权。一切正常,直到调制解调器 IP 地址更改。
这是 /etc/raddb/clients.conf 中的示例:
client x.x.x.x {
secret = 12345
shortname = name
}
Run Code Online (Sandbox Code Playgroud)
因此,xxxx ip 地址在某种程度上需要是动态的。而且我不知道如何将调制解调器的外部 IP 地址同步到 Radius 数据库以使其工作。
问题是:如何让freeradius 接受来自所有ip 地址的连接或将modem 的外部ip 地址同步到radius 数据库中。
谢谢
可以在 /etc/hosts 文件中使用通配符吗?
例如,我正在开发具有用户定义子域的应用程序,如“user1.foo.bar”、“user2.foo.bar”。
我正在寻找这样的东西:
127.0.0.1 foo.bar
127.0.0.1 *.foo.bar
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它工作?