Articles of nginx

DNS失败崩溃的网站 – CURL请求

我的PHP不断抛出与缓慢脚本有关的随机错误。 nginx / php5-fpm在错误日志中报告由于脚本超时而导致子节点被终止。 PHP5-FPM慢速错误日志报告的问题是我做的curl请求。 困惑,因为我使用连接超时所有我的curl请求例如 CURLOPT_CONNECTTIMEOUT 3 #number of seconds trying to connect CURLOPT_TIMEOUT 3 #number of seconds to run curl for 这是一个生产服务器,所以价值很低,我们希望在1秒内做出回应。 所以我意识到我们用于CURL的URL必须在DNS层失败。 所以我模拟了一个坏的DNS或不可用的DNS,我能够在我的日志中重现相同的错误和缓慢的脚本消息。 那么,我该如何处理呢? 1)CURLOPT_DNS_CACHE_TIMEOUT – 但增加默认从2分钟说10分钟? 不过,我确实看到,在我的错误,我有这些慢脚本2分钟和3秒准确…这表明CURLOPT_DNS_CACHE_TIMEOUT默认2分钟正在caching一个坏的响应,这是无论多久的caching设置。 时间似乎很方便忽略,但我可能是错的。 它会caching一个坏的DNS /不可用的DNS? 2)以某种方式编辑我的DNS名称服务器以允许多个DNS服务器。 然而,我编辑我的resolv.conf文件,并将openDNS添加到现有的名称服务器。 但我把一个虚假的DNS第一个1.1.1.1,它仍然没有给我一个网站上的错误的网关错误。 为什么不select另一台服务器来获得响应? 我认为添加多个服务器将sorting它,但它仍然在阅读列表中的第一个和失败。 我认为curlcaching可能caching不好的反应,但我不知道。 理想情况下,我保持caching,以减less查询IP的延迟。 任何build议如何我可以解决一个不可用的DNS服务器崩溃我的PHP脚本/curl请求? 谢谢

Nginx的HTTPS在1个hostfile中都是

我有多个主机文件。 我也有一个基本的:“默认”主机文件(与phpmyadmin位置等) 在这个文件中,我想强制redirect到https的所有其他主机文件。 我不知道如何在下面的例子中做到这一点。 server { listen 80; server_name signup.mysite.com; <– this should be a wildcard rewrite ^ https://$server_name$request_uri? permanent; }

nginx未知指令ssl_protocols

我已经编译了支持ssl的NGINX 1.4.1,并希望通过以下代码来确保我的configuration: ssl_prefer_server_ciphers on; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers AES128-GCM-SHA256:AES256-GCM-SHA384:RC4-SHA:AES128-SHA256:AES256-SHA256; ssl_session_cache shared:TLSSL:16m; ssl_session_timeout 10m; 这是我得到的错误,我不明白为什么它出现: nginx: [emerg] unknown directive "ssl_protocols SSLv3" 我的nginxconfiguration: nginx version: nginx/1.4.1 built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) TLS SNI support enabled configure arguments: –with-http_dav_module –with-http_gzip_static_module –with- http_stub_status_module –prefix=/opt/nginx –with-http_perl_module –with-http_ssl_module –with-perl=/usr/bin/perl –with-http_geoip_module –with-http_realip_module 也许有人知道我在做什么错了?

Nginx为每个url加载相同的确切页面

