我在nginx上看到了常见的“文件描述符太多”的错误。 经过大量search,解决scheme显然是增加可用于nginx的文件描述符的数量。 但没有足够的信息让我觉得这样做有意义和安全的做法。 以下是大多数论坛/电子邮件主题涵盖的要点: 操作系统有它自己的总文件描述符限制(在我的系统上, cat /proc/sys/fs/file-max outputs“100678”) 每个用户也可以有自己的限制(但在我的系统上,运行ulimit作为任何用户输出“无限” 更详细的底部看到更新 ) 有几个人说了些什么, 这个人说:“指令worker_rlimit_nofile没有指定”多less“,这是操作系统的限制。 指令worker_rlimit_nofile只是允许一个快速和肮脏的方式来扩大这个限制,如果它是不够的。 所以我想这意味着,为nginx操作系统用户设置限制,而不是在configuration中“更好”? 我只需要input一个worker_rlimit_nofile的值,这个值比每个worker的连接数要大一些,但是我觉得我并不知道这里发生了什么。 为什么每个员工的限额要less于操作系统限制? 我怎么知道我现在的限制是什么? 更新 :对于root用户和普通用户,ulimit输出“unlimited”,但是ulimit -Hn和ulimit -Sn都输出1024
我只需要将http://shop.test.comredirect到http://www.test.com/fedex-orders/ 只是主页。 没有其他的。 即http://shop.test.com/?page=blog不应该redirect。
我有一个NGINX作为我们网站的反向代理,工作得很好。 对于那些需要ssl的站点,我跟着raymii.org来确保尽可能强大的SSLLabs评分。 其中一个站点需要符合PCI DSS标准,但基于最新的TrustWave扫描,现在由于启用了TLS 1.0而失败。 在nginx.conf的http层次上,我有: ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 对于我具有的特定服务器: ssl_protocols TLSv1.1 TLSv1.2; 我已经改变了密码,把事情从http级别移到了每个ssl站点服务器上,但不pipe什么时候运行: openssl s_client -connect www.example.com:443 -tls1 我获得了TLS 1.0的有效连接。 SSLLabs将网站的nginx设置为A,但是使用TLS 1.0,所以我相信我的设置的其余部分是正确的,它不会closuresTLS 1.0。 关于我可能会错过的想法? openssl version -a OpenSSL 1.0.1f 6 Jan 2014 built on: Thu Jun 11 15:28:12 UTC 2015 platform: debian-amd64 nginx -v nginx version: nginx/1.8.0
我试图转换反向代理使用有趣的Apache mod_rewrite设置使用Nginx来代替(由于外部的担忧,我们正在从Apache移动到Nginx,大多数一切正常,除了这部分)。 我原来的设置是读取一个HTTP cookie(由某个应用程序设置),根据它的值,将反向代理指向不同的后端。 它是这样的: RewriteCond %{HTTP_COOKIE} proxy-target-A RewriteRule ^/original-request/ http://backend-a/some-application [P,QSA] RewriteCond %{HTTP_COOKIE} proxy-target-B RewriteRule ^/original-request http://backend-b/another-application [P,QSA] RewriteRule ^/original-request http://primary-backend/original-application [P,QSA] 我试图达到使用Nginx相同,我的初始configuration是这样的(其中“proxy_override”是cookie的名称): location /original-request { if ($cookie_proxy_override = "proxy-target-A") { rewrite . http://backend-a/some-application; break; } if ($cookie_proxy_override = "proxy-target-B") { rewrite . http://backend-b/another-application; break; } proxy_pass http://primary-backend/original-application; } 但事实并非如此。 我试着看看Nginx是否可以通过写主代理来redirect到基于${cookie_proxy_override}东西来读取我的cookie,我可以看到它读取的内容很好,但是if似乎总是失败。 我的下一个尝试,根据Rikih的回答是这样的: location /original-request […]
我有下面的例子 location / { proxy_read_timeout 2000; proxy_next_upstream error; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass_header X_CUSTOM_HEADER; proxy_redirect off; proxy_max_temp_file_size 0; proxy_pass https://prod; break; } 现在,当我使用下面的curl线 curl –head -H "X_CUSTOM_HEADER: foo" http://domain.com/api/test 现在,这是行不通的..在后端的Apache / PHP没有看到头。 如果我绕过nginx它的作品 curl –head -H "X_CUSTOM_HEADER: foo" http://web1.domain.com/api/test
使用nginx 1.2.1我可以使用add_header添加多个头文件,如下所示: server { listen 80; server_name localhost; root /var/www; add_header Name1 Value1; <=== HERE add_header Name2 Value2; <=== HERE location / { echo "Nginx localhost site"; } } 结果 GET / HTTP/1.1 200 OK Name1: Value1 Name2: Value2 不过,当我在location内使用add_header指令时, server下的其他add_header指令被忽略 server { listen 80; server_name localhost; root /var/www; add_header Name1 Value1; <=== HERE add_header […]
我有一个运行Nginx的Ubuntunetworking服务器。 我从来没有configuration日志文件旋转,并刚刚发现了一些千兆字节的单片日志文件。 我已经根据这些提示configuration了日志循环 。 但是,我宁愿不等一个星期(我的轮换期)在轮换发生之前。 有没有办法强制立即旋转一个特定的文件,或由logrotateconfiguration指定的所有文件?
在本地开发机器上, 我有一个像这样的nginx反向代理 : server { listen 80; server_name myvirtualhost1.local; location / { proxy_pass http://127.0.0.1:8080; } server { listen 80; server_name myvirtualhost2.local; location / { proxy_pass http://127.0.0.1:9090; } 然而,如果我debugging我的应用程序,响应可能会延迟无限的时间,但30秒后,我得到: 504 Gateway Time-out 作为回应。 我如何禁用超时,让我的反向代理永远等待响应? 我喜欢这个设置是全球化的,所以我不必为每个代理设置它。
比方说,我想从www.example.comredirect到example.com,我想用nginx来做到这一点。 我环顾四周,没有看到任何好的文档,所以我想我会问,回答我自己的问题。
我们正在使用nginx来将请求负载平衡到我们的应用程序。 我们发现当请求超时(好)时,nginx会切换到不同的上游服务器。 但是,它会对PUT和POST请求造成不良影响(数据存储两次)。 是否有可能configurationnginx只在超时重试GET请求? 还是有另一种方法来解决这个问题? 我们的configuration如下: upstream mash { ip_hash; server 127.0.0.1:8081; server 192.168.0.11:8081; } server { … location / { proxy_pass http://mash/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }