小编AJB*_*AJB的帖子

如何配置Docker端口映射以使用Nginx作为上游代理?

更新II

它现在是2015年7月16日,事情再次发生了变化.我从Jason Wilder那里发现了这个自动化容器: https://github.com/jwilder/nginx-proxy它解决了这个问题,只要它需要docker run容器.这是我用来解决这个问题的解决方案.

更新

现在是2015年7月,关于网络Docker容器的情况发生了巨大变化.现在有许多不同的产品可以解决这个问题(以各种方式).

您应该使用这篇文章来获得docker --link对服务发现方法的基本理解,这种方法基本上是基本的,它可以很好地工作,并且实际上需要比大多数其他解决方案更少的花哨跳舞.它的局限性在于,在任何给定集群中将容器联网在单独的主机上非常困难,并且一旦联网就无法重新启动容器,但它确实提供了一种快速且相对简单的方法来在同一主机上联网容器.这是一个很好的方式来了解你可能用来解决这个问题的软件实际上是在做什么.

此外,你可能还需要检查出多克的新生network,Hashicorp的consul,Weaveworks weave,杰夫·林赛的progrium/consul&gliderlabs/registrator,和谷歌的Kubernetes.

另外还有CoreOS利用的产品etcd,fleetflannel.

如果你真的想举办派对,你可以启动一个集群来运行Mesosphere,或者Deis,或者Flynn.

如果你是网络新手(比如我)那么你应该拿出你的老花镜,在Wi-Hi-Fi上弹出"涂上星星的天空 - 恩雅的最佳",然后破解啤酒 - 这将是在你真正理解你正在尝试做什么之前的一段时间.提示:你正试图Service Discovery Layer在你的实施中实施Cluster Control Plane.这是一个非常好的方式来度过一个周六晚上.

这很有趣,但我希望在潜入之前我会花时间更好地教育自己一般的网络.我最终发现了一些来自仁慈的数字海洋教程神的帖子:Introduction to Networking TerminologyUnderstanding ... Networking.我建议在潜水之前先阅读几次.

玩得开心!



原帖

我似乎无法掌握Docker容器的端口映射.具体来说,如何将请求从Nginx传递到另一个容器,在同一服务器上侦听另一个端口.

我有一个Nginx容器的Dockerfile,如下所示:

FROM ubuntu:14.04
MAINTAINER Me …
Run Code Online (Sandbox Code Playgroud)

nginx docker

81
推荐指数
5
解决办法
9万
查看次数

为什么S3和Google Storage存储桶名称是全局命名空间?

这令我感到困惑.我显然可以理解为什么帐户ID是全球性的,但为什么桶名?

如果有这样的话会更有意义:https://accountID.storageservice.com/bucketName

哪个会在accountID下命名空间桶.

我错过了什么,为什么这些显然精英建筑师选择以这种方式处理桶名?

amazon-s3 google-cloud-storage

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

Google云端存储是一种自动化的全球CDN吗?

我正在尝试设置Google Cloud Storage存储桶来存储和提供我网站的所有静态对象.我还试图将该存储桶中的所有对象推送到Google Cloud CDN提供的所有全局边缘位置.

我在Google云端存储上创建了一个存储桶:cdn.mysite.com.我为铲斗location设置选择了"US"多区域.

我的假设是存储在此存储桶中的任何对象都将被复制到所有us-*区域以实现高耐久性目的,但不会推送到所有Google Cloud CDN全局边缘位置以用于CDN目的.

或者我的"美国"多区域存储桶中的所有对象是否已经自动推送到所有Google Cloud CDN边缘位置?

我很惊讶我无法弄清楚我的水桶是否已经是CDN了.即使经过两天的搜索(谷歌,具有讽刺意味).

在此先感谢您的帮助.

google-cloud-storage google-cloud-platform google-cloud-cdn

29
推荐指数
4
解决办法
7717
查看次数

如何使用Digital Ocean DNS和Nginx设置全局负载平衡?

更新:请参阅我在下面提供的答案,了解我最终在AWS上设置的解决方案.

我目前正在尝试使用有关如何在Digital Ocean上为我的应用服务器最佳实现全局负载平衡层的方法,还有一些我尚未整理的部分.

