小编Tun*_*yen的帖子

HAProxy - 基于URL的路由与负载平衡

我是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.任何想法或建议非常感谢.请稍微说清楚.

configuration routing haproxy

35
推荐指数
1
解决办法
6万
查看次数

如何在Docker容器中设置Java堆大小(Xms/Xmx)?

提出这个问题时,Docker看起来很新,不能在网上找到这个问题的答案.我找到的唯一一个地方就是这篇文章,其中作者说这很难,就是这样.

java heap-memory docker

31
推荐指数
6
解决办法
5万
查看次数

应用程序在运行logrotate后写入".log.1"文件而不是".log"文件

强制运行后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写在第一位呢?

ubuntu logging logrotate

13
推荐指数
1
解决办法
5862
查看次数

禁用EC2安全组中的规则不会影响已建立的MongoDB连接

情况就是这样:

  1. 实例X能够连接到YTCP端口上的实例27017(EC2安全组允许)
  2. X 有mongo shell
  3. YMongoDB正在运行,接受来自X端口的连接27017
  4. X,使用mongo shell连接到数据库实例Y
  5. 从这个mongo shell会话开始X,查询Y和插入到Y.一切都很成功.
  6. 更改安全组Y:删除27017#1中提到的端口规则
  7. X仍然可以从/ insert查询到托管的数据库Y.这不是预期的.
  8. 退出mongo shell会话 X
  9. 再次尝试第4步并失败.这是正常的和预期的.

期望EC2网络防火墙将终止违反规则的连接(安全组策略).

你能解释一下上面的#7是怎么回事吗?那怎么可以避免(那时候X什么都做不了Y)?

谢谢.

amazon-ec2 mongodb amazon-web-services amazon-vpc aws-security-group

9
推荐指数
1
解决办法
323
查看次数

HAProxy:后端是否有子目录/子路径/子文件夹?

我想要实现这个目标:

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)

我怎样才能做到这一点?谢谢.

backend haproxy subdirectory

6
推荐指数
1
解决办法
2万
查看次数

使用Jenkins运行AWS命令行界面:找不到命令?

这是我的基础设施:

  • M1是Jenkins大师,运行OS X(Mountain Lion)
  • M2是Jenkins奴隶,运行OS X(Mountain Lion)
  • J是詹金斯的工作,在M2上运行

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

5
推荐指数
1
解决办法
7021
查看次数

维护MongoDB副本集的镜像数据库

我们在生产环境中运行一个3人的MongoDB副本集.

我们需要维护该replset的克隆,称为"镜像",以进行内部分析.这个镜子不需要是实时的,但它越新越好(可能是最大的1天滞后).

维护这样一个镜像数据库最合适的方法是什么?(请注意,此镜像可以是1个成员的replset或独立实例)

仅供参考,我们尝试过两种选择但速度不可接受:

  1. Oplog重播.但这需要花费很多时间(从replset的Primary中播放oplog大约需要40个小时).
  2. 定期使用生产replset中的快照,但新卷(从快照创建)非常慢,因为它没有预热(我们使用的是AWS EBS,预热需要大约12个小时)

Update #1:我们还尝试使镜像成为replset成员,但我们想将镜像与replset分开,因此这些选项不满足要求.

Update #2:我们不希望这个镜像成为replset成员的原因:我们在这个镜像上运行了大量查询并使其耗尽资源信用(磁盘IO,网络IO,CPU),并且实例暂时不可用.这改变了整个replset结构(因为它丢失了一个节点).当实例再次可用时,它再次更改了replset结构(再添加一个节点).这些变化严重影响了replset.

谢谢.

sync mirror mongodb replay

4
推荐指数
1
解决办法
3383
查看次数

如何改善OpsWorks节点的启动时间?

我喜欢AWS OpsWorks,但我现在面临的一个重大缺点是启动时间:节点启动速度超慢.

在我的情况下,对于t1.micro实例,在我的cookbook开始运行之前需要10分钟(尽管从EC2控制台视图看,实例应该在大约2分钟后准备就绪:在这么短的时间之后可以通过SSH访问它) .您也可以参考此主题.

我尝试使用自定义AMI但遇到了另一个问题:节点一直保持启动状态.但在创建AMI时,这可能是我的错.

回到最初的问题,我怎样才能改善OpsWorks节点的启动时间?

boot amazon-web-services chef-infra aws-opsworks

3
推荐指数
1
解决办法
3746
查看次数