小编cee*_*yoz的帖子

nginx HTTPS 使用与 HTTP 相同的配置

有没有办法在两个 nginxserver {}块之间共享配置指令?我想避免重复规则,因为我网站的 HTTPS 和 HTTP 内容使用完全相同的配置。

目前,它是这样的:

server {
  listen 80;
  ...
}

server {
  listen 443;

  ssl on; # etc.
  ...
}
Run Code Online (Sandbox Code Playgroud)

我可以做一些类似的事情:

server {
  listen 80, 443;
  ...

  if(port == 443) {
    ssl on; #etc
  }
}
Run Code Online (Sandbox Code Playgroud)

nginx https

215
推荐指数
5
解决办法
19万
查看次数

在 Amazon ECS 中更新服务的容器

建议使用哪种方法来更新在 Amazon ECS 中运行的服务的容器?

AWS文档说:“如果你已经更新了应用程序的泊坞图像,你可以创建一个新的任务定义与图像,并将其部署到您的服务,一次一个任务。” 这几乎是当前文档中当前可用的所有内容(2015 年 4 月 13 日)。

我是否理解正确,在 Amazon ECS 中更新我的应用程序容器的唯一方法是创建一个新任务,然后停止旧任务并启动新任务?

我已经成功地在 Core OS 和 Fleectl 中使用了“最新”标签。这样做的好处是不需要为新的更新更改 Docker 镜像的标签,因为重新加载服务将看到新的更改并更新容器(使用相同的标签“最新”)。

您使用哪种方法在 Amazon ECS 中使用更新的 docker 镜像更新您的服务?

update containers amazon-web-services docker amazon-ecs

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

Amazon ECS (Docker):将容器绑定到特定 IP 地址

我正在使用 Amazon ECS(Docker 的重新打包),我发现 ECS 似乎没有提供一项 Docker 功能。即,我希望在一个实例中运行多个容器,并将进入 IP 地址 1 的请求映射到容器 1,进入 IP 地址 2 的请求映射到容器 2,等等。

在 Docker 中,将容器绑定到特定 IP 地址是通过以下方式完成的:

docker run -p myHostIPAddr:80:8080 imageName command
Run Code Online (Sandbox Code Playgroud)

但是,在 Amazon ECS 中,似乎没有办法做到这一点。

我已经设置了一个具有多个弹性 IP 地址的 EC2 实例。将容器配置为任务定义的一部分时,可以将主机端口映射到容器端口。但是,与 Docker 不同的是,ECS 不提供将主机 IP 地址指定为映射的一部分的方法。

另一个转折点是我希望来自容器 N 的出站请求具有容器 N 的外部 IP 地址。

有没有办法做到以上所有?

我浏览了 AWS CLI 文档以及适用于 Java 的 AWS 开发工具包。我可以看到 CLI 可以返回一个包含如下元素的 networkBindings 数组:

{
  "bindIP": "0.0.0.0", 
  "containerPort": 8021, 
  "hostPort": 8021
},
Run Code Online (Sandbox Code Playgroud)

Java SDK 有一个名为 NetworkBinding 的类,表示相同的信息。但是,此信息似乎仅用于输出,以响应请求。我找不到向 ECS 提供此绑定信息的方法。

我想这样做的原因是我想为不同的选区设置完全不同的 VM,在同一个 …

amazon-web-services docker amazon-ecs

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

nginx 工作进程数

我正在设置 nginx 以提供 Drupal 安装服务,但我似乎发现有关 nginx 工作进程设置的信息存在冲突。一个站点说你需要两个,一个说你需要五个,一个说每个处理器一个......

我应该如何选择 nginx 工作进程的数量?如果它有所作为,那么它就是 VMWare 集群上的一个来宾 VM,我已经给了它一个虚拟处理器。

nginx web-server

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

每晚自动关闭 ESXi 主机

我们刚刚选择了一个新的开发服务器,我已经在上面加载了 ESXi。

它所在的房间白天通风良好,但晚上门是关着的,里面很热。我被要求每晚关闭盒子,因为我们不在办公室时无论如何都不会使用它。

有没有办法做到这一点?

virtualization scheduled-task electrical-power physical-environment vmware-esxi

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

大型 Drupal 站点的服务器场设置

我正在建立一个大型 Drupal (Pressflow) 站点,这是我目前的计划。我有没有做过什么明显愚蠢的事情?有没有人有过像这样托管大型多服务器 Drupal 安装的经验?

基础设施

drupal web-farm

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

针对特定用户的 Google 身份验证器 PAM

我当前的 sshd PAM 配置:

#%PAM-1.0
auth       include      system-auth
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
session    optional     pam_keyinit.so force revoke
session    include      system-auth
session    required     pam_loginuid.so
Run Code Online (Sandbox Code Playgroud)

