标签: nginx

如何制作冗余负载均衡器?

我知道负载平衡器的目的是平衡服务器之间的负载并跟踪实例健康状况等。但是如果负载平衡器本身出现故障怎么办?如何设置冗余负载平衡器?(负载均衡负载均衡器?)

我可以看到 DNS 运行状况检查如何有用,但显然存在严重的延迟问题,不是吗?

这是假设您没有使用任何第三方服务,如 AWS ELB 或任何类似服务。如果你只是使用说 Nginx 怎么办?

nginx load-balancing redundancy load-balance

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

现代文件系统中的数百万个文件对性能有何影响?

假设我们正在使用 ext4(启用 dir_index)来托管大约 3M 文件(平均大小为 750KB),我们需要决定我们将使用什么文件夹方案。

在第一个解决方案中,我们将哈希函数应用于文件并使用两级文件夹(第一级为 1 个字符,第二级为 2 个字符):因此filex.for哈希等于abcde1234,我们将其存储在 /path / a/bc /abcde1234-filex.for。

第二种解决方案中,我们对文件应用哈希函数并使用两级文件夹(第一级为 2 个字符,第二级为 2 个字符):因此filex.for哈希等于abcde1234,我们将其存储在 /path / ab/de /abcde1234-filex.for。

对于第一个解决方案,我们将采用以下方案/path/[16 folders]/[256 folders]每个文件夹(文件所在的最后一个文件夹)平均有 732 个文件

而在第二个解决方案,我们将有/path/[256 folders]/[256 folders]平均每个文件夹45页的文件

考虑到我们要从这个方案中写入/取消链接/读取文件(但主要是读取)(基本上是 nginx 缓存系统),如果我们选择一个或其他解决方案它在性能方面是否重要?

另外,我们可以使用哪些工具来检查/测试此设置?

linux performance filesystems nginx linux-kernel

32
推荐指数
2
解决办法
9556
查看次数

对于服务器发送事件 (SSE),什么 Nginx 代理配置是合适的?

我已经阅读了很多关于什么 Nginx 配置适合 SSE 的不同问题,并提出了一些关于使用哪些设置的令人困惑的结果:

那么正确答案是什么?

nginx

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

如何在 nginx 中禁用特定 ip 范围的 http 基本身份验证?

我正在开发一个使用 facebook 登录的应用程序。到目前为止,它不是公开的,并且受 nginx 中的 http 基本身份验证保护。是否可以禁用 facebook ip 范围的 http auth,以便我们的测试人员也可以测试 facebook 功能?如果可能,请包含示例配置片段。

nginx web-server ip-address http-basic-authentication

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

如何在nginx反向代理中重写Set-Cookie的域部分?

我有一个简单的 nginx 反向代理:

server {
  server_name external.domain.com;
  location / {
    proxy_pass http://backend.int/;
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是Set-Cookie响应头包含;Domain=backend.int,因为后端不知道它正在被反向代理。

如何让 nginx 重写Set-Cookie响应头的内容,替换;Domain=backend.int;Domain=external.domain.com

Host在这种情况下,不更改传递标头不是一种选择。

Apache httpd有此功能已有一段时间了,请参阅ProxyPassReverseCookieDomain,但我似乎找不到在 nginx 中执行相同操作的方法。

rewrite nginx reverse-proxy cookies

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

如何在 Nginx 上为特定虚拟主机设置 favicon.ico?

我第一次使用 Nginx 作为我的网络服务器。我在设置它时没有遇到任何麻烦,一切都很好。当设计师问我是否可以将“标题栏中的图标”发送给我“把它放在那里”时,问题就出现了。

# /opt/nginx/conf/nginx.conf
...
server {
    listen 80 ;
    server_name *.website.com website.com;
    root /home/webuser/sites/website;
}
Run Code Online (Sandbox Code Playgroud)

我的目录:

/home/webuser/sites/website/
|_ index.html
|_ main.css
|_ favicon.ico
Run Code Online (Sandbox Code Playgroud)

是否可以将特定的 favicon.ico 放在每个虚拟主机上?您应该将该文件放在哪里以及如何配置它?

编辑:

我才意识到这是一个完全不同的问题。两个答案都是正确的,但我的问题是许可。我不知道为什么文件 favicon.ico 最终获得了 600 权限,当然我这样做的那一刻:

chmod +r favicon.ico
Run Code Online (Sandbox Code Playgroud)

像魅力一样工作。如果它发生在其他人身上,我会把它留在这里。

nginx virtualhost favicon

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

HTTP 反向代理是否通常在代理连接的客户端而不是在服务器端启用 HTTP Keep-Alive?

HAProxy 能够在客户端(客户端 <-> HAProxy)启用 HTTP 保持活动,但在服务器端(HAProxy <-> 服务器)禁用它。

我们的一些客户通过卫星连接到我们的网络服务,因此延迟约为 600 毫秒,我认为通过启用保持活动,它会加快速度。我对吗?

这是 Nginx 支持的吗?这是其他软件和硬件负载平衡器中广泛实现的功能吗?除了HAProxy还有什么?

http nginx load-balancing haproxy sticky-sessions

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

getpwnam("www") 在 /etc/nginx/nginx.conf 中失败

我将nginx.conf示例复制到我的 ubuntu 12.04 盒子上(我不知道将其他 conf 文件放在哪里。我是 nginx noob)。当我尝试启动 nginx 时,出现以下错误:

abe-lens-laptop@abe:/etc$ sudo service nginx start
Starting nginx: nginx: [emerg] getpwnam("www") failed in /etc/nginx/nginx.conf:1
nginx: configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud)

这个错误是什么意思?我该如何解决?我找到了这篇文章,但我的用户已经设置为 www www(如果您在链接文件中看到)如何更改 NGINX 用户?

linux nginx web-server

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

nginx 配置文件行继续?

我有一个 nginx 配置节,看起来像:

server {
    listen *:80;
    server_name domain1.com domain2.com domain3.com domain4.com .... domainN.com;
    rewrite ^(.*) http://my_canonical_domain.com permanent;
}
Run Code Online (Sandbox Code Playgroud)

有很多不同的域。有没有办法把它分解成多行?我在 nginx 配置文档中没有看到任何解决此问题的内容。

nginx

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

SSL &amp; Ngnix:在 SSL 握手时监听 SSL 端口的服务器中没有定义“ssl_certificate”

我已经成功地使用 LE 创建了我的证书,没有错误,我还设法将我的流量从端口 80 重定向到端口 443。但是当我重新加载我的 nginx 服务器时,我无法访问我的网站。Ngnix 错误日志显示这一行:

4 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: 192.168.0.104, server: 0.0.0.0:443
Run Code Online (Sandbox Code Playgroud)

我认为这意味着它找不到我然后导航到证书路径的证书,它们都在那里,可能是什么问题?这是我的 Ngnix 配置的样子:

server {
       listen         80;
       server_name    pumaportal.com www.pumaportal.com;
       return         301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;

    server_name pumaportal.com www.pumaportal.com;

    add_header Strict-Transport-Security "max-age=31536000";

    ssl_certificate /etc/letsencrypt/live/pumaportal.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/pumaportal.com/privkey.pem;

    ssl_stapling on;
    ssl_stapling_verify on;

    access_log /var/log/nginx/sub.log combined;

    location /.well-known {
       alias /[MY PATH]/.well-known;
    }

    location / {
        proxy_pass http://localhost:2000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade; …
Run Code Online (Sandbox Code Playgroud)

ssl nginx lets-encrypt

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