我正在迁移到新服务器以升级我的内部结构,并且在启动我的 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 …
我想使用 Ansible 来管理大约十几个 Linux 工作站上的配置。问题是,作为人们使用的物理机器,它们经常关闭。所以我需要一个解决方案来确保,当我更改集中配置时,它不仅会被推送到正在运行的机器上,而且最终会被推送到几周后出现的机器上。
我有一个想法,并且我愿意接受更好的想法,那就是让一个 cron 作业运行 @reboot 以通过 SSH 连接到服务器并请求针对自身运行剧本。
这似乎意味着我需要:
这感觉有点令人费解。是否有一些更直接的解决方案,我错过了?
我们在 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
-> …
我通过从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) 我已经设置了一个仅发送服务器,并使用 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 记录是多少?
即使请求不是 HTTP/1.1,是否也需要通过 SSL 的 Host: 标头?
因此,如果客户端通过 SSL 连接,并发送以下请求:
GET / HTTP/1.0
Run Code Online (Sandbox Code Playgroud)
如果我在 中禁用 SNI openssl s_client,apache 将在没有 Host: 标头的情况下工作。
为什么在 SNI 开启时需要 Host: 标头?
我们制造运行网络服务器的设备,用户可以通过直接浏览设备的 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 地址。这是问题开始的地方,因为使用我们制造的设备有两种选择:
选项 2 是我们不强制设备通过 HTTPS 访问的原因,因为它只是向许多用户发出警报并淹没客户服务。五年前,这并不是真正的问题,因为没有 HTTPS 一切都可以完成。随着越来越多的 API 现在只能在“安全上下文”中工作,这对我们来说真的是一个问题。
因此,我认为设计一个完全在内部网络中使用 HTTPS 而不使用主机名系统的系统的需求变得非常大。我可以想象私有 IPv4 范围可以从警告或更聪明的东西中排除。这让我想到我的问题,您是否面临同样的问题,如何解决?
正如第一条评论中所指出的,现在提出的解决方案是使用通配符证书并为公共域上的设备配置 DNS 条目。然而,这存在客户端仍然需要活动互联网连接的问题。在此类设置中,情况当然并非总是如此。
我还发现了这篇关于 Let's encrypt 的文章,它在没有给出解决方案的情况下讨论了同一主题:https : //letsencrypt.org/docs/certificates-for-localhost/
阅读以下答案和评论后,我正在考虑针对该问题的可能的安全解决方案。下面的设置(如果允许的话)是否安全?
对于 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?
我有一个由 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) 我在 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)