我正在添加 Google 身份验证器,但我们尚未准备好向所有用户推出它。

相信以下内容应该需要“gauth”组中的用户使用 Google Authenticator PAM,但希望有人可以在我将自己锁定在 SSH 之外之前检查我的工作...

#%PAM-1.0
auth       include      system-auth
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
auth [success=1 default=ignore] pam_succeed_if.so quiet user notingroup gauth
auth required pam_google_authenticator.so
session    optional     pam_keyinit.so force revoke
session    include      system-auth
session    required     pam_loginuid.so
Run Code Online (Sandbox Code Playgroud)

我是否正确理解“success=1”意味着“如果成功则跳过下一行”?

password authentication pam google-authenticator

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

已安装 Amazon Linux pecl_http 但未提供功能

我已经pecl_http使用 Amazon Linux php54-pecl-httpYum 包安装了 PHP 的扩展。

  • php -i显示http.ini加载的文件
  • http.ini里面有这extension=http.so条线
  • php -m 显示已安装的 HTTP 模块
  • pecl list显示pecl_http 2.0.0beta1为已安装。

然而,当我尝试使用它的函数- new HttpRequest()http_build_url()等-他们回来是不存在的。我在 CLI 上运行所有内容(这是一个实用程序服务器),因此php.ini环境之间没有机会出现不同的文件。

php -i的 http 块指出:

http

HTTP Support => enabled
Extension Version => 2.0.0beta1

Used Library => Compiled => Linked
libz => 1.2.5 => 1.2.5
libcurl => 7.24.0 => 7.24.0
libevent => 1.4 or greater => 2.0.18-stable
libserf => disabled …
Run Code Online (Sandbox Code Playgroud)

php pecl amazon-ami

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

如何使用 Amazon EC2 Container Service 扩展一个容器

我是使用 Amazon ECS 的新手,我想知道如何设置服务以便轻松扩展/缩减一个容器。

这是我的项目架构:

  • 网站:网站的容器,仅提供 html 页面和 javascript/css/images。听80。
  • api:在 NodeJS 中开发的 API 容器,提供 json 服务。在 443 上收听。
  • rabbitmq:带有rabbitmq的容器。api 容器链接到它。
  • worker:等待来自rabbitmq的订单(它也链接到它)并处理它们,然后将答案发送回rabbitmq的容器。

目前,我只为我的所有容器创建了一个任务定义,而在我的集群中,我只有一项服务。我在 API 上也有一个负载平衡器(所以我可以通过 DNS 名称从网站访问它)。

它工作正常,但我希望能够启动更多的工作人员,而不启动其他一切,而且我现在似乎无法做到这一点(如果我错了,请纠正我)。所以我有几个问题:

  • 我需要创建单独的任务定义吗?
  • 我需要创建单独的服务吗?
  • 如果我为每个容器创建一个任务定义(因此前面website后面apibrokerrabbitmqworkerworker),我是否仍然能够将容器链接在一起,即使它们不在同一个任务定义中?

这是我当前的任务定义:

{
  "taskDefinitionArn": "arn:aws:ecs:ap-southeast-2:347930943102:task-definition/Flipendo:4",
  "revision": 4,
  "containerDefinitions": [
    {
      "volumesFrom": [],
      "portMappings": [],
      "command": [],
      "environment": [
      ],
      "essential": true,
      "entryPoint": [],
      "links": [
        "rabbitmq"
      ],
      "mountPoints": [],
      "memory": 2048,
      "name": "worker",
      "cpu": …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services docker amazon-ecs

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

Drupal 中的远程数据库极其缓慢

我们正在尝试扩展我们的 Drupal 安装并决定使用一些专用的 MySQL 设备。不幸的是,当我们尝试使用远程数据库时,我们遇到了极其缓慢的情况——页面加载时间从大约 200 毫秒到 5-10 秒。

服务器之间的延迟很小 - 十分之一或二毫秒。

PING 10.37.66.175 (10.37.66.175) 56(84) bytes of data.
64 bytes from 10.37.66.175: icmp_seq=1 ttl=64 time=0.145 ms
64 bytes from 10.37.66.175: icmp_seq=2 ttl=64 time=0.157 ms
64 bytes from 10.37.66.175: icmp_seq=3 ttl=64 time=0.157 ms
64 bytes from 10.37.66.175: icmp_seq=4 ttl=64 time=0.144 ms
64 bytes from 10.37.66.175: icmp_seq=5 ttl=64 time=0.121 ms
64 bytes from 10.37.66.175: icmp_seq=6 ttl=64 time=0.122 ms
64 bytes from 10.37.66.175: icmp_seq=7 ttl=64 time=0.163 ms
64 bytes from 10.37.66.175: icmp_seq=8 …
Run Code Online (Sandbox Code Playgroud)

mysql database drupal database-performance

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