Articles of nginx

初学者是一个好的起点? Apache,Nginx还是Cherokee?

任何这些networking服务器软件,即Apache,Nginx和Cherokee目前都适合我的网站。 我正在学习系统pipe理员能够pipe理我的服务器(而不是一份工作)。 对于我这样的初学者来说,任何Web服务器都是新的。 所以,请看看我的要求,好心build议一个networking服务器软件开始(坐在…像永远): 可扩展性 资源足迹低 支持PHP,MySQL,APC,Memcached,Meteor – – 全部为wordpress网站 现在和我的网站的stream量增加,从长远来看是有用的 负载容忍 其他一切… 正如你所看到的,我还处于初学者阶段。 所以,请不要说这是一个有争议的问题。 它绝对遵守SF的规则(或者希望如此,我只是阅读它们)。

如何在nginx中为全部虚拟主机全局设置robots.txt

我正在尝试为nginx http服务器下的所有虚拟主机设置robots.txt 。 我可以通过在主要的httpd.confjoin以下内容来实现: <Location "/robots.txt"> SetHandler None </Location> Alias /robots.txt /var/www/html/robots.txt 我尝试在nginx.conf和(b)中添加下面的(a)行来做类似于nginx的工作,包括conf.d / robots.conf location ^~ /robots.txt { alias /var/www/html/robots.txt; } 我已经尝试了'=',甚至把它放在虚拟主机之一来testing它。 似乎没有任何工作。 我在这里错过了什么? 有没有另一种方法来实现这一目标?

从nginx日志获取用户代理列表

我有nginx日志文件,我想找出每个主要版本的浏览器的市场份额。 我对小版本和操作系统不感兴趣。 我想得到这样的东西: 100 IE6 99 IE7 20 IE8 200 FF2 300 FF3 我知道如何从文件中获取用户代理的列表,但是我想汇总列表以仅查看主要版本的浏览器。 有没有工具可以做到这一点?

如何禁止外部访问127.0.0.1?

我使用127.0.0.1:9000上的tcp socket将nginx连接到php5-cgi。 但是我想确保没有外部的请求可以对这个IP,所以没有攻击者可以混淆IP和绕过nginx用php做恶心的东西。 现在我想知道是否真的有可能做这样的利用,如果是这样,我怎样才能避免使用iptables?

Nginx + PHP-FPM超时,几乎为零负载消耗?

我有一台服务器在Linode上运行,包括Ubuntu 10.04 LTS,Nginx 0.7.65,MySQL 5.1.41和PHP 5.3.2以及PHP-FPM。 有一个WordPress博客,最近更新到WordPress 3.2.1。 我没有改变服务器(除了更新WordPress),而且运行良好,几天前我开始停机。 我试图解决这个问题,并检查error_log我看到许多超时和消息,似乎与超时。 服务器当前正在logging这种错误: 2011/07/14 10:37:35 [warn] 2539#0: *104 an upstream response is buffered to a temporary file /var/lib/nginx/fastcgi/2/00/0000000002 while reading upstream, client: 217.12.16.51, server: www.example.com, request: "GET /page/2/ HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", host: "www.example.com", referrer: "http://www.example.com/" 2011/07/14 10:40:24 [error] 2539#0: *231 upstream timed out (110: Connection timed out) […]

Nginx多个域

我正在尝试添加第二个虚拟主机到nginx。 当我去新的领域,它redirect到旧的。 我已经尝试重新启动Nginx,重新启动服务器。 以前有没有人遇到过,关心分享? 文件:nginx.conf ### user www-data www-data; worker_processes 4; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; tcp_nodelay off; keepalive_timeout 5; gzip on; gzip_comp_level 2; gzip_proxied any; gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; include /usr/local/nginx/sites-enabled/*; } 文件:../sites-enabled/domain1.co.uk server { listen 80; server_name www.domain1.co.uk; rewrite […]

套接字消息泛滥的uwsgi队列?

我发现我的网站没有反应,我看到很多 *** uWSGI listen queue of socket "0.0.0.0:5002" (fd: 3) full !!! (101/100) *** *** uWSGI listen queue of socket "0.0.0.0:5002" (fd: 3) full !!! (101/100) *** *** uWSGI listen queue of socket "0.0.0.0:5002" (fd: 3) full !!! (101/100) *** 我被囚禁了吗? 到底是怎么回事?

Django将URL重写为浏览器中的IP地址 – 为什么?

我使用django,nginx和apache。 当我通过一个URL(例如http://www.foo.com/ )访问我的网站时,我的浏览器地址中显示的是pipe理员追加的IP地址(例如http://123.45.67.890/admin/ )。 当我通过IP访问网站时,django的urls.py会按照预期redirect(例如http://123.45.67.890/ – > http://123.45.67.890/accounts/login/?next=/ ) 我希望名称URL的行为与IP相同。 也就是说,如果URL转到新的视图,则浏览器地址中的主机应该保持不变,而不会更改为IP地址。 我应该在哪里寻找解决这个问题? 我的文件: ; cpa.com (apache) NameVirtualHost *:8080 <VirtualHost *:8080> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/htm DocumentRoot /path/to/root ServerName www.foo.com <IfModule mod_rpaf.c> RPAFenable On RPAFsethostname On RPAFproxy_ips 127.0.0.1 </IfModule> <Directory /public/static> AllowOverride […]

如何使用php-fastcgi删除nginx中的“Client-Peer”(etc)头

我的设置: 操作系统:Ubuntu 11.04 HTTP服务器:nginx 1.2.1 用HttpHeadersMore模块编译 通过php-fastcgi处理PHP (其他不相关的软件 – ruby,python等) 我的问题: 我试图完全屏蔽服务页面的软件(部分安全,主要是因为它很有趣),我设法改变服务器名称,并删除了PHP-fastcgi添加的X-Powered-By头, m无法删除三个标题: Client-Date: Thu, 14 Jun 2012 20:32:34 GMT Client-Peer: 205.186.146.37:80 Client-Response-Num: 1 我已经使用more_clear_headers模块中的more_clear_headers,但是这样做不起作用,尽pipe能够删除X-Powered-By头文件。 这是在我的http块 more_set_headers "Server: Tesco Value"; more_clear_headers "X-Powered-By"; more_clear_headers "Client-*"; more_clear_headers "Client-Date"; more_clear_headers "Client-Response-Num"; more_clear_headers "Client-Peer"; more_clear_headers "X-Pingback"; add_header X-Required-Volume-Setting 11; add_header X-Required-Speed 88mph; # NEW: added in thanks to the […]

nginx只有在未设置cookie的情况下才会重写URL

我有两个域www.domain.com和www.domain.com.tw。 我希望用户被redirect到最近的服务器,但是如果他们想要查看另一台服务器,他们可以通过点击站点中的链接。 我试图用cookie来做,但似乎没有工作。 我认为问题在于cookie是为引用URL设置的,而不是redirect的URL,所以nginx甚至不会看到cookie。 我怎样才能做到这一点? 这是我迄今的尝试。 server { listen 80; server_name www.domain.com.tw; set $redir ""; if ($http_accept_language ~* "en") { set $redir "1"; } if ($http_cookie ~* "noredir") { set $redir ""; } if ($redir = "1") { rewrite ^ https://www.domain.com/; } }