Articles of nginx

cPanel的Apache和nginx在同一台服务器上?

我在我的VPS服务器上使用cPanel Apache 2来托pipe端口80上的PHP / MySQL网站。 所以,假设我们有myphp.com,它可以正常工作。 现在我安装了Ruby / Rails / Passenger(带有Ruby Entreprise Edition的nginx),它在3000端口上运行良好。假设我有一个新的Ruby on Rails应用程序,并希望在myruby.com而不是myruby.com上托pipe它: 3000。 我应该如何做到这一点? 我在nginx中configuration一个域如下: server { listen 3000; server_name www.myruby.com; root /home/myruby/public; passenger_enabled on; } 如果我将端口更改为80,那么它不起作用(显然与Apache冲突)。 请注意,我不会将myruby.com域添加到cPanel。 我有2个专用的IP地址。 我听说有两个IP可以解决这个问题。 但是,你如何指示cPanel的Apache只监听特定的IP? 另外,如果我将一个域指向我的服务器,我如何指示RoR域指向RoR IP?

如何通过Apache SSLstream量槽nginx代理?

我想在Fedora 8上设置nginx 0.6.33作为运行Apache的后端的负载平衡器。 我没有任何问题将其configuration为默认的http端口80,但我不知道如何做SSL(443)。 我不希望在nginx框中安装SSL证书,我希望它将整个stream量传递给已经安装证书的Apache服务器。 我的configuration如下所示: http { upstream backend{ server 192.168.0.1; server 192.168.0.2; } upstream secure{ server 192.168.0.1:443; server 192.168.0.2:443; } server{ listen 80; server_name www.my-server.net; location / { proxy_pass http://backend; proxy_set_header Host $http_host; proxy_redirect false; } } server{ listen 443; server_name www.my-server.net; location / { proxy_pass https://secure; proxy_set_header Host $http_host; proxy_redirect false; } […]

使用nginx与Apache作为反向代理

最近我决定从apache切换到nginx,我仍然使用apache作为反向代理来照顾我所有的dynamic内容。 在过去的2 – 3年里,我一直在使用Apache,我知道如何处理大部分可能的configuration,但是对于nginx来说,这是一个新的世界。 问题是当我使用第三方web应用程序,如phpmyadmin,图片将无法加载,通常我会使用apache的别名,但定义一个位置(nginx的别名)将无济于事。 nginx.conf # primary server – proxypass server { listen 80; server_name domain.com www.domain.com; access_log /var/www/domain/logs/access_log.nginx main; error_log /var/www/domain/logs/error_log.nginx warn; root /var/www/domain/html/http; # proxy to Apache 2 and mod_python location / { proxy_pass http://127.0.0.1:8080/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_max_temp_file_size 0; client_max_body_size 10m; client_body_buffer_size 128k; […]

Nginx / APC /? 为kmemsize优化

我有一个networking服务,每天点击100,000次。 它目前是在LAMP + memcached上运行的VPS。 当前configuration命中服务器的kmemsize限制。 服务器有很多可用的内存,并且不占用太多的CPU,因此远没有耗尽。 除了所有的参数都非常低。 你有什么build议去解决这个瓶颈。 我想在服务器端切换到nginx并在PHP端安装apc。 你认为这会打开瓶颈吗? 还有其他build议吗?

优化Apache

我一直在阅读Apache的多个优化指南,并发现了很多数据(虽然我不知道作者的经验是什么)。 我有一个生产服务器与Apache 2.2.3,MySQL 5.1.36,Centos 5.3,Nginx充当反向代理服务器(和处理静态文件)。 我的主要问题是我有大约10个httpd进程每个占用56-60MB RAM,每15分钟我通过一个crond(每个占用30MB)启动10个php进程。 基本上我正在使用默认的httpd.conf(是的,我知道,这是不好的),我刚刚调整了MPM的最大客户端和其他属性控制多less客户端shundld分叉,并安装nginx减轻Apache的负载。 我会很高兴我可以做什么样的优化我的httpd(我知道我应该卸载很多模块,但我有点害怕比删除的东西可能会打破我的申请)。 21969 root 16 0 145m 30m 6872 S 1.3 0.9 0:00.75 php 6031 apache 16 0 289m 59m 35m S 1.0 1.3 0:05.01 httpd 另一个输出为我正在运行的过程之一: [root@www /]# pmap -d 6031 6031: /usr/sbin/httpd Address Kbytes Mode Offset Device Mapping 00002b8b622e4000 308 rx– 0000000000000000 008:00003 httpd 00002b8b62331000 100 […]

重复/不间断地点击页面,空白引荐,非恶意

上周我问了这个问题,并遵循了debuggingbuild议,现在有了更多的信息。 我有一个奇怪的问题 – 在一个高stream量的网站上(每月有数百万的访问者),每天我们得到大约20个左右的情况,一个主机开始不断请求同一页面,每秒多次 – 从几分钟到一整天的任何时间长度。 这次攻击显然不是恶意的,因为我已经回溯了IP地址,并将其与我采访过的一些注册用户进行了匹配。 他们说,当这种情况发生时,他们的电脑变慢了,但是否则可以使用。 这不会发生在每一页的负载,而是零星的。 日志命中有以下特点: 他们开始“正常” – 首页加载实际上访问所有页面的资源(图像等),以及.php 然后主机开始请求只是PHP页面,没有资源不断,通常每秒(但有时更快,有时慢几秒) 远程浏览器总是Firefox 3.x(我们已经看到高达3.5.3和低至3.0.2) 即使第一个页面请求有一个,后续的点击也没有引用 只要访问者在该特定页面上,这种情况就会持续下去,而下一页加载通常是正常的 用户经常忘记发生了什么 – 他们的页面没有重新加载,所以发生在他们的背景下,我相信Firefox只是把信息扔掉 这发生在静态(例如,联系人)和dynamic页面(例如邮箱) 受影响的主机的IP分配没有我能辨别的相似性(例如,它们并不都是企业防火墙的后盾) 我们认为页面上的一个错误的JavaScript可能导致它,但完全禁用JavaScript并没有影响到所有的问题 我们终于明白如何处理这件事。 一个简单的DoSfilter是不合适的 – 我们拥有这个filter,触发它的阈值远高于单个页面请求(没有相关的图像,CSS等)。 我们还安装了mod_evasive,但是这并不能捕捉到这些,因为我们有一个多服务器系统,并且是以每个孩子为基础运行的。 该堆栈是LAMP,Redhat安装,PHP 5.2,Apache 2.2.3,NGINX框在多个Web服务器和数据库后端作为软件负载均衡器运行。 在没有好的想法的情况下,我们采用在memcached中编写我们自己的虚拟filter,在memcached IFF中存储IP + URI的密钥,用户是Firefox 3.x,并且引用者是空白的,并且递增每个页面请求。 一旦在一段时间内超过一定的门槛,我们还有403个要求。 但是,我不认为这是networking堆栈中处理这个问题的适当的地方。 希望有人看到这些,可以帮助我们find模式。 感谢您的贡献!

使用nginx的FreeBSD在运行一段时间后无法连接networking

我的服务器是一个FreeBSD系统,我运行nginx来代理用户请求到另一个真实的服务器。 我的问题是我一段时间后无法访问我的freebsd服务器。 服务器在另一个地方,所以我必须去修复它。 当问题发生时,服务器不能ping通另一个地址,不能使用networking,如果我重新启动并重新启动nginx,一切正常。 但过了一段时间,不能再次访问。 我对freebsd不是很熟,所以有人不禁要找出可能的原因?

nginx + spawn fcgi + php =“没有指定input文件”

如果fastcgi正在运行,则会显示“没有指定input文件”。 如果fastcgi不起来,我得到“您正在寻找的页面暂时不可用”。 这是我的configuration文件: server { listen 80; server_name website.org; root /home/user/public_html; location / { index index.php index.html index.htm; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/user/public_html$fastcgi_script_name; include /usr/local/nginx/conf/fastcgi_params; } error_page 500 502 503 504 /50x.html; location = /home/user/public_html/50x.html { root html; } } 我已经读过,更改php.ini中的cgi.fix_pathinfo和cgi.force_redirect的值可能会有所帮助,但是对于我来说并不是这样。

nginx重写规则

我有以下mod_rewrite规则 RewriteCond %{HTTP_HOST} !^(host)\.doamin\.com [NC] RewriteCond %{HTTP_HOST} !^(www)\.domain\.com [NC] RewriteRule ^(.*) /magento/$1 [L] 我需要在nginx上工作,而且我一直在靠墙敲门,以使其工作 谢谢! UPDATE! 这是对我正在尝试做的更好的解释 store1.domain.com store2.domain.com 所以用户可以进入store1.domain.com/products/url将保持在那里 我们在apache中这样做 RewriteCond %{HTTP_HOST} !^(host)\.domain\.com [NC] RewriteCond %{HTTP_HOST} !^(www)\.domain\.com [NC] RewriteRule ^(.*) /magento/$1 [L] 我们也有一个dns catchall,将所有* .domain.com发送到默认的apache虚拟主机。 我正在靠墙敲着头,让它在nginx中工作,以保持主机名相同,但在幕后重写magentoparsing域。 这是我有,但它只是继续追加/ magento / magento / magento到最后,直到它杀死循环 if ($http_host !~ "^www.domain\.com$") { rewrite ^.+ http://$http_host/magento/$uri last; break; } 上面的问题是不断重写它 […]

nginx + ubuntu + sugarcrm

有没有人有如何使用nginx在Ubuntu上安装SugarCRM的良好说明? 我期待在8.04(Hardy Heron)LTS上安装SugarCRM