小编Rtm*_*tmY的帖子

修改 systemd 单元文件而不改变上游单元文件

我已经pimd通过apt. 这带有上游systemd单元文件 ( /lib/systemd/system/pimd.service)。

我希望服务在由于某种原因被杀死时重新启动,因此我希望Restart = always在单元文件中添加该行。

但是,我不想修改上游单元文件。

有什么解决方法吗?

systemd

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

创建部署时使用的规范 - 选择器 - 匹配标签是什么?

来自Kubernetes 文档

selector 字段定义了 Deployment 如何找到要管理的 Pod。

但是,在创建部署时,我已经将 pod 模板指定为部署的一部分。那么,为什么我还需要选择器呢?

它是否应该像服务一样使用,其中 pod 已经单独启动,但后来被置于 Deployment 的保护伞下以一起管理?

kubernetes

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

何时在 Nginx 中使用或不使用 sendfile on/off?

我们在nginx.conf很长一段时间内都有这个设置。

sendfile on;
Run Code Online (Sandbox Code Playgroud)

当我们更新了一个文件,例如/js/main.js从浏览器https://test.com/js/main.js?newrandomtimestamp访问时,它仍然会加载旧版本,除非我们从浏览器中完全刷新(清除缓存)。

但是当我们从 sendfile 更改设置时;发送文件关闭;浏览器将加载更新文件的正确版本。

对于我们的生产网络服务器,我们应该使用 sendfile 吗?或发送文件关闭;?如果发送文件打开;是必需的(可能是为了更好的缓存?更快的性能?) 那么如何解决上面提到的问题?

以下是nginx.conf我们生产服务器中的,我们使用的是 1.7.5 版本:

user  nginx;
worker_processes  2;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
worker_rlimit_nofile 51200;

events {
    use epoll;
    worker_connections  51200;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    client_max_body_size 8m;
    sendfile        on;
    keepalive_timeout  65;

    real_ip_header X-Forwarded-For;
    set_real_ip_from 0.0.0.0/0;
    large_client_header_buffers 4 32k;

    gzip on;
    gzip_min_length 1k; …
Run Code Online (Sandbox Code Playgroud)

nginx cache

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

如何在原始网络上为 docker 容器提供自己的可路由 IP?

主要问题

想象一下这个场景。

  • 192.168.0.0/24的网络。
  • 主机名为“Docker-Host”的计算机正在 192.168.0.2 运行 docker 引擎
  • 'Docker-Host' 运行 sshd 服务器
  • 在 'Docker-Host' 上,我在使用 ssh:22 和 https:443 (GitLab) 的容器中运行应用程序

我如何为这个容器分配 192.168.0.3 的 IP?

我需要服务在他们设计的默认端口上运行。


附加信息

我不能使用反向代理作为解决方案,因为这并不能解决如何通过 SSH 与 GitLab 实例通信的问题。

在这种情况下,将端口 22 映射到主机上的不同端口是不专业的,我的客户端开发人员不会喜欢这种设置。

如果我正在启动此应用程序的许多实例,这也将很难维护。并且必须为每个容器将每个 SSH 映射到主机上的新端口。

我的客户需要能够在没有额外配置客户端的情况下解析和运行以下内容。

https://GitLab.internal.net.work

ssh git 克隆https://GitLab.internal.net.work

我已经查看了 Docker 网络文档,除非我弄错了,否则我看不到一个易于维护的解决方案(尽管我还是 Docker 的新手)。

如何才能做到这一点?在这种情况下,其他人在做什么作为“最佳实践”?(如果可能,请以 docker-compose 语法的形式给出答案)。

ssh containers docker kubernetes docker-compose

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

从 CloudFront 请求 JS 文件时收到 403

这对我来说是新的,所以如果我不知道我在说什么,请原谅我(:我正在尝试通过子域通过向该子域添加 CNAME 来设置我自己的带有 CloudFront 和 S3 的 CDN 以指向云前线。

似乎我在尝试加载文件时收到了 403,这是原始 s3链接,在为所有人设置打开/下载权限后似乎可以正常工作。但是当尝试使用子域请求文件时:http : //cdn.chaoscod3r.com/libs/polyfills/json3_polyfill.js;好像我得到了那个 403。

谁能帮我解决这个问题?

amazon-s3 cname-record amazon-cloudfront

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

AWS with Terraform - 过滤公共/私有子网(不依赖标签)

要求:

我想旋转 AWS ALB - 为此,我需要在两个不同的可用区中至少有两个子网。

(Terraform 显示了一个非常明确的错误,以防我们忘记 - 请参阅下面的错误 #1)。

我想检查相关 VPC 中当前拥有的公有子网数量,并确保其至少为 2。

我的尝试:

为此我将计算:

number_of_public_subnets_to_create  = "${2 - length(data.aws_subnet_ids.customer_a_public_subnets.ids)}"
Run Code Online (Sandbox Code Playgroud)

对于上面的计算 - Terraform 有 2 种数据源类型: aws_subnetaws_subnet_ids

如果子网被标记 - 我们可以使用aws_subnet_ids数据源并添加一个简单的过滤器,如下所示:

data "aws_subnet_ids" "customer_a_public_subnets" {
  vpc_id = "${data.aws_vpc.my-customer_a-vpc.id}"
  tags {
      Tier = "Public"
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

但是如果子网不包含“公共/私有”标签怎么办?

有没有简单的解决方案(也许是aws_subnet数据源上的通用过滤器)?


错误#1:

创建应用程序负载均衡器时出错:ValidationError:必须指定两个不同可用区中的至少两个子网。

amazon-web-services terraform

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

AWS Nat 网关 - 使用非弹性 IP 地址

我正在通过 Terraform 构建 AWS VPC 网络实验室。

我想添加一个 NAT 网关,以便我的私有网络实例可以访问 Internet 进行软件更新。

从 Terraform规范中,您可以看到“allocation_id”是必需的属性:

allocation_id -(必需)网关的弹性 IP 地址的分配 ID。

在 AWS规范中也进行了检查- 在步骤 1 中:

NAT 网关需要您的公有子网中有一个弹性 IP 地址...

我的问题是:为什么 NAT 网关不能使用简单的non static IPv4 address?

这样做的逻辑原因是什么?(从技术上讲,这是配置的唯一选项)。

注意:问题在 AWS 的范围内,而不是 Terraform。


Terraform 中 Nat 网关配置的简短示例:

resource "aws_nat_gateway" "natgw" {
  allocation_id = "${(aws_eip.nateip.id)}"
  subnet_id     = "${(aws_subnet.public.id)}"
  depends_on    = ["aws_internet_gateway.igw"]
}
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform amazon-nat-gateway

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