小编Vla*_*eev的帖子

nginx 反向代理 - 尝试上游 A,然后是 B,然后是 A

我正在尝试将 nginx 设置为具有大量后端服务器的反向代理。我想按需启动后端(在第一个请求时),所以我有一个控制过程(由 HTTP 请求控制),它根据它收到的请求启动后端。

我的问题是配置 nginx 来做到这一点。这是我到目前为止所拥有的:

server {
    listen 80;
    server_name $DOMAINS;

    location / {
        # redirect to named location
        #error_page 418 = @backend;
        #return 418; # doesn't work - error_page doesn't work after redirect

        try_files /nonexisting-file @backend;
    }

    location @backend {
        proxy_pass http://$BACKEND-IP;
        error_page 502 @handle_502; # Backend server down? Try to start it
    }

    location @handle_502 { # What to do when the backend server is not up
        # Ping our control server to start the …
Run Code Online (Sandbox Code Playgroud)

nginx failover

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

适用于无头 Linux 的磁盘使用树图软件

有一些程序可以使用树状显示已用磁盘空间,例如 Windows 的 WinDirStat 和 KDE/Linux 的 KDirStat:

KDirStat 截图

我正在寻找类似的东西,但要找一个无头的 Linux 机器。(例如,在服务器上运行控制台数据收集程序,然后在 GUI 环境中的图形程序中加载文件。)

或者,仅通过 SSH 访问即可获得结构化的已用磁盘空间表示的其他好方法是什么?

linux disk-space-utilization

24
推荐指数
4
解决办法
8370
查看次数

如何在 Apache 中记录 URL 方案(http / https)?

nginx$scheme在其log_format行中有可用的变量。

%H 是请求协议(例如“HTTP/1.1”)。

我怎样才能对 Apache 做同样的事情?

logging apache-2.2

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

如何阻止 Apache 使我的整个服务器崩溃?

我维护了一个包含一些服务的 Gentoo 服务器,包括 Apache。它是相当低端的(2GB 内存和具有 2 个内核的低端 CPU)。我的问题是,尽管我尽了最大的努力,但过载的 Apache 还是会导致整个服务器崩溃。事实上,在这一点上,我几乎确信 Linux 是一个可怕的操作系统,不值得任何人花时间寻找负载下的稳定性。

我尝试过的事情:

  1. 为根 Apache 进程(及其所有子进程)调整 oom_adj。那几乎没有效果。当 Apache 过载时,它会使系统陷入困境,因为系统会在杀死任何东西之前将其他所有东西都调出。
  2. 关闭交换。没有帮助,它会将内存分页卸载到 / 上的进程和其他文件的二进制文件,从而导致相同的效果。
  3. 将其放入内存受限的 cgroup(限制为 512 MB 的 RAM,总数的 1/4)。这“有效”,至少在我自己的压力测试中 - 除了服务器在负载下不断崩溃(基本上停止所有其他进程,无法通过 SSH 访问等)
  4. 以空闲 I/O 优先级运行它。这最终不是一个很好的主意,因为它只会导致系统负载无限期地攀升(达到数千个)而几乎没有明显影响 - 直到您尝试访问磁盘的未缓冲部分。这导致任务冻结。(对于良好的 I/O 调度来说就这么多,嗯?)
  5. 限制与 Apache 的并发连接数。由于大多数插槽被长请求(文件下载)占用,因此将数字设置得太低会导致网站无响应。
  6. 我尝试了各种 Apache MPM,但都没有成功(prefork、event、itk)。
  7. 从 prefork/event+php-cgi+suphp 切换到 itk+mod_php。这提高了性能,但没有解决实际问题。
  8. 切换 I/O 调度程序(cfq 到截止日期)。

只是强调一下:我不在乎 Apache 本身是否在负载下宕机,我只希望系统的其余部分保持稳定。当然,让 Apache 在短暂的密集负载后快速恢复会很棒,但一次一个步骤。

现在,我对人类如何能在这个时代设计一个操作系统而感到震惊(不允许一个系统组件使整个系统崩溃)实际上是不可能的 - 或者至少,非常难做。

请不要建议诸如 VM 或“购买更多 RAM”之类的东西。


在朋友的帮助下收集的更多信息: 当调用 cgroup oom 杀手时,进程挂起。这是调用跟踪:

[<ffffffff8104b94b>] ? prepare_to_wait+0x70/0x7b
[<ffffffff810a9c73>] mem_cgroup_handle_oom+0xdf/0x180
[<ffffffff810a9559>] ? memcg_oom_wake_function+0x0/0x6d
[<ffffffff810aa041>] …

linux memory apache-2.2

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

使用 rsync 保留所有权,无需 root

我想从一台机器执行增量备份(针对整个文件系统)。rsync这确实会,但是我还想保留文件所有权 - 意思是可以恢复它。

如果不rsync以 root 身份在目标机器上运行(存储备份),是否可以做到这一点?

一些想法...

  • 有没有办法以允许chown非root用户的方式挂载文件系统(FUSE?)?(我想可能需要noexec禁止提升。)
  • 在元数据文件而不是文件系统本身中存储和恢复所有权的某种方法?
  • tar可以存储文件所有权,尽管让它与 rsync 或增量备份一起使用会更复杂一些。能够像常规文件系统一样浏览备份也很好。
  • 也许某种假的根环境?虚拟机可以工作,但最好避免相关的维护和性能开销。

backup rsync root owner

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

云托管:我们需要它吗?

我们有一台服务器(4GB RAM,两个 4 核 Intel Xeon E5420)执行以下任务:

  • 具有静态内容的网站(目前只是一些 CMS,我们计划添加缓存反向代理)
  • 客户控制面板(基本上是数据库的 Web 界面)
  • 我们桌面软件的后端脚本 - 一些 PHP 脚本,它们执行一些数据库查询/更新,但每个客户每 5 分钟就会触发一次
  • 存储上述两个数据的数据库

我们预计在接下来的几周内会有大量(多达数十万)用户涌入。我的上司担心我们当前的设置可能无法处理负载,并正在考虑转向云托管 - 但是,我不相信这会有所帮助。根据我对云计算的理解,虚拟化不会有太大帮助,除非我们可以将工作负载分摊到多台机器上(除非它们的单个服务器比我们的服务器强大得多)。他们提供 MySQL 集群,但是后端脚本只是读取/写入几行中的一些值,并且不执行任何计算密集型 SQL 查询,所以我再次不确定 MySQL 集群与 Apache/ PHP 开销 + MySQL 网络延迟。至于网站,

那么,云托管会给我们带来任何好处吗?

mysql cloud cloud-computing

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

将增量快照备份到另一个卷

我正在寻找一种方法来实现接近以下备份方案的东西:

  1. 最初,完整映像被复制到备份目标。
  2. 定期(例如每晚),只有自上次备份以来发生更改的块才会被复制到备份目标。
  3. 理想情况下,应该可以从任何时间点挂载快照,或者有选择地删除(扁平化)一些快照。

这可以使用 LVM(或其他方式)实现吗?它需要跟踪自上次备份以来哪些块变脏了,我不确定 LVM 可以做到这一点……我宁愿避免始终在 LVM 快照上运行的永久性性能成本。

linux backup lvm incremental-backup

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