好吧..我有一个问题,每一个页面加载相同的确切页面在这个nginxconfiguration。 正在加载的页面似乎是index.php 不完全确定什么是? 它应该从磁盘提供资产,并将php请求redirect到index.php 我的nginx vhosts: server { listen 1.2.3.4:443 ssl; server_name xxxxxxxxxx; server_name xxxxxx; server_name xxxxxxxx; ssl_certificate /usr/local/psa/var/certificates/xxxx; ssl_certificate_key /usr/local/psa/var/certificates/xxxx; ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; client_max_body_size 128m; add_header Bryan was_here; root /var/www/vhosts/xxxx/httpdocs/; disable_symlinks off; location / { try_files $uri $uri/ /index.php?$args; access_log off; } #location = / { #index […]

nginx ip名称子域别名403错误

语境: – 我有nginx监听端口80,并提供静态文件(jpg,css,js等) – 如果非静态文件,我proxypass到Apache在8080听 – 我使用“secure_link”来保护我的文件被未经授权的人下载。 – 我在DNS中有一条logging,例如: sub1 IN A 123.45.67.89 结果: – sub1.mydomain.org可以成功访问。 – “secure_link”几乎可以成功运行,我确实可以像这样保护我的文件: http://123.45.67.89/authorized/personal.zip?h=jrzkNDEX5ie3nALar2_uuQ&e=1371539981 问题: – 如果我将“ip”replace为“subdomain”,则返回一个nginx 403错误: http://sub1.mydomain.org/authorized/personal.zip?h=jrzkNDEX5ie3nALar2_uuQ&e=1371539981 其他信息 – 因为一切工作正常,除了怪异的子域的东西,我不认为有必要粘贴我的整个nginx.conf文件? 无论如何,这里是: user www-data; worker_processes 2; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; gzip on; gzip_disable "msie6"; […]

重写x-forwarded-for

客户端 – LB – App Server 我有一个支持http或https的应用程序。 如果原始请求是https,但服务器期待http,则不起作用。 是否有可能使用nginx来重写x-forwarded-for? 客户端请求https:// xxxx ,但服务器会看到http:// xxxx

高Apache的CPU使用率,但低nginx – configuration是否正确?

我们刚刚将我们的网站迁移到全新的高规格Linux服务器(1x Intel Xeon E3-1230 v2 @ 3.30GHz,8GB DDR3 ECC,2个128GB SATA SSD RAID1)。 服务器已被configuration为使用nginx,但我们不确定它是否正常工作。 该网站总是加载速度非常快( http://www.onedirection.net ),但Plesk经常向我们发送有关Apache CPU使用率达到高峰的报告,但是当我们查看nginx百分比时,它总是非常低。 我们来自Windows背景,所以对于Linux来说是非常新的,但是不应该运行nginx运行INSTEAD的Apache? 下面是Plesk的屏幕截图,显示CPU使用情况: http : //www.pixelkicks.co.uk/_download/plesk.JPG 该网站每天大约有20,000个访问者,我们使用W3 Total Cache来尽可能快地运行。 MySQL已经很好的优化了。 内存使用情况仅在8GB的2GB下运行。 这看起来正确吗? 我们怎么知道nginx正在做大部分工作?

Nginx的代理传递和URL重写

只有当我有url中的参数时才能触发这个规则,否则我会匹配一个别名。 location ~^/static/photos/.* { rewrite ^/static/photos/(.*)$ /DynamicPhotoQualitySwitch/photos/$1 break; expires 7d; proxy_pass http://foofoofoo.com; include /etc/nginx/proxy.conf; }

aws在aws安全组中打开了哪些端口?

我正在构build基于回合的游戏的后端。 我的经验主要是一盏灯; 我在一个节点端项目上涉足nginx。 我刚刚阅读了Twit Pic的Stephen Corona Scaling PHP应用程序。 他build议在Apache上使用nginx服务器。 他说他的ubuntu机器已经打开了32768-61000个端口。 在AWS上,我是否需要修改我的安全性进行分组以允许访问这些端口? 我如何确保nginx充分利用这个configuration? 更新: 我预计我的大部分要求是在443港口,这就是为什么我对他build议开放更多港口的build议感到困惑。 这是他所做的build议 net.ipv4.ip_local_port_range ip_local_port_range定义系统上可用端口的范围。 在我的股票Ubuntu安装,它被设置为32768-61000。 增加范围以允许更多的连接。 可用端口的数量限制了同时开放连接的数量。 请记住,即使在连接closures之后,它仍然在TIME_WAIT状态下吃一个端口(虽然我们用下面的一些设置来减轻这个影响)。 sysctl-wnet.ipv4.ip_local_port_range="10000 65535" vi /etc/sysctl.d/haproxy-tuning.conf net.ipv4.ip_local_port_range=10000 65535

通过http服务静态资产真的比sshfs(apache2 / nginx)慢

迁移到新的VPS后,我有一些用户抱怨在他们的网站缓慢加载图像。 在用dd创build了一些testing文件后,我意识到我可以通过sshfs全速下载所有文件,而通过networking下载的速度非常缓慢。 文件越大,传输时间越长,传输速度越慢。 我以为我在使用Apache时遇到了一些问题,只是花了整整一个晚上的时间,用静态文件服务的nginxreplaceApache2,完全没有任何效果。 顶部没有I / O等待状态。 不占用大量内存,CPU利用率不高,hdparm始终显示出良好的I / O性能。 我只是不知道这个服务器上发生了什么。 这是一个演示文件的链接: http : //master.dealux.de/file.tgz 任何人有一个想法,我可以检查出来吗?