Questions tagged «nginx»

Nginx(“ eNgine x”)是一种轻量级的高性能HTTP服务器,反向代理,TCP流代理和邮件代理,在类似BSD的许可证下发布。

4
网络服务器随机提供不同的虚拟主机
我们已经在Ubuntu Trusty上运行了nginx。它通过一个IP地址上的https服务多个网站。 随机地,尽管它似乎与工作量有些关系,但有时单个请求会出现在错误的虚拟主机上。这导致要求lustrum.thalia.nu由服务,thalia.nu反之亦然。然后,当用户突然进入另一个网站时,这将产生令人讨厌的错误页面。按时F5,用户将再次回到原始目标。 似乎与浏览器或操作系统无关。已经确认它会在Firefox(Linux,Windows,Mac),Edge(Windows)和Chrome(Linux,Windows,Android)和Safari(iOS)上发生。 当系统处于负载状态时,此问题似乎更经常发生,这表明存在某种竞争状况。 芦荟 server { server_name lustrum.thalia.nu; listen 443 ssl; ssl on; ssl_certificate /etc/nginx/certs/lustrum.thalia.nu.crt; ssl_certificate_key /etc/nginx/certs/lustrum.thalia.nu.key; add_header Strict-Transport-Security "max-age=63072000; preload"; root /var/www/thalia-lustrum/public_html; location / { index index.php; try_files $uri $uri/ /index.php?$args; } # Add trailing slash to */wp-admin requests. rewrite /wp-admin$ $scheme://$host$uri/ permanent; # Pass all .php …

2
即使服务器仍处于活动状态,nginx proxy_pass最终也会返回GATEWAY_TIMEOUT
我已经设置了一个nginx代理传递,当nginx最初加载时它可以正常工作,但是最终(也许是一天后?还是不太确定),作为代理传递的位置只会返回504 GATEWAY_TIMEOUT响应。奇怪的是,我已经设置了多个proxy_pass位置,出现下降和保持上升是随机的。 这是nginx配置文件: server { listen 80; server_name example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /srv/www/frontend/current/; location / { try_files $uri $uri/ /index.html; } # Block all svn access if ($request_uri ~* ^.*\.svn.*$) { return 404; } # Block all git access if ($request_uri ~* ^.*\.git.*$) { return 404; } location …

3
是否可以使用多个负载平衡器将流量重定向到我的应用程序服务器?
我是负载平衡的新手,我想知道是否可以使用多个负载平衡器将流量重定向到我的应用程序服务器。我真的不明白该怎么做。域名不应该与某个服务器的IP地址(在这种情况下,是一个负载均衡器的IP)一对一匹配吗?如果每个负载平衡服务器具有不同的IP,两个负载平衡器(或10个负载平衡器或50或100)如何接收请求?

1
HAProxy URL重写404错误
当第一个丢失文件时,如何使HAProxy重写到另一个后端?我需要的errorloc只是重写而不是重定向,因此客户端不知道重定向。 我们开发了一个考虑了NginX的应用程序,该应用程序既平衡了反向代理的负载,又为静态文件提供了Web服务器。应用程序基于Opa框架,该框架需要基于cookie的粘性会话-NginX和HAproxy均支持。我们遇到的应用程序功能是动态内容生成。它按需生成映像,但是生成后将其保存在磁盘上,并且可以使用确定性路径进行静态访问。 使用NginX可以轻松解决问题-仅当文件丢失(尚未生成)时,它才会尝试读取本地文件并使用负载平衡的后端: server { server_name wkaliszu.pl; location /thumb { root /path_on_disk/to_cached_content; expires 7d; # try to access already generated content try_files $uri @wkaliszu; } location / { # reverse proxy to the application [...] } location @wkaliszu { # reverse proxy to the application [...] } } 服务器已迁移,现在使用HAPproxy进行负载平衡,它不是Web服务器,不支持此功能。现在,每当客户端尝试访问资源时,都会执行动态软件生成,这会大大降低速度并浪费资源。如果第一个(静态文件的简单缓存Web服务器)由于错误404而失败,那么它可以使用下一个后端就可以了,但是我找不到一种简单的方法。重定向/thumb到NginX会尝试读取静态文件,然后再次使用新的HTTP标头将其重写为HAproxy,但我想找点更好的方法。
9 nginx  haproxy 

1
PHP5-FPM如何将错误发送到nginx?
我一直在尝试在php-fpm和nginx中记录错误,因为我在网上找不到任何好的解释。大多数指南说catch_workers_output,yes如果要将错误从php5-fpm发送回nginx,我应该更改为。但是,在实验过程中,我发现即使catch_workers_output将设置为no,nginx仍会正确记录错误。 这是我的虚拟主机配置: server { server_name domain.com; return 301 http://www.domain.com$request_uri; access_log off; } server { listen 80; listen [::]:80; root /home/websites/domain.com; index index.php index.html index.htm; error_log /home/websites/logs/domain.com/error.log warn; access_log /home/websites/logs/domain.com/access.log; #switch on gzip gzip on; gzip_min_length 1100; gzip_buffers 10 32k; gzip_types text/plain application/x-javascript text/xml text/css; gzip_vary on; location / { try_files …
9 nginx  php-fpm 

4
如何在openssl cli中指定subjectAltName?
我正在生成一个自签名SSL证书: $ openssl req -x509 -newkey rsa:2048 -subj 'CN=example.com' 我也想在创建时指定一个subjectAltName,但是我无法在openssl手册页中找到有关如何执行此操作的信息。
9 nginx  ssl  openssl 

1
Nginx缓存在多个服务器之间共享
我们有8个使用Nginx的REST-ish API服务器,使用FastCGI和PHP-FPM来处理请求。我们目前正在使用Nginx的FastCGI缓存(如的指令fastcgi_cache_path)。这意味着将缓存API响应,但是每个服务器都有一个单独的缓存。 是否有一种在所有八台服务器之间共享缓存存储的好方法? 我们已经考虑过将Redis用作共享存储,但是可用的模块似乎需要更改应用程序。在某些情况下,我们可能希望将响应缓存在我们控制范围之外(通过HTTP到外部API)。理想情况下,可以使用替代品来替代FastCGI和HTTP响应的Nginx内置缓存。
9 nginx  cache 

3
Nginx limit_req设置中突发的定义是什么?
这有什么区别: limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s; limit_req zone=flood nodelay 和: limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s; limit_req zone=flood burst=5 nodelay 文档http://wiki.nginx.org/HttpLimitReqModule。
9 nginx 

2
php-fpm向nginx返回空响应
nginx使用/etc/nginx/fastcgi_paramslocation块中的标准通过fastcgi连接到php-fpm 。 当使用从命令行连接到/.status(php-fpm.ini :: ping.path)时cgi-fcgi -bind,结果将按预期返回(X-Powered-By设置,响应正文等)。 当使用nginx请求时,结果返回为空(X-Powered-By设置,没有正文长度或内容)。nginx返回200,因为它得到了“有效”的响应。 监视tcpdump,我在其FCGI标头中隔离了对奇偶校验的请求(减去仍由Shell设置的与用户相关的env变量)。
9 php  nginx  php-fpm  fastcgi 

2
为什么是“ proxy_pass_header服务器”?
我刚刚开始使用NGINX,并且在人们使用的几个示例配置中已经看到 proxy_pass_header Server; 在将请求代理到上游服务器时?它到底在做什么?有哪些可能的用例?
9 nginx 

6
PHP FPM授予权限被拒绝?
我阅读了几篇关于PHP-FPM为何会给我拒绝权限但我无法解决的条目。 错误日志显示如下: 2013/04/20 23:33:28 [crit] 15479#0: *6 open() "/var/lib/nginx/tmp/fastcgi /2/00/0000000002" failed (13: Permission denied) while reading upstream, client: 99.999.999.999, server: example.net, request: "GET /wp-admin/ HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-fpm.sock:", host: "example.net", referrer: "http://example.net/" 我有点但是迷失了: 我已经将/ var / lib / nginx / tmp设置为ec2-user(我什至要检查所有777) 我已经将/tmp/php-fpm.sock设置为ec2-user Nginx conf文件设置为ec2-user php-conf设置为用户和组ec2-user ps aux为ec2-user提供所有php-fpm和nginx进程 我的Nginx配置包含很多文件,基本配置为: user ec2-user ec2-user; …

2
Nginx和PHP-FPM用尽了连接
我一直遇到这样的错误, [02-Jun-2012 01:52:04] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 19 idle, and 49 total children [02-Jun-2012 01:52:05] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 19 idle, and …
9 nginx  php-fpm 

2
我可以将所有目录请求别名到nginx中的单个文件吗?
我试图弄清楚如何在nginx中接收对特定目录的所有请求并返回不带重定向的json字符串。 例: curl -i http://example.com/api/call1/ 预期结果: HTTP/1.1 200 OK Accept-Ranges: bytes Content-Type: application/json Date: Fri, 13 Apr 2012 23:48:21 GMT Last-Modified: Fri, 13 Apr 2012 22:58:56 GMT Server: nginx X-UA-Compatible: IE=Edge,chrome=1 Content-Length: 38 Connection: keep-alive {"logout": true} 到目前为止,我的nginx conf中包含以下内容: location ~ ^/api/(.*)$ { index /api_logout.json; alias /path/to/file/api_logout.json; types { } …

2
API管理解决方案
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使其成为服务器故障的主题。 6年前关闭。 我目前正在构建一个API,并且正在寻找一种工具来允许我监视(在GUI中)和速率限制用法。我遇到过一些企业解决方案,包括: http://apigee.com/ http://mashery.com/ http://www.layer7tech.com/ http://www.3scale.net/ Apigee企业计划正是我想要的,但计划的起价为每月3000美元,超出了我的价格范围。其他解决方案要么太贵,要么不提供我想要的解决方案。 这使我看了一些开源选项,包括: http://apiaxle.com/ https://code.google.com/p/varnish-apikey/wiki/使用手册 清漆似乎是一个相当完整的解决方案。但是,我需要构建一个GUI来可视化数据。 我最后的选择是使用EventMachine和ruby从头开始构建解决方案。 有什么建议吗?

1
如何在Nginx中设置服务器特定的ENV值?
我正在启动一个使用环境变量来设置数据库连接和其他几件事的项目。(他们不想使用配置文件,因为人们不小心会覆盖它们)。 无论如何,我正在使用nginx,虽然它支持env-似乎对其支持还不够好。您不能基于每个服务器块设置env值。换句话说,这是行不通的: server { listen 80; server_name domain; env FOO = "bar"; } 您必须这样做: env FOO = "bar"; http { server { listen 80; server_name domain; } } 这意味着我不能具有特定于虚拟主机的值。因此,我必须为每个站点创建一个完整的vhost配置,并仅激活我现在想要的那个,以便正确设置该值。 有什么办法可以解决此问题?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.