我是HAProxy的新手,我有一个关于HAProxy配置的问题,这有助于我在采取正确方法时做出关键决定.这将极大地帮助我决定架构.
我有3个应用程序.比方说app1,app2,app3.
每个应用程序由URL区分如下:
www.example.com/app1/123 -> app1
www.example.com/app2/123 -> app2
www.example.com/app3/123 -> app3
Run Code Online (Sandbox Code Playgroud)
我打算在2个不同的地区拥有每个应用的2个实例:
Region 1 - app1, app2, app3
Region 2 - app1, app2, app3
Run Code Online (Sandbox Code Playgroud)
我看到2种方法来配置这个,但我不确定这是最好的做法:
方法1:让HAProxy1首先使用url模式区分请求.来自HAProxy1的请求将被路由到另一个HAProxy服务器,以设置单个应用程序(在本例中为3个HAProxy服务器),以实现负载平衡.
方法2:有一个很好的HAProxy服务器,它按方法1中的说明执行这两个操作.也就是说,具有根据url隔离请求的配置,然后通过单独的过滤器传递每个请求,就像为每个应用程序设置的内容一样,以实现负载平衡.
我不确定haproxy是否支持方法2.任何想法或建议非常感谢.请稍微说清楚.
提出这个问题时,Docker看起来很新,不能在网上找到这个问题的答案.我找到的唯一一个地方就是这篇文章,其中作者说这很难,就是这样.
强制运行后logrotate,我的应用程序继续写入my_app.log.1(以后应该存档的旧日志)而不是my_app.log.
这使得my_app.log一个空文件,因此logrotate运行没有任何影响.并my_app.log.1继续增长到千兆字节.
我正在运行Ubuntu 12.04.我的应用程序是使用pm2的Node.js应用程序.以下是我的logrotate配置:
"/var/log/my_app/*.log" {
daily
size 50M
rotate 10
missingok
compress
delaycompress
notifempty
}
Run Code Online (Sandbox Code Playgroud)
我知道我放在notifempty那里,但为什么my_app.log.1写在第一位呢?
情况就是这样:
X能够连接到YTCP端口上的实例27017(EC2安全组允许)X 有mongo shellYMongoDB正在运行,接受来自X端口的连接27017X,使用mongo shell连接到数据库实例YX,查询Y和插入到Y.一切都很成功.Y:删除27017#1中提到的端口规则X仍然可以从/ insert查询到托管的数据库Y.这不是预期的.X期望EC2网络防火墙将终止违反规则的连接(安全组策略).
你能解释一下上面的#7是怎么回事吗?那怎么可以避免(那时候X什么都做不了Y)?
谢谢.
amazon-ec2 mongodb amazon-web-services amazon-vpc aws-security-group
我想要实现这个目标:
http://front-end --> http://back-end/app-1
http://front-end/app-2 --> http://back-end/app-2-another-path
Run Code Online (Sandbox Code Playgroud)
因此请求将以这种方式处理:
http://front-end/do-this --> http://back-end/app-1/do-this
http://front-end/app-2/do-that --> http://back-end/app-2-another-path/do-that
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?谢谢.
这是我的基础设施:
在M2上,我使用pip安装了AWC CLI,并aws成功手动运行命令.
我设置J作业来运行该aws命令.但是当J运行时,它会失败并且错误消息是:
... aws: command not found
Run Code Online (Sandbox Code Playgroud)
您是否知道这种情况发生以及如何解决?
谢谢.
macos pip command-line-interface amazon-web-services jenkins
我们在生产环境中运行一个3人的MongoDB副本集.
我们需要维护该replset的克隆,称为"镜像",以进行内部分析.这个镜子不需要是实时的,但它越新越好(可能是最大的1天滞后).
维护这样一个镜像数据库最合适的方法是什么?(请注意,此镜像可以是1个成员的replset或独立实例)
仅供参考,我们尝试过两种选择但速度不可接受:
Update #1:我们还尝试使镜像成为replset成员,但我们想将镜像与replset分开,因此这些选项不满足要求.
Update #2:我们不希望这个镜像成为replset成员的原因:我们在这个镜像上运行了大量查询并使其耗尽资源信用(磁盘IO,网络IO,CPU),并且实例暂时不可用.这改变了整个replset结构(因为它丢失了一个节点).当实例再次可用时,它再次更改了replset结构(再添加一个节点).这些变化严重影响了replset.
谢谢.
我喜欢AWS OpsWorks,但我现在面临的一个重大缺点是启动时间:节点启动速度超慢.
在我的情况下,对于t1.micro实例,在我的cookbook开始运行之前需要10分钟(尽管从EC2控制台视图看,实例应该在大约2分钟后准备就绪:在这么短的时间之后可以通过SSH访问它) .您也可以参考此主题.
我尝试使用自定义AMI但遇到了另一个问题:节点一直保持启动状态.但在创建AMI时,这可能是我的错.
回到最初的问题,我怎样才能改善OpsWorks节点的启动时间?
haproxy ×2
mongodb ×2
amazon-ec2 ×1
amazon-vpc ×1
aws-opsworks ×1
backend ×1
boot ×1
chef-infra ×1
docker ×1
heap-memory ×1
java ×1
jenkins ×1
logging ×1
logrotate ×1
macos ×1
mirror ×1
pip ×1
replay ×1
routing ×1
subdirectory ×1
sync ×1
ubuntu ×1