Articles of nginx

php-fpm调用oom-killer

我看到一个问题,PHP-FPM完美工作了几天,然后决定填满所有的内存+交换和调用OOM杀手。 发生这种情况后,服务器是完全死了,你甚至不能SSH进去了。 必须重启才能恢复正常。 我想知道为什么会发生这种情况,如果有一个修复或解决方法,如限制它可以使用的内存量或重新启动过程,如果它开始使用太多。 我已经捕获了内核转储发生的最后几次。 http://pastebin.com/raw.php?i=rX6jYDe0 http://pastebin.com/raw.php?i=f2qx5GcS 我的php-fpm.conf http://pastebin.com/raw.php?i=27hvN27q 我的www.conf: http://pastebin.com/raw.php?i=VgYtut9j 让我知道如果还有什么我可以给你更多的信息,为什么这可能会发生。

Nginx来代理Apache

我正在尝试将Nginx设置为Apache的反向代理服务器,用于在本地运行的站点:8080,并通过lessico.pistacchioso.com外部访问。 当前的configuration导致502 – 错误的网关错误。 #/etc/apache2/ports.conf Listen 127.0.0.1:8080 <IfModule mod_ssl.c> # If you add NameVirtualHost *:443 here, you will also have to change # the VirtualHost statement in /etc/apache2/sites-available/default-ssl # to <VirtualHost *:443> # Server Name Indication for SSL named virtual hosts is currently not # supported by MSIE on Windows XP. Listen 443 </IfModule> <IfModule […]

我如何使PHPMyAdmin可以访问所有域?

我最近在我的服务器上安装了phpmyadmin和nginx,但是我想让它可以被所有的域访问,而不需要复制到每个域的web根目录。 这可能吗? 如果是的话,怎么样? 编辑:这是什么在我的configuration现在,躺在 location /phpmyadmin/ { alias /home/phpmyadmin/; } location ~ ^/phpmyadmin/(.+\.php)$ { alias /home/phpmyadmin/$1; include fcgi.conf; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; }

我想访问我的服务器(私人)使用公共域名

Ec2给每个实例一个公共主机名,而不是分配一个ip。 我也想这样做。 我想像这样访问我的机器。 machine1.mycompany.com >> 10.0.0.123 machine2.mycompany.com >> 10.0.0.234 互联网>代理服务器>(machine1,machine2)内联网 我应该使用什么作为代理服务器,以及如何configuration。 Apache的? nginx的? 例: 我刚刚创build了一个实例。 它拥有私有IP为10.34.90.77,拥有公有域名ec2-50-17-23-238.compute-1.amazonaws.com。

从nginx直接回声404提高性能

