问题列表 - 第4949页

正确理解 pm.max_children 调优

我做了一些调查,发现这个可以计算和调整pm.max_children

https://myshell.co.uk/blog/2012/07/adjusting-child-processes-for-php-fpm-nginx/

但例如:

  • 我的服务器上有 8Gb
  • 我正在托管 30 个网站
  • php-fpm 平均进程大小约为 40mb
  • php-fpm 最大进程大小约为 80mb
  • 我想为 php-fpm 进程分配最大 5Gb 的内存

如果我应用这个:

pm.max_children = 专用于 Web 服务器的总 RAM / 最大子进程大小

所以在我的情况下:

pm.max_children = 5120 / 80 = 64

但是如果我在每个 php-fpm 网站 conf 文件上添加pm.max_children = 64,这意味着每个网站都可以使用64个子进程X 1 个进程的大小(例如40mb)= 2560Mb

如果我们想象,同时所有 30 个网站都达到了 pm.max_children 值,我们将有:2560Mb(每个网站的最大值)x 30 个网站 = 76 800 Mb

我对么?

Si 是的,这意味着当许多网站托管在同一台服务器上时,我们必须将计算结果pm.max_children = 5120 / 80 = …

memory nginx web-server php-fpm php7

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

unprivileged_userns_clone 没有这样的

我正在尝试在 Jessie Debian 物理服务器(4.9.135 内核)上按照Debian Wiki 中的说明设置非特权 LXC 容器。因此,我想启用userns命名空间:

sysctl kernel.unprivileged_userns_clone=1
sysctl: cannot stat /proc/sys/kernel/unprivileged_userns_clone: No such file or directory
Run Code Online (Sandbox Code Playgroud)

但是,此内核已编译为支持用户命名空间,如下所示:

zgrep CONFIG_USER /proc/config.gz 
CONFIG_USER_NS=y
Run Code Online (Sandbox Code Playgroud)

我已经运行lxc-checkconfigwhich 显示enabled了每个项目,除了checkpoint restore: missing似乎与用户命名空间无关的项目:

--- Namespaces ---
User namespace: enabled
--- Checkpoint/Restore ---
checkpoint restore: missing
Run Code Online (Sandbox Code Playgroud)

谷歌搜索对理解这个错误没有多大帮助......谁能帮我解决这个问题?不要犹豫,询问可能丢失的任何信息......

debian lxc

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

cURL 和带有 SAS 的 Azure BLOB - 未指定此请求所必需的 HTTP 标头

我查看了以下信息:

据我所知,我正在遵守,因为我在 URL 中发布了 SAS。

这是我的简单测试脚本:

#!/bin/bash

DATE_NOW=$(date -Ru | sed 's/\+0000/GMT/')
AZ_VERSION="2018-03-28"
AZ_BLOB_URL="https://XXXXXXXX.blob.core.windows.net"
AZ_BLOB_CONTAINER="XXXXXX"
AZ_BLOB_TARGET="${AZ_BLOB_URL}/${AZ_BLOB_CONTAINER}/"
AZ_SAS_TOKEN="?sv=2017-11-09&ss=b&srt=o&sp=rwlac&se=2021-11-06T01:05:33Z&st=2018-11-09T17:05:33Z&sip=192.0.2.0-192.0.2.254&spr=https&sig=XXXXXXXXXX"

curl -v -X PUT -H "Content-Type: application/octet-stream" -H "x-ms-date: ${DATE_NOW}" -H "x-ms-version: ${AZ_VERSION}" --data-binary "@/home/test/test" "${AZ_BLOB_TARGET}test${AZ_SAS_TOKEN}"
Run Code Online (Sandbox Code Playgroud)

运行产生:

> PUT /XXXX/XXXXX?sv=2017-11-09&ss=b&srt=o&sp=rwlac&se=2021-11-06T01:05:33Z&st=2018-11-09T17:05:33Z&sip=192.0.2.0-192.0.2.254&spr=https&sig=XXXXXXXXXX" HTTP/1.1
> Host: XXXXX.blob.core.windows.net
> User-Agent: curl/7.60.0
> Accept: */*
> Content-Type: application/octet-stream
> x-ms-date: Sat, 10 Nov 2018 17:48:06 GMT
> x-ms-version: 2018-03-28
> Content-Length: 14
> 
* upload completely sent off: 14 out of 14 bytes
< HTTP/1.1 400 …
Run Code Online (Sandbox Code Playgroud)

curl azure azure-storage

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

尝试连接到 AWS RDS 实例时出现未知数据库

我创建了一个 MySQL RDS 实例,但是,当我尝试在不写入数据库名称的情况下进行连接时,它会连接但不允许我创建任何表。当我写名字时,连接失败,我不知道为什么。

错误

错误截图 工作截图

我有我的端点、用户、密码和数据库的名称,这是prueba(西班牙语测试)

AWS 控制台

AWS 控制台

如您所见,实例的名称是“prueba”。当它要求我在控制台中输入数据库的名称时,我也写了“prueba”

mysql database amazon-web-services amazon-rds

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

将 nginx try_files 与多个目录树一起使用

我想让 nginx 通过检查该路径/文件是否存在于几个单独的目录中来处理对特定目录的请求。例如,如果我的根目录具有以下内容:

images/siteA/foo.jpg
images/siteB/b/bar.jpg
images/siteC/example.jpg
Run Code Online (Sandbox Code Playgroud)

我想http://example.com/images/foo.jpg返回文件foo.jpghttp://example.com/b/bar.jpg返回文件bar.jpg等等。

我尝试了以下操作,但它只是被锁定在重定向循环中(我不希望它重定向,但实际上将文件提供给该 URL):

  location /images/ {
    try_files /siteA/images/
              /siteB/images/
              /siteC/images/ =404;

  } 
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用捕获组,例如location ~/images/(.*)/并添加$1到 URL 的末尾。我对文档有点困惑,不确定如何使用 nginx 完成此操作。

configuration nginx

5
推荐指数
2
解决办法
9703
查看次数

运行 tcpdump 启动 ssh flood

我在 PLC 中运行运行时 Linux。我的开发机器运行的是 Ubuntu 14.04。PLC和开发机通过一个五口交换机连接。我从我的开发机器 ssh 到 PLC,以传输我在我的开发机器上开发的网络应用程序的可执行文件。

我在 PLC 上运行 tcpdump 来调试我的网络应用程序正在接收的数据包类型,但是一旦我启动 tcpdump,就会开始大量的 ssh 同步和 acks 从我的 ubuntu 机器到 PLC 来回发送。PLC 的以太网控制器的 LED 灯以及开关上的 LED 灯开始快速闪烁。洪水淹没了 PLC,它几乎消失了,而所有其他数据包都被丢弃了。每当我运行 tcpdump 时,感觉就像是一次 DOS 攻击,但是一旦我停止 tcpdump,一切都会平静下来并恢复正常。

我想知道解决这个问题的方法以及它为什么会发生?

任何帮助,将不胜感激。

ssh tcp tcpdump flooding embedded-linux

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

指向私有 IP 地址的域/子域的有效 SSL 证书

这与我在这里看到的一个问题有关,其中 OP 询问您是否可以将 A 记录指向私有 IP 地址。所以看起来你可以,但我还有一个问题......

如果我创建的子站点privatemydomain.com,并指出这对私有IP地址10.10.1.234,我可以再使用通配符我的SSL证书为*.mydomain.com使https://private.mydomain.com对内部客户端适当/有效的证书?

希望这是有道理的

networking domain-name-system ssl internal-dns private-ip

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

如何在 Windows 主机上使用带有 plink.exe 的 Linux 服务器上的 ssh 主机密钥?

我有 Linux 服务器运行sshd

如何hostkey从 Linux 服务器提供到plink.exeWindows 上?

例如:跑步 plink.exe -ssh -batch -m plink.tmp -hostkey ...

ssh putty plink

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

如果条件允许,Crontab 会影响 bash 脚本?

我在这里有点困惑,并不确定如何调试它。我有一个自己编写的 bash 脚本,用于检查 samba 共享是否处于活动状态,如果没有,则向我发送电子邮件。

脚本在 /root/SKRIPTS/ 中,权限如下所示:

-rwxr-xr-x   1 root  wheel   281 Nov  8 08:54 test_samba_shares.sh
-rwx------   1 root  wheel    39 Nov  7 13:56 smbclient.cred
Run Code Online (Sandbox Code Playgroud)

.sh 脚本的内容是这样的:

smbclient -L 10.0.0.1 -A /root/SKRIPTS/smbclient.cred | grep -q Backup

if [ $? -eq 0 ]
then
    echo "Backup_* mounted, nothing to do"
else
    echo "Subject: Samba has failed" | /usr/sbin/sendmail -v mail@localmail.server
fi

return 1;
Run Code Online (Sandbox Code Playgroud)

/etc/crontab 看起来像这样(仅限条目)

10 1 * * * root /root/SKRIPTS/test_samba_shares.sh
Run Code Online (Sandbox Code Playgroud)

问题是,如果我以 root 身份运行它,它就可以完美运行。但是每天晚上我都会收到一封电子邮件,说 samba 失败了,表明 cron 脚本以某种方式进入了 else …

scripting linux bash cron

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

如何连接到定期更改IP的linux机器?

我的问题是找到一种通过 SSH 连接到 IP 地址每天都在变化的 Linux 服务器(Ubuntu 18.04)的方法。

我有一个客户,我偶尔会帮助他处理管理任务。当他们需要帮助时,我需要通过 ssh 进入机器,但他们没有静态 IP,因此服务器的公共 IP 不断变化。我创建了一个小脚本来报告Linux机器的IP地址,发现它每天中午左右变化一次。

我能够设置 SSH,它可以在本地和远程工作......直到 IP 地址发生变化。一旦发生这种情况,即使使用新的 IP 地址,我也无法再进行远程连接。

  • 每次IP地址变化都需要重启SSH服务吗?
  • 如果是这样,为什么?
  • 当 IP 地址更改以允许 SSH 访问时,我还需要采取任何其他措施吗?

更新

需要明确的是,我的问题不是找到新的 IP 地址。我已经有一个脚本可以做到这一点。问题是服务器在 IP 更改后停止响应,即使我尝试使用新 IP 地址进行连接。

如果我在目标机器上重新启动 SSH 服务,我又可以远程访问了。但我不明白为什么我必须这样做。我想知道根本原因,希望找到更好的解决方案。

大多数人似乎认为只要我们知道新 IP,SSH 就应该可以工作,那么这是 18.04 独有的吗?我最近为客户端安装了这个服务器,所以所有的配置设置仍然是默认的。(不知道怎么改。)

remote-access ssh

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