目标

通过将所有连接路由到SFO,NYC,LON和最终新加坡最近的"服务器集群",为我的用户提供高可用性服务.

另外,我最终希望通过编写一个可以监视,扩展和修复系统上任何服务器的守护程序来自动维护它.或者我将结合各种服务来实现相同的自动化目标.首先,我需要弄清楚如何手动完成.

堆栈

  1. Ubuntu 14.04
  2. Nginx 1.4.6
  3. 的node.js
  4. 来自Compose.io的 MongoDB (原名MongoHQ)

全球域名细分

一旦我完成了所有工作,我的域名将如下所示:

**GLOBAL**
global-balancing-1.myapp.com
global-balancing-2.myapp.com
global-balancing-3.myapp.com

**NYC**
nyc-load-balancing-1.myapp.com
nyc-load-balancing-2.myapp.com
nyc-load-balancing-3.myapp.com

nyc-app-1.myapp.com
nyc-app-2.myapp.com
nyc-app-3.myapp.com

nyc-api-1.myapp.com
nyc-api-2.myapp.com
nyc-api-3.myapp.com

**SFO**
sfo-load-balancing-1.myapp.com
sfo-load-balancing-2.myapp.com
sfo-load-balancing-3.myapp.com

sfo-app-1.myapp.com
sfo-app-2.myapp.com
sfo-app-3.myapp.com

sfo-api-1.myapp.com
sfo-api-2.myapp.com
sfo-api-3.myapp.com

**LON**
lon-load-balancing-1.myapp.com
lon-load-balancing-2.myapp.com
lon-load-balancing-3.myapp.com

lon-app-1.myapp.com
lon-app-2.myapp.com
lon-app-3.myapp.com

lon-api-1.myapp.com
lon-api-2.myapp.com
lon-api-3.myapp.com
Run Code Online (Sandbox Code Playgroud)

然后,如果有任何给定层上的任何应变,在任何给定的区域,我就可以旋转了一个新的液滴助阵:nyc-app-4.myapp.com,lon-load-balancing-5.myapp.com,等...

现行工作方法

  • (最少)三个global-balancing服务器接收所有流量.这些服务器是$geoip_city_continent_code平衡的,如本文(坦率地说令人困惑)文章所示:如何配置DNS循环负载平衡.

  • 使用Nginx GeoIP模块MaxMind GeoIP数据 ,任何给定请求的来源都将确定为 global-balancing.

  • 所述load-balancing然后层将请求路由到nyc-load-balancing-1所述服务器上 …

dns global load-balancing nginx digital-ocean

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

OSX boot2docker挂起"等待VM和Docker守护进程启动......"

我已安装boot2docker,OSX 10.8.5似乎安装没问题,但是当我尝试启动时,boot2docker我得到以下内容,它会无限期挂起:

$ /usr/local/bin/boot2docker up 
Waiting for VM and Docker daemon to start...
..........................................................................oooooooooooooooooooooooooooooo
Run Code Online (Sandbox Code Playgroud)

我应该采取哪些步骤来调试它?我无法找到有关此特定问题的任何信息.

$ boot2docker version
Boot2Docker-cli version: v1.4.1
Git commit: 43241cb

$ docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64

$ boot2docker -v up
Boot2Docker-cli version: v1.4.1
Git commit: 43241cb
2014/12/23 00:19:25 executing: VBoxManage showvminfo boot2docker-vm --machinereadable
2014/12/23 00:19:25 executing: VBoxManage showvminfo boot2docker-vm --machinereadable
2014/12/23 00:19:25 executing: VBoxManage showvminfo …
Run Code Online (Sandbox Code Playgroud)

boot2docker

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

将EC2用户数据shell脚本存储在专用S3存储桶中是否安全?

我在AWS上有一个EC2 ASG,我有兴趣存储用于实例化S3存储桶中任何给定实例的shell脚本,并将其下载并在实例化时运行,但即使我使用它也感觉有点摇摇晃晃a IAM Instance Role,通过HTTPS传输,并使用KMS using 在S3存储桶中静止时加密脚本本身S3 Server Side Encryption(因为该KMS方法抛出了"未知"错误).

