小编Jer*_*oen的帖子

ec2 重启了我的实例?

我发现我在 EC2 上的 CentOS 5 服务器在没有我的命令的情况下重新启动。我什至没有在它重新启动的那天登录。当我查看 linux 中的“last”时,它说:

jeroen   pts/0        128.97.......    Thu Apr  7 15:02 - 16:28  (01:25)    
reboot   system boot  2.6.18-xenU-ec2- Wed Apr  6 15:48         (1+05:27)   
jeroen   pts/2        128.97.......    Tue Apr  5 19:31 - 23:17  (03:45)
Run Code Online (Sandbox Code Playgroud)

所以看起来那天没有人登录。对可能发生的事情有什么建议吗?EC2 会在任何情况下重启实例吗?或者它可能被黑客入侵?

linux centos amazon-ec2

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

ext4 中每个目录的最大文件数

我管理一个包含文件存储的应用程序,其中所有文件都以等于其 md5 总和的文件名存储。所有文件都存储在一个目录中。目前有数千个文件,但很快就会在服务器上达到数百万个文件。当前服务器在 ext4 文件系统上运行 Ubuntu 11.10。

有人告诉我,将多个文件放在一个目录中是不明智的,因为这会显着增加查找时间和可靠性(他有一个关于单个目录可以指向的最大文件数的故事,从而导致一个很大的链表)。相反,他建议使用例如文件名的子字符串创建子目录。但是,这会使我的应用程序中的某些事情变得更加麻烦。

这仍然是真的,还是现代文件系统(例如 ext4)有更有效的方法来处理这个问题并自然扩展?维基百科有一些关于文件系统的详细信息,但它并没有真正说明每个目录的最大文件数或查找时间。

linux ubuntu filesystems ext4

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

在 EC2 实例上增加 /tmp 的大小

我在 EC2 ebs 上运行 Ubuntu 服务器,我的应用程序需要大量临时磁盘空间,在 /tmp 中分配。但是,在 ec2 上,包含 /tmp 的根驱动器非常小,大约 10GB。所有剩余的磁盘空间都安装在 /mnt 下。结果,我的应用程序返回“磁盘空间不足”错误,因为 /tmp 似乎已满。

解决这个问题的最佳方法是什么?我能想到的一件事是创建 /mnt/tmp 并建立一个符号链接

/tmp --> /mnt/tmp

然而,我有点不愿意弄乱这么多 linux 程序和工具使用的东西。我不确定是否每个程序都会正确解析符号链接,也不确定它会对性能产生什么影响。

amazon-ec2

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

nginx proxy_cache:限制对后端的并行请求

我使用 nginx 作为后端的反向代理。配置非常基本,例如核心只是:

upstream myservice {
    server 127.0.0.1:80;
    server 123.123.123.123:80;
}

location / {
    proxy_pass  http://myservice;
    proxy_set_header Host myservice;
}
Run Code Online (Sandbox Code Playgroud)

现在我的服务在计算上非常繁重,我希望 nginx 将活动并行(同时)请求的数量限制为单个上游后端,例如 10。

我查看了limit_req模块,但是这个模块似乎只关注每分钟传入的请求。我特别想限制活动后端连接的数量;即考虑请求是否已经返回。这可能吗?

在清漆中,这可以使用例如

backend cpu1 {
  .host = "127.0.0.1";
  .port = "80";
  .max_connections = 20;
}
Run Code Online (Sandbox Code Playgroud)

但是我需要为此使用nginx。

nginx varnish reverse-proxy load-balancing apache-2.2

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

禁用 HTTP OPTIONS 方法的身份验证(预检请求)

CORS 的一个反复出现的问题是规范规定请求标头从预检请求(HTTP OPTIONS)中剥离。但是,如果服务器需要身份验证,这意味着预检请求将失败(因为Authorization未包含标头)并且它将无法接收所需的access-control-allow-origin标头。

唯一的出路似乎是将服务器配置为不对 HTTP OPTIONS 请求强制进行身份验证。在 apache 2.4 中有什么方法可以让我Require valid-user以 http 方法为条件吗?

http authentication apache-2.2 apache-2.4 cors

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

iptables 预路由本地主机