我负责为网站提供静态内容的生产服务器。 这些服务器不断被爬虫寻找潜在的漏洞( 这在安全方面没有什么太大的问题,因为在Web服务器之后没有任何应用程序 ),但是每天产生成千上万的404 ,有时每小时。 我正在研究阻止这些请求的方法,但这很棘手( 您要确保您不会阻止合法的stream量,而且这些漫游器在看起来像是合法的时候变得越来越聪明 ),并且需要一段时间find可以接受的解决scheme。 与此同时,我想减less服务这404页的性能影响。 事实上,我们使用的nginx默认configuration为从磁盘提供404页面(这可以使用error_page指令进行更改,但最终404将不得不从磁盘或其他外部源(例如上游应用程序将是最糟糕的))这是不理想的。 我使用基本configuration在本地计算机上运行了一个testing:在一种情况下,我直接从nginx echo一条消息,所以磁盘根本不被触及,另一种情况是我find了一个缺失的页面, nginx提供了404磁盘。 server { # […] the default nginx stuff location / { } location /this_page_exists { echo "this page was found"; } } 这里是testing结果( 我的笔记本电脑有Intel(R)Core(TM)i7-2670QM + SSD,以防你为什么这么高 ): $ ab -n 500000 -c 1000 http://localhost/this_page_exists Requests per second: 25609.16 [#/sec] (mean) $ ab […]

如何让dev。*。domain.com在nginx上工作

我试图让nginx接受这种格式的网站:dev。*。domain.com。 我读过文档,我知道我必须使用正则expression式。 通配符名称只能在名称的开始或结束处包含星号,并且只能在点边界上。 名称“www。 .example.org“和” w。example.org“无效。 但是,可以使用正则expression式来指定这些名称,例如“〜^ www .. +。example.org $”和“〜^ w”。 .example.org $”。 星号可以匹配多个名称部分。 名称“ .example.org”不仅可以匹配www.example.org,也可以匹配www.sub.example.org。 所以我有: server { listen 80; server_name ~^dev\..+\.domain\.com\.br$ dev.domain.com.br; access_log /var/log/nginx/dev.domain.com.br.access.log; error_log /var/log/nginx/dev.domain.com.br.error.log; location / { proxy_pass http://127.0.0.1:68319/; include /etc/nginx/proxy.conf; } location /media/ { alias /my/folder/to/media/; expires 15d; } location /favicon.ico { alias /my/folder/to/favicon.ico; expires 15d; } } 不知怎的,它结束了这条规则(这是最后一条): […]

InstantSSL的证书与Nginx下的自签名证书不同,具有IP访问地址

我从InstantSSL订购了一个ssl证书,并获得了以下一对文件: my_ip.ca-bundle,my_ip.crt 我以前也使用openssl生成了我自己的密钥和crt文件。 我连接了所有的crt文件: cat my_previously_generted.crt my_ip.ca_bundle my_ip.crt> chained.crt 并configurationnginx如下: server { … listen 443; ssl on; ssl_certificate /home/dmsf/csr/chained.crt; ssl_certificate_key /home/dmsf/csr/csr.nopass.key; … } 我没有根据客户请求的域名。 当我用https://my_ip打开浏览器时 铬给我这个错误: The site's security certificate is not trusted! You attempted to reach my_ip, but the server presented a certificate issued by an entity that is not trusted by your computer's […]

新服务器在HTTPS请求上随机添加端口7081

我只是在背面安装了一个新的运行NGINX的LAMP服务器。 虽然每次都不会发生,但某些HTTPS请求正在URL中search端口7081。 例如: http://www.nacdbenefits.com显示正常 点击联系我们redirect到https就好了 点击页面右下方的链接(我的pipe理员)显示一个端口7081,并且一旦login到页面就会导致错误。 这是NGINX的预期行为吗? 我相信这几乎肯定与NGINX有关,因为禁用它(并且只运行apache)不会产生这个错误。 NGINX conf #user nginx; worker_processes 1; #error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; #pid /var/run/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr – $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log /var/log/nginx/access.log main; sendfile […]

在硬件LB之后的零停机部署(Tomcat),Nginx或HAProxy – 如何“饿死”旧的服务器?

目前我们有以下设置。 硬件负载平衡器(LB) Box 8080(TA)上运行的Tomcat 运行Tomcat的Box 8080(TB) TA和TB在LB后面运行。 现在,使用Box A或Box B从LB中进行零宕机部署是相当复杂和手动的工作。 我正在想做这样的事情: 硬件负载平衡器(LB) Box A在8080(NA)上运行Nginx Box 8081上运行的Tomcat(TA1) Box 8082上运行的Tomcat(TA2) 在B80上运行Nginx的Box B(NB) 在8081上运行Tomcat的Box B(TB1) 在8082上运行Tomcat的Box B(TB2) 基本上LB现在将指挥NA和NB之间的stream量。 在每一个Nginx的我们将有TA1,TA2和TB1,TB2configuration为上游服务器。 一旦上游的健康检查页面中的一个没有响应(closures),stream量将转到另一个(Nginx上的HttpHealthcheckModule模块)。 所以部署过程很简单。 说,TA1是活跃的0.1版本的应用程序。 TA1上的健康检查是可以的。 我们开始TA2与Healthcheck作为错误。 所以Nginx不是在跟它说话。 我们将应用程序版本0.2部署到TA2。 确保它的工作。 现在,我们将TA2上的Healthcheck切换到OK,将Healthcheck切换到TA1以ERROR。 Nginx将开始为TA2服务,并且将移除TA1。 完成! 现在和另一个盒子一样。 虽然听起来很酷,但是我们怎么“饿死”Nginx呢? 假设我们有待处理的连接,TA1上的一些用户。 如果我们closures它,会话将会中断(我们有基于cookie的会话)。 不好。 任何使用Nginx来阻塞上游服务器的stream量? 谢谢!

nginx和try_files:在回退之前尝试使用重写的命名位置

我正在尝试网站切换。 我们希望通过使用301redirect来保留我们的外部链接。 我在一个命名的位置有一个冗长的redirect列表,类似于: location @redirects { rewrite ^/path/one.html$ http://www.ourdomain.tld/one-but-different permanent; rewrite ^/path/two.html$ http://www.ourdomain.tld/two-but-different permanent; rewrite ^/path/three.html$ http://www.ourdomain.tld/three-but-different permanent; rewrite ^/path/four.html$ http://www.ourdomain.tld/four-but-different permanent; } (请注意,即使看起来我的示例显示了一个模式,但没有模式存在,换句话说,它们是一对一的redirect。) 我有一个CMS Web应用程序,目前我正在使用下面的try_files语句(它一直在努力回落到index.php脚本): location / { try_files $uri $uri/ /index.php; } 现在我试图使用try_files来“查看”redirect的位置,并在返回到index.php之前处理重写。 喜欢这个: location / { try_files @redirects $uri $uri/ /index.php; } 但是,CMS在处理404时每次都会触发回退。 换句话说,如果我尝试使用http://www.ourdomain.tld/path/one.html ,我可以获取我的CMS的404页面而不是redirect! 是否有可能首先“尝试”一个命名的位置,或者命名的位置是否是后备? 我确定我做错了。 不过,有人能指出我的方向吗? nginx的/ 1.2.4 谢谢!