问题列表 - 第5168页

修复 AH02454 权限被拒绝错误后,当 php-fpm 重新启动时 /run/php-fpm/www.sock 的权限被重置为 root

我正在迁移到新服务器以升级我的内部结构,并且在启动我的 apache 和 PHP 时遇到了此错误

[Fri Apr 09 16:51:26.243820 2021] [proxy:error] [pid 31179:tid 140021109556992] (13)Permission denied: AH02454: FCGI: attempt to connect to Unix domain socket /run/php-fpm/www.sock (*) failed
[Fri Apr 09 16:51:26.243868 2021] [proxy_fcgi:error] [pid 31179:tid 140021109556992] [client 47.213.222.69:56165] AH01079: failed to make connection to backend: httpd-UDS
Run Code Online (Sandbox Code Playgroud)

/run/php-fpm/www.sock文件确实存在,但它具有 root:root 权限。我的网络服务器在非默认用户下运行apache(用户是sites

经过大量搜索后,我发现这篇文章PHP-FPM - Error 503 - Attempt to connect to Unix domain socket failed并发现该/run/php-fpm/www.sock文件需要被 chowed 给运行 httpd 的同一用户。于是我就这么做了$chown sites: /run/php-fpm/www.sock …

httpd php-fpm

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

频繁下线机器的 Ansible 管理

我想使用 Ansible 来管理大约十几个 Linux 工作站上的配置。问题是,作为人们使用的物理机器,它们经常关闭。所以我需要一个解决方案来确保,当我更改集中配置时,它不仅会被推送到正在运行的机器上,而且最终会被推送到几周后出现的机器上。

我有一个想法,并且我愿意接受更好的想法,那就是让一个 cron 作业运行 @reboot 以通过 SSH 连接到服务器并请求针对自身运行剧本。

这似乎意味着我需要:

  • 在服务器上创建部署用户(deploy@server)
  • 在每个工作站上创建一个部署用户 (deploy@ws) 并赋予他们 sudo 权限。
  • 将deploy@server的公钥添加到deploy@ws的authorized_keys中
  • 为deploy@ws 生成一个新的SSH 密钥,并将新生成的SSH 密钥添加到deploy@server 的authorized_keys
  • 设置工作站 cron 作业以作为 deploy@ws 运行以通过 SSH 连接到服务器,并使用相关工作站的 --limit 运行 ansible-playbook。该作业以 deploy@server 的身份运行,然后以 deploy@ws 的身份通过 SSH 返回以实际进行配置。

这感觉有点令人费解。是否有一些更直接的解决方案,我错过了?

linux ansible

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

k8s nginx ingress 在加载时随机返回 502 错误

我们在 k8s 集群 (v.1.17) 上使用 nginx (1.15.8.1) 作为入口控制器,由 rancher (2.5.7) 管理。

到目前为止,这工作得很好,但现在我们设置了一个自定义 API pod,可以通过 ingress 从外部访问。

现在,通过每秒在 API 上触发请求来对 API 进行一些负载测试,每两个请求随机返回“502 Bad Gateway”。但不是定期的。

<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>openresty/1.15.8.1</center>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

各自登录入口控制器:

2021/04/11 11:02:48 [error] 25430#25430: *55805583 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: xxx, server: xxx, request: "POST /api/v1/xxx HTTP/2.0", upstream: "http://xxx/api/v1/xxx", host: "xxx"
Run Code Online (Sandbox Code Playgroud)

我们在非 K8s 环境中运行与 docker 容器完全相同的容器,之前我们从未遇到过这个问题,所以目前我认为这不是容器/API 实现的问题。

我的想法是:

1- 抽象 API pod 的服务定义无法将流量路由到 pod,因此会回复 502

-> …

bad-request kubernetes rancher-2 nginx-ingress

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

如何检查 SQL Server 2019 Standard 是否在 Server Core 上激活?

我通过从MSDN下载的 ISO 在 Windows Server 2019 Core 上安装了 SQL Server 2019 Standard 。当我下载它时,它特别指出“不需要产品密钥”。

由于我将其安装在 Server Core 上,因此我遵循了这些说明

如果您查看说明,会发现/PID需要一个参数来告诉安装程序要安装的 SQL Server 版本(例如 Express、Developer、Standard 等)

但是,我没有找到 SQL Server 2019 标准版的产品 ID。MSDN 中没有,VLSC 中没有,互联网上的其他地方也没有。

该指令指出:

SQL Server 设置控制/PID

指定 SQL Server 版本的产品密钥。如果未指定此参数,则使用评估。

这让我相信我的 SQL Server 现在处于评估模式。我现在想检查我的 SQL Server 是否已获得许可,以及它是如何获得许可的(我应该拥有 4 核的许可证)。

事情有点复杂,因为另一个具有 4 个核心的 SQL Server 的虚拟机(在另一个许可协议中获得许可)正在同一台物理机上运行,​​我读到必须获得物理核心的许可,而不是虚拟机核心。我的新虚拟机上的新 SQL Server 现在是否也使用与其他虚拟机相同的许可证?

然而,我的问题是我不知道我的 SQL Server 现在是否已获得许可。我运行了以下查询:

PS C:\Users\Administrator\Documents> Invoke-SqlCmd -Query "SELECT @@Version" | fl *


Column1   : Microsoft SQL Server …
Run Code Online (Sandbox Code Playgroud)

windows windows-server-core sql-server windows-server-2019

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

为只发送服务器设置 MX 记录

我已经设置了一个仅发送服务器,并使用 mail-tester.com 对其进行了测试。

我收到了 7/10,并且我遇到了大多数 Outlook/msn/hotmail 收件箱将我的电子邮件发送到垃圾文件夹的情况。我确实知道 Microsoft 服务器使用 IP 地址的黑/白名单来实施缓解措施,但我希望 10/10 的邮件测试分数可能会有所帮助。我已经就他们减轻我的 IP 问题与 Microsoft 联系过,他们告诉我,无论他们的政策如何,我都应该尝试在发件人声誉上获得高分。

我正确设置了 DMARC/DKIM/SPF,我在 mail-tester.com 上失去 3 分的唯一方法是因为我没有 MX 记录集。然而,据我所知,仅发送电子邮件服务器不需要 MX 记录;我在网上阅读的许多帖子/文章都指出,缺少 MX 记录对于收件人电子邮件服务器来说是一个很大的危险信号。

我的外发服务器地址/FQDN 是smtp.<my-domain>.ca,只有一个 IP 地址的服务器发送电子邮件,并为其设置了 rDNS 记录。

网上有很多相互矛盾的信息,我不想破坏我的 DNS 条目,我应该使用的最低 MX 记录是多少?

domain-name-system smtp mx-record

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

通过 SSL 需要 Host: 标头吗?

即使请求不是 HTTP/1.1,是否也需要通过 SSL 的 Host: 标头?

因此,如果客户端通过 SSL 连接,并发送以下请求:

GET / HTTP/1.0
Run Code Online (Sandbox Code Playgroud)
  1. 由于缺少 Host: 标头,Web 服务器是否应该抛出错误的请求?
  2. Web 服务器是否应该以 HTTP/1.0 200 OK 响应进行响应?
    ( index.html 文件始终存在,因此对/的请求永远不会导致 403/404)

更新:

如果我在 中禁用 SNI openssl s_client,apache 将在没有 Host: 标头的情况下工作。

为什么在 SNI 开启时需要 Host: 标头?

ssl http host-headers

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

本地网络中设备的 SSL

初始问题

我们制造运行网络服务器的设备,用户可以通过直接浏览设备的 IP 来控制设备的某些功能。当使用直接 WiFi 或以太网连接时,这可以是固定 IP,但在大多数情况下,这是设备从网络中的 DHCP 服务器接收的 IP。

访问浏览器的一些更高级的功能需要越来越多的 HTTPS。例如访问缓存(https://developer.mozilla.org/en-US/docs/Web/API/Cache),允许使用网络摄像头(https://blog.mozilla.org/webrtc/camera -microphone-require-https-in-firefox-68/ ), Service Workers ( https://www.digicert.com/dc/blog/https-only-features-in-browsers/ ), ...列表保留每天都在成长。

我都赞成拥有安全系统,但我认为存在一个主要问题。HTTPS (TLS) 设置证书的方式仅在域名与证书中的域名匹配并且证书颁发机构被客户端浏览器接受时才被标记为有效,即所谓的信任链。这在使用固定主机名的网络上非常有效。

然而,当用户不使用互联网而是使用他们的本地网络时,主机名是事先不知道的。有时用户可以使用本地 DNS、mDNS,但情况并非总是如此。很多时候用户只使用内部 IPv4 地址。这是问题开始的地方,因为使用我们制造的设备有两种选择:

  1. 用户不使用 HTTPS(我们不强制执行,请继续阅读以了解原因)。目前的主要浏览器不会给出明确的警告,而是将页面标记为浅灰色的“不安全”。大多数用户甚至没有注意到它并且非常高兴。
  2. 用户在同一设备上使用 HTTPS。尽管这使得连接更加安全,但浏览器现在明确告诉他们要极其谨慎地使用该设备,并且连接可能被黑客入侵,私人数据可能会被盗。该站点现在以红色标记为“不安全”,用户必须按 2 或 3 个按钮以允许证书例外。

选项 2 是我们不强制设备通过 HTTPS 访问的原因,因为它只是向许多用户发出警报并淹没客户服务。五年前,这并不是真正的问题,因为没有 HTTPS 一切都可以完成。随着越来越多的 API 现在只能在“安全上下文”中工作,这对我们来说真的是一个问题。

因此,我认为设计一个完全在内部网络中使用 HTTPS 而不使用主机名系统的系统的需求变得非常大。我可以想象私有 IPv4 范围可以从警告或更聪明的东西中排除。这让我想到我的问题,您是否面临同样的问题,如何解决?

更新 1

正如第一条评论中所指出的,现在提出的解决方案是使用通配符证书并为公共域上的设备配置 DNS 条目。然而,这存在客户端仍然需要活动互联网连接的问题。在此类设置中,情况当然并非总是如此。

更新 2

我还发现了这篇关于 Let's encrypt 的文章,它在没有给出解决方案的情况下讨论了同一主题:https : //letsencrypt.org/docs/certificates-for-localhost/

更新三:假设的解决思路

阅读以下答案和评论后,我正在考虑针对该问题的可能的安全解决方案。下面的设置(如果允许的话)是否安全?

  1. 从具有名称约束的受信任根 CA 请求中间 CA 证书,该证书仅允许创建多个中间 CA,这些中间 CA 只能为单个固定主机名“*.mydevice.local”或类似内容创建证书,并允许所有私有 IPv4 地址在 SAN 中使用。 …

security ssl web

25
推荐指数
3
解决办法
5781
查看次数

HTTP/2 的请求行是什么?

对于 HTTP/0.9:

GET /
Run Code Online (Sandbox Code Playgroud)

对于 HTTP/1.0:

GET / HTTP/1.0
Run Code Online (Sandbox Code Playgroud)

对于 HTTP/1.1:

GET / HTTP/1.1
Host: example.com
Run Code Online (Sandbox Code Playgroud)

HTTP/2 的请求行是什么?是不是像这样:

GET / HTTP/2.0
Run Code Online (Sandbox Code Playgroud)

还是 HTTP/2?

requestheader http2

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

为什么我的 websocket 连接在 60 秒内关闭?

我有一个由 nginx 代理的 Angular Web 应用程序。应用程序中有一个 websocet 功能,相关部分如下所示:

  location /ws {
    proxy_http_version 1.1;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Upgrade $http_upgrade;
    proxy_pass http://websocket.server:9090/ws;
    proxy_set_header Host $host;
  }
Run Code Online (Sandbox Code Playgroud)

docker-composenginx 是 dockerized 的,并通过自定义构建的映像在我的机器上运行:

FROM node:alpine as node-build
WORKDIR /app
ADD ...
RUN npm install
RUN npm run build --prod

FROM nginx:alpine
ADD nginx.conf ./
COPY --from=node-build /app/... /usr/share/nginx/html
Run Code Online (Sandbox Code Playgroud)
version: "3"
services:
  frontend:
    build:
      context: .
    ports:
    - 4200:80
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
Run Code Online (Sandbox Code Playgroud)

除了其他几个位置之外,nginx.conf 中没有其他任何内容:

server {
  listen 80;
  server_name frontend;
  location / {...}
  location …
Run Code Online (Sandbox Code Playgroud)

nginx docker

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

我的驱动器是否与 Linux 软件 RAID 0 阵列同等使用?

我在 RAID 0 配置中有四个 NVMe 驱动器。

我正在尝试确定阵列正在处理多少 IOPS。

当我运行时iostat,似乎一个驱动器处理的 IO 比其他三个驱动器多。

这是iostat收集数据方式的错误、mdadm 的已知问题,还是我错误地配置了阵列?

使用详情。

# iostat

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
nvme0n1        1669.12     22706.35     13975.13 63422465065 39034761844
nvme3n1         753.28     13228.56     12185.39 36949483692 34035736524
nvme1n1         635.93     13781.47     14014.10 38493855272 39143630456
nvme2n1         744.35     14704.94     14283.13 41073264648 39895068820
md0            4291.15     72863.78     56468.04 203520212237 157724286024
Run Code Online (Sandbox Code Playgroud)

软件 RAID 设备详细信息

# mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Fri Feb 19 22:45:06 2021
        Raid Level : raid0
        Array …
Run Code Online (Sandbox Code Playgroud)

raid ext4 mdadm iostat nvme

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