我想使用 iptables 将所有传入流量从某个端口转发到另一个端口。问题是预路由不适用于来自本地主机的流量。本主题提出了一个解决方案:

iptables -t nat -I PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8080
iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 443 -j REDIRECT --to-ports 8080
Run Code Online (Sandbox Code Playgroud)

该解决方案适用于大多数情况。但是,当我连接到http://myserver:443(其中 myserver 解析为本地计算机上托管的 IP 地址,但不是 127.0.0.1)时,它似乎绕过了这两个规则。

有没有办法也捕获从本地计算机发送到 eth0 IP 地址的转发请求?

linux ubuntu firewall ip iptables

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

限制 nginx 每分钟请求数

我想根据单个客户端 IP 地址向我的服务器发出的请求数量设置限制。Nginx 有一个limit_req_zone指令。然而,该指令实际上会限制平均点击率。如果我将限制设置为rate=6r/m,则实际上每 10 秒只允许一次点击。

相反,我需要的是每分钟的实际限制。例如,客户端应该能够快速地相继发出 3 或 4 个请求,甚至同时发出,但每分钟不得超过 10 个。有没有办法做到这一点?

nginx web-server load-balancing apache-2.2

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

从静态 web 目录创建 tomcat war 文件

我创建了一个简单的 Web 应用程序,它由一个带有 html、css、js 的目录组成。没有服务器代码。出于复杂的原因,我的管理员坚持将其转换为.war文件,以便在tomcat上轻松部署。同样,该应用程序根本不包含任何 Java 代码。我没有用 ant 或 eclipse 创建它。

我尝试创建一个存档:

jar cvf mywarfile.war *
Run Code Online (Sandbox Code Playgroud)

这确实创建了一个战争文件。但是,当我在 tomcat 上部署此战争时,它似乎不起作用。Tomcat 会自动将 war 文件解压缩到一个目录中,但它不会通过 Web 服务器变为可用。我想这与我的战争不包含目录WEB-INFMETA-INF.

有没有一种简单的方法可以将静态客户端 Web 应用程序转换为可部署的战争文件?

tomcat java web-server jsp

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

从某个用户删除 /tmp 中所有文件的脚本

我的一个服务器守护进程在 /tmp 中使用了大量空间。因为我不想在服务器磁盘空间不足时重新启动我的机器,所以我需要运行一个 CRON 脚本来删除旧的临时文件。

比方说,递归删除 /tmp 下所有距用户 1 小时以上的文件和目录的好方法是什么www-data?当然,它不应该解析符号链接并开始删除系统上其他地方的文件。我正在使用 Ubuntu 12.04 并将以 root 身份运行此 cronjob。

linux ubuntu bash cron

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

使用 Apache2 限制每个 IP 的同时连接

我正在托管一个公共的 CPU 网络服务,我想将 Apache2 配置为每个 IP 地址只允许 1 个同时连接到手头的位置,以防止单个客户端使用太多资源。

是否有一个简洁的 apache2 解决方案来做到这一点?我已经研究过 mod_bw 但这似乎并没有解决问题(MaxConnections 仅适用于所有用户,而不适用于每个 IP)。还有一个名为 apache2-mod-limitipconn 的模块,但是这个模块没有预编译包,我认为由于网站已经死了,所以它的维护时间更长了。我更喜欢可以包含在 Ubuntu 中作为正式依赖项的东西。

linux hosting bandwidth-control apache-2.2

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

限制linux中目录的总大小

我有一个服务守护进程,它创建了很多临时文件。最近我的服务器死了,因为一个恶意用户设法淹没 /tmp 并填满磁盘。我已经采取了一些措施来主动清理临时目录,但另外我想限制这个应用程序临时目录的最大大小。

有什么方法可以创建目录,例如,/apptmp永远不会大于 10G?我知道我可以按用户设置磁盘限制,但我只想限制这个 tmpdir;应用程序应该始终能够在其他地方写入。

我正在运行 Ubuntu Linux 12.04。

编辑:所有这些最终都应该包含在一个可安装的 Ubuntu 包中。所以我不认为我想依赖修改分区,除非我能以某种方式模拟它。

linux ubuntu ext4 debian bash

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