安装程序

User-Data田野里

User Data在创建Launch Configuration我希望我的ASG使用时,我在字段中输入以下内容:

#!/bin/bash

apt-get update
apt-get -y install python-pip
apt-get -y install awscli
cd /home/ubuntu
aws s3 cp s3://super-secret-bucket/Instance-Init.sh . --region us-east-1
chmod +x Instance-Init.sh
. Instance-Init.sh
shred -u -z -n 27 Instance-Init.sh
Run Code Online (Sandbox Code Playgroud)

以上做了以下内容:

  • 更新包列表
  • 安装Python(需要运行aws-cli)
  • 安装 …

bash shell amazon-s3 amazon-ec2 user-data

20
推荐指数
1
解决办法
4253
查看次数

如何停止执行node.js脚本?

说我有这个脚本:

var thisIsTrue = false;

exports.test = function(request,response){

    if(thisIsTrue){
        response.send('All is good!');
    }else{
        response.send('ERROR! ERROR!');
        // Stop script execution here.
    }

    console.log('I do not want this to happen if there is an error.');

}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,如果出现错误,我想停止脚本执行任何下游功能.

我已经设法通过return;在发送错误响应后添加来实现此目的:

var thisIsTrue = false;

exports.test = function(request,response){

    if(thisIsTrue){
        response.send('All is good!');
    }else{
        response.send('ERROR! ERROR!');
        return;
    }

    console.log('I do not want this to happen if there is an error.');

}
Run Code Online (Sandbox Code Playgroud)

但那是"正确"做事的方式吗?

备择方案

我也看过使用process.exit();和的例子process.exit(1);,但这给了我一个502 Bad Gateway错误(我假设因为它杀了节点?).

而且callback(); …

exit node.js

19
推荐指数
3
解决办法
4万
查看次数

iPhone"无法播放".mp4 H.264视频文件

我正在尝试为客户端设置一个简单的移动页面,其中包含指向.mp4视频文件的链接.Lke so:

<a href="My_Video_File.mp4" target="_blank">Watch MP4 Video</a>
Run Code Online (Sandbox Code Playgroud)

然后我显然已经正确地获取了我的视频文件,并且.mp4具有以下特征:

Dimension: 480 * 272
Codecs: AAC, H.264, MPEG-4 SDSM, MPEG-4 ODSM
Channel Count: 2
Total Bitrate: 991
Size: 11.4MB
Run Code Online (Sandbox Code Playgroud)

但是,问题是当我点击链接iPhone时说"电影无法播放".并没有告诉我为什么.

有帮助吗?

提前致谢.

iphone video mp4 h.264

11
推荐指数
3
解决办法
4万
查看次数

PHP - 将毫秒转换为小时:分钟:Seconds.fractional

我有一个脚本,它以秒为单位获取一个值(到小数秒的2个小数点):

$seconds_input = 23.75
Run Code Online (Sandbox Code Playgroud)

然后我将其转换为毫秒:

$milliseconds = $seconds_input * 1000; // --> 23750
Run Code Online (Sandbox Code Playgroud)

然后我想格式化它:

H:M:S.x // --> 0:0:23.75
Run Code Online (Sandbox Code Playgroud)

其中'x'是第二个的分数(但是小数点之后的位数很多).

有帮助吗?我似乎无法围绕这一点思考.我尝试使用gmdate(),但它一直在缩短小数秒.

谢谢.

php milliseconds seconds

11
推荐指数
2
解决办法
3万
查看次数

Intermittent 403 CORS Errors (Access-Control-Allow-Origin) With Cloudfront Using Signed URLs To GET S3 Objects

In Brief

In order to keep the uploaded media (S3 objects) private for all the clients on my multi-tenant system I implemented a Cloudfront CDN deployment and configured it (and its Origin S3 Bucket) to force the use of signed URLs in order to GET any of the objects.


The Method

First, the user is authenticated via my system, and then a signed URL is generated and returned to them using the AWS.CloudFront.Signer.getSignedUrl() method provided by the AWS JS SDK …

amazon-s3 amazon-web-services amazon-cloudfront pre-signed-url

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