小编UpT*_*eek的帖子

这是为静态内容服务扩展 Nginx 的明智方法吗?

我需要设置一些 VPS 来提供静态内容(许多小文件)。我计划为此使用 Nginx,并希望对其进行设置,以便我们能够相对轻松地横向扩展。要求是:

  • 许多文件(至少数十万)。
  • 小文件大小(小于 10KB)。
  • 相邻服务器上的应用程序不断添加文件。
  • 新文件必须立即可供所有 Nginx 服务器使用。

我目前的计划是:

  • 拥有一个包含所有文件的 NFS 共享的“主”服务器。
  • 生成新文件的应用程序仅与 master 交互。
  • 让多个 Nginx 服务器挂载此 NFS 共享。
  • 跨 Nginx 实例的负载平衡。

一个明显的问题是“主”服务器是单点故障(对此有什么补救措施?)。 还有其他我忽略的潜在问题吗?这里是否存在不能以这种方式很好地扩展的元素?有人会建议另一种方法吗?

关于内存要求,我假设我应该尽可能多地提供每个 Nginx 服务器,以便可以缓存热文件(通过操作系统?Nginx?)而不必不断从 NFS 共享中请求。

最后,我疯了不使用 CDN 吗?

nginx scalability

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

使用虚拟机进行基础架构建模 - 一种可行的方法吗?

我对为 Web 应用程序建模各种服务器/网络配置感兴趣。我想提前知道系统的哪些部分将成为瓶颈,以及瓶颈是否受 CPU/内存/网络等约束。

我一直在考虑的一个想法是采用单个测试服务器,并将每个“真实”服务器设置为虚拟机,并按照它们在野外进行配置。我打算试试这个,但想问问 serverfault 社区是否有人以前尝试过这种方法。 它可行吗?

我并不期待基准测试或任何类似的东西,但我认为它可能对建模相对性能、突出瓶颈和提供对架构的健全性检查有用。

scalability web-server

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

HAProxy 高 CPU 使用率 - 配置问题?

我们最近遇到了流量高峰,虽然规模不大,但导致 haproxy 将一个 CPU 核心最大化(​​并且服务器变得无响应)。我猜我在做一些低效的配置,所以想问问所有的 haproxy 专家,他们是否愿意批评我下面的配置文件(主要是从性能角度)。

该配置旨在分布在一组 http 应用程序服务器、一组处理 websockets 连接的服务器(在不同端口上有多个单独的进程)和一个静态文件 web 服务器之间。从性能问题来看,它运行良好。(一些细节已被编辑。)

您能提供的任何指导将不胜感激!

HAProxy v1.4.8

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
        global
                daemon
                maxconn         100000
                log             127.0.0.1 local0 notice
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
        defaults
                log                     global
                mode                    http
                option                  httplog
                option                  httpclose               #http://serverfault.com/a/104782/52811
                timeout connect         5000ms
                timeout client          50000ms
                timeout server          5h                      #long timeouts to stop WS drops - when v1.5 is …
Run Code Online (Sandbox Code Playgroud)

haproxy

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

我可以在 bash 脚本中使用分配给虚拟网络接口的 IP 吗?

我想知道是否可以动态读取网络接口的 IP 地址以在 bash 脚本中使用。就像是:

#!/bin/bash
MYPUBLICIP= get_eth0_address
MYPRIVATEIP= get_eth0:0_address
Run Code Online (Sandbox Code Playgroud)
  • 我该怎么办?
  • 是否可以区分 eth0 和虚拟 eth0:0?

[背景] 我正在尝试编写一个脚本,将各种规则应用于一组 VPS 的 iptables。我试图避免摆弄每台机器的单独 IP。

networking linux bash

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

HAProxy 负载平衡后端 - 一台服务器关闭时的行为

我的理解是,通过 HAProxy 对两个服务器后端进行负载平衡,如果其中一个出现故障,HAProxy 应该能够将所有流量定向到另一个。

我有两个负载均衡的网络服务器,带有 roundrobin 和 httpchk,但是当一个服务器出现故障时,我会503 - Service unavailable从 HAProxy收到消息。也许我的配置有问题?

backend app
    timeout server 50000ms
    mode http
    balance roundrobin
    option httpchk

    server ap1 ap1:8000 maxconn 4000 #ap1 is hostname
    server ap2 ap2:8000 maxconn 4000 #ap2 is hostname
Run Code Online (Sandbox Code Playgroud)

linux load-balancing haproxy

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

Nginx - 删除 Last_Modified 标头也会删除 CORS 标头?

我正在尝试从 Nginx 响应中删除 Last_Modified 标头。

我读过这可以通过配置中的这一行来实现:

 add_header Last-Modified '';
Run Code Online (Sandbox Code Playgroud)

这有效,但是由于某种原因,我们的 CORS 访问控制标头不再发送。我假设这可能是一个错误(我们使用的是 v1.2.6),但希望得到其他人的意见。

为什么会这样?以及如何删除 Last-Modified,但保留 Access-Control 标头?

我们的配置文件如下所示:

http {

    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Credentials' 'true';

    server {
        listen 80;
        server_name xxxxxxxxxxxxxxxxx;
        root xxxxxxxxxxxxxxxxx

        expires 1y;
        log_not_found off;

        add_header Last-Modified '';
    }
}
Run Code Online (Sandbox Code Playgroud)

nginx

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