问题列表 - 第5091页

为什么采用 HTTP 协议的 AWS 经典 ELB 不能与 Websocket 配合使用?

我知道有一个 ALB 和 NLB 选项可与 websocket 一起使用。我不明白为什么带有 HTTP 协议的经典 ELB 不适用于 websocket 连接,尽管在实例中 Nginx 配置为添加连接和升级标头。一旦我将其切换到 TCP 协议,它就可以工作了。你能解释一下当中间有 HTTP 代理时这个协议到底是如何工作的吗?

它仍然使用相同的 TCP,一旦客户端到达服务器并且 Nginx 添加了升级标头,带有切换协议消息的服务器响应应该到达客户端,然后它们只使用已建立的 HTTP 连接的 TCP。它丢弃 ELB 上的此连接、响应缓冲或只是丢弃所有非 HTTP 流量的原因是什么?

所以Nginx发送到ELB

 HTTP/1.1 101 Switching Protocols
Server: nginx/1.13.1
Date: Sat, 21 Mar 2020 07:53:38 GMT
Connection: upgrade
Upgrade: websocket
Sec-WebSocket-Accept: PozdkhgL/Zdkgh3kwu0KkACFCt0=
Run Code Online (Sandbox Code Playgroud)

但是ELB从来没有将其返回给客户端,并且请求超时。

proxy load-balancing amazon-web-services amazon-elb websocket

-1
推荐指数
1
解决办法
6119
查看次数

为什么当文件存在时 docker-compose 会发出“没有这样的文件或目录”?

我正在测试我的服务器的裸机恢复,它基本上用我的服务启动了一组 docker 容器。我从备份中恢复/etc/docker,在那里我保留了所有配置和持久卷。

然后我尝试启动其中一个容器:

root@srv-backup:/etc/docker# docker-compose --verbose -f /etc/docker/docker-compose.d/20-registry.yaml up
compose.config.config.find: Using configuration files: /etc/docker/docker-compose.d/20-registry.yaml
ERROR: compose.cli.main.main: .IOError: [Errno 2] No such file or directory: '/etc/docker/docker-compose.d/20-registry.yaml'
Run Code Online (Sandbox Code Playgroud)

然而,该文件在那里:

root@srv-backup:/# ll /etc/docker/docker-compose.d/20-registry.yaml
-rwxrwxr-x+ 1 root root 842 Jan 24 15:19 /etc/docker/docker-compose.d/20-registry.yaml*

root@srv-backup:/# cat /etc/docker/docker-compose.d/20-registry.yaml
services:
  registry:
    container_name: registry
    image: registry
    labels:
      - traefik.http.routers.registry.rule=Host(`registry.example.com`)
      - traefik.http.routers.registry.entryPoints=https
      - traefik.http.routers.registry.tls=true
      - traefik.http.routers.registry.tls.certresolver=le
      - traefik.http.middlewares.lan.ipwhitelist.sourcerange=192.168.10.0/24, 192.168.20.0/24
      - traefik.http.routers.registry.middlewares=lan
      - traefik.enable=true
    restart: unless-stopped
    volumes:
      - /etc/docker/container-data/registry:/var/lib/registry
version: '3'

root@srv-backup:/# file /etc/docker/container-data/registry
/etc/docker/container-data/registry: directory
Run Code Online (Sandbox Code Playgroud)

我用相对路径和完整路径尝试了各种咒语 - …

docker docker-compose

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

迷你库贝。如何允许从容器访问本地mysql数据库

我正在尝试从 minikube 容器访问本地 MySQL 数据库。我的 minikube 可在带有 hyper-v 驱动程序的 Windows 10 上运行。我找到了一些解决方案(从 VirtualBox 创建仅主机网络),但没有找到适用于 hyper-v 的解决方案。有人可以帮助我如何从 minikube hyper-v 连接到 localhost mysql 服务器吗?

mysql localhost kubernetes minikube

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

为什么我必须多次显式定义标签?

为什么需要多次定义部署的标签?为了快速解释我的问题,我举一个例子。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app
# 1st Time
  labels:
    app: app
    tier: backend
spec:
  selector:
# 2nd Time
    matchLabels:
      app: app
      tier: backend
  template:
    metadata:
# 3rd time
      labels:
        app: app
        tier: backend
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是我真的找不到任何spec.selector.matchlabels存在的充分理由。spec.selector.matchlabels 一定要匹配 spec.template.metadata.labels对吗?

描述:

Pod 的标签选择器。由此选择的 pod 的现有 ReplicaSet 将受到此部署的影响。它必须与 Pod 模板的标签匹配。

那么,如果它们应该固定为 kubernetes 知道的特定值,并且如果其中一个与另一个不匹配,无论如何都会抛出错误,那么为什么必须明确定义它们呢?


我的第二个问题可能有更合理的答案,那就是为什么必须明确定义部署的标签和模板的标签?它们不应该也相互匹配吗?或者是否存在它们可能不匹配的情况?我只是错误地使用它们吗?没有关于它们针对模板标签的使用的明确文档。:/

如果我可能做错或理解错误,请指出!:D

kubernetes

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

如何在不中断的情况下将 BIND 配置从 auto-dnssec 维护迁移到 dnssec-policy?

BIND 9.16 引入了一项新dnssec-policy功能,作为长期建立的功能的进一步自动化的 DNSSEC 密钥管理和签名工具auto-dnssec maintain

该文档似乎没有涵盖从旧版本到新版本的迁移,但相关的 wiki 页面似乎表明dnssec-policy.

也就是说,建立一个新区域dnssec-policy非常简单,但是将现有区域从 迁移auto-dnssec maintaindnssec-policy似乎并不像人们预期的那样有效。
我所期望的是与现有密钥兼容的策略将继续使用这些密钥。

似乎发生的情况是,所有现有密钥都会立即从区域中删除,因为它们已经“过期”并被新密钥替换,即使新策略强制要求一组兼容的密钥(相同的算法和大小)并且现有密钥已未定义生命周期终止属性(仅CreatedPublishActivate.key 文件中的计时)。

我在测试时使用的策略如下所示(命名以反映测试期间的内容):

dnssec-policy alg13-ksk-unlimited-zsk-60day {
     keys {
         ksk key-directory lifetime unlimited algorithm ECDSAP256SHA256;
         zsk key-directory lifetime P60D algorithm ECDSAP256SHA256;
     };
};
Run Code Online (Sandbox Code Playgroud)

这是配置从 更改为 时的日志auto-dnssec maintain;输出dnssec-policy alg13-ksk-unlimited-zsk-60day;

zone zone.example/IN (signed): reconfiguring zone keys
keymgr: DNSKEY zone.example/ECDSAP256SHA256/49004 (KSK) created for policy alg13-ksk-unlimited-zsk-60day
keymgr: DNSKEY …
Run Code Online (Sandbox Code Playgroud)

domain-name-system bind dnssec

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

如果文件在源上损坏/丢失,只读副本如何提供帮助

我正在对我的数据库实施灾难恢复计划,我对只读副本的基本工作方式有一些担忧。

假设我有一堆订单信息,但随后数据库崩溃了,根据我的理解,我基本上可以只换出源数据库的副本,我将拥有所有数据库信息并可以继续。

我不清楚的情况是,假设有人不小心(或故意)删除了一堆数据,我想回退到只读副本,如果源数据库上的数据被删除,它会在只读副本上被删除还有?

本质上,我想确切地知道哪些数据将进入只读副本,以及是否可以将其恢复到我需要的确切时间点

amazon-web-services rds

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

使用 dovecot 压缩旧电子邮件

如何配置 dovecot 来压缩/存档旧电子邮件(例如 6 个月前的电子邮件),同时用户仍然能够阅读它们,以节省服务器上的一些宝贵空间?

email compression dovecot gzip

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

DMARC 严格对齐与宽松对齐?

我一直在为邮件服务器配置 DNS 记录,但在 DMARC 对齐方面遇到了困难。

我知道 和relaxed都是strict有效的选项,并且relaxed是默认设置。但是,我想知道是否有普遍接受的“最佳”做法?

随着 DMARC 变得更加广泛,是否期望这种strict对齐方式将成为推荐/默认对齐方式?

email-server spf dkim best-practices dmarc

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

如何只启用一个ip到squid代理服务器?

我正在尝试使用我的 debian 服务器创建一个简单的代理服务器,我安装了 squid3 并添加了该配置:

http_port 3128

forwarded_for off
via off

acl Safe_ports port 1-65535


http_access allow 111.222.333.444
http_access allow Safe_ports
Run Code Online (Sandbox Code Playgroud)

但它不适用于给定的 ip,只有当我添加http_access allow all.

proxy squid

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

Postfix错误,SASL认证失败;无法对服务器进行身份验证,没有可用的机制

我想从我的家庭服务器设置后缀中继到我的网站托管 SMTP 服务器。它是 Centos 7,使用动态 IP 和动态 DNS 进行设置。由于我的托管站点空间有限,我想托管我自己的邮箱,同时仍然使用站点的 SMTP,因为它是静态 IP。我根据本教程设置了我的后缀。

但是,当我测试向 Gmail 发送电子邮件时,我的电子邮件被推迟了。我哪里设置错了?我使用 Thunderbird 的电子邮件帐户,它连接正常(STARTTLS,普通密码)

warning: SASL authentication failure: No worthy mechs found
Mar 24 11:42:48 server.local postfix/error[4142]: D16F51084542: to=<******@gmail.com>, relay=none, delay=361, delays=361/0.02/0/0.02, dsn=4.7.0, status=deferred (delivery temporarily suspended: SASL authentication failed; cannot authenticate to server mail.myhosting.com[202.52.***.***]: no mechanism available)
Run Code Online (Sandbox Code Playgroud)

这是我的 main.cf

smtpd_banner = $myhostname ESMTP $mail_name (CentOS)
biff = no
append_dot_mydomain = no
readme_directory = no
myhostname = mail-example.duckdns.org
mydomain = mail-example.duckdns.org
mynetworks = 127.0.0.0/8 192.168.101.0/24 192.168.98.0/24 …
Run Code Online (Sandbox Code Playgroud)

postfix sasl centos7

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