当您使用Ruby on Railsbuild立一个Linux服务器,并且不使用RVM时, sudo gem install [gem]或gem install [gem]是最佳实践。 我正在使用第二种方法,并将我的gems存储在~/.gems目录中,然后让Phusion Passenger + Apache在该目录下的用户目录下查找gems。 这是皱眉还是OK?
我在Web层上有以下架构。 Varnish <-> Apache2 (mod_pagespeed <-> mod_jk) <-> Tomcat ^ ^ ^ | | |________: mod_jk | |_______________________________________________: port 8080 |__________________________________________________________: port 80 varnish和mod_pagespeed在默认configuration下安装。 现在,当我访问url http://example.org:8080然后我可以看到在源代码mod_pagespeed被调用,并重写了页面(在第二次刷新的心态,因为它没有caching的第一次) 但是,当我访问的urlhttp://example.org:80 mod_pagespeed没有被调用和HTML代码被呈现不变。 以下显示了每个交叉点上收到的http头 PORT 80 < Server: Apache/2.2.14 (Ubuntu) < Set-Cookie: JSESSIONID=95ABA0EB57ACCBE15C9D7035C4397BD3; Path=/ < X-Mod-Pagespeed: 0.9.17.7-716 < Cache-Control: max-age=0, no-cache, no-store < Vary: Accept-Encoding < Content-Type: text/html;charset=UTF-8 < Content-Length: […]
当我将以下行添加到处理PHP脚本的服务器的.htaccess文件时,出现错误: AddHandler application/x-httpd-php .html .php 当我尝试访问我的服务器上的PHP页面时,它会进入一个空白页面并提示用户下载文件。 我如何解决这个问题?
我们有一个虚拟化的LAMP + memcached + nginx设置,经过几个月前的一些调整后,直到最近(3-4个星期前)才performance良好。 在高峰时间,服务器变得几乎无法访问,通常与nginx给500 – 尽pipe我原来的评估似乎没有超时相关,因为这经常发生在一两秒钟内。 看看我们的munin图,MySQL似乎是罪魁祸首,但我不明白为什么。 在此之前,每秒查询次数会像预期的那样在高峰时间上升,最终达到一个可控的高峰,并在几小时后消失。 现在,尽pipe峰值并不比以前高,但是一旦峰值达到峰值,性能坦克就会出现,如吞吐量和查询/秒指标所反映的那样。 CPU至less有50%空闲,有几个内存仍未使用,并且没有交换或I / O争用。 缓慢的MySQL查询以每秒0.01-0.02的速度上升,并且很less有超过15个线程同时运行。 我注意到的一件事情是,与这些情节中的每一个相对应的MySQL磁盘写入略微(2-4K块/秒)的增加,尽pipe我不能直接看到连接是什么,但我必须相信这是相关的。 mysqltuner提出了一些与内存有关的更改,主要有以下几点: query_cache_limit (> 4M, or use smaller result sets) sort_buffer_size (> 32M) read_rnd_buffer_size (> 32M) innodb_buffer_pool_size (>= 9G) 我很难评估这些变化可能会产生什么影响,或者主要的问题是什么,我可以发现没有明显的争议。 数据库的主要部分是约1000万用户logging和相关数据,其中每天访问约150万,每月约130万。 任何意见如何进行表示赞赏。 附录:看起来nginx通常是以“24:太多打开的文件”失败的,包括试图与Apache交谈的时候。 ulimit说nginx的文件句柄限制是1024 – 这是不是太less? 附录2 /答案:好吧,尴尬,我find了我自己的问题的答案,这与上面的附录有关。 Nginx的同时打开的文件句柄的限制设置为1024.因此,许多向Apache发出的请求从未交付,导致MySQL吞吐量自然下降 – 这不是因为MySQLperformance不佳,而是因为有这么多的请求做了这么多。 这并不能解释磁盘活动的增加,但可能在问题出现之前,这种活动总是存在 – 可悲的是,性能图不能回到那么远。 无论如何,我加了“worker_rlimit_nofile 2048” 到nginx.conf,它覆盖了ulimit认为最大的文件句柄,性能已经恢复。 如果有人遇到这个问题,那么这就是答案。 ;) (为了logging,我不能/实际上/回答我自己的问题,因为这个问题太新了。)
我正在一个非常具体的apache + mod_ssl + mod_jk + tomcat上工作 到目前为止,一个基本的configuration工作,我想要的:访问我的webapps背后的东西很好。 我使用通配符证书的前端(因此,Apache)。 连接是这样的: [apache] < – > [mod_JK] < – > [tomcat] apache :2.2.17 Tomcat :7.0.12 JK_mod版本 :1.2.31 注意 :目前我只有1个tomcat正在运行,但是我可能需要使用mod_jk中的负载均衡器添加其他的。 好吧,现在是有趣的部分。 我需要使用客户端证书来保护我的webapps。 例如,为了访问“webapp1”而向“用户1”提供“客户证书1”应该被允许,但是不应该允许任何其他web应用。 这对于“用户2”是一样的:使用他自己的客户端证书(客户端证书2)访问webapp2,等等。 为了更加灵活(在webapp中也有一些java代码,所以这很理想),我决定让Tomcat处理客户端证书,而不是Apache。 但是有一个棘手的方面:对于网页浏览(使用互联网浏览器,如Firefox,IE等),应该使用通配符证书(这个证书是由verisign生成的,然后在apache conf ); 但是对于应用程序数据上传(这些是web应用程序的function),要求客户端证书(见上)仅允许非常有限的访问。 我知道这可能听起来很愚蠢,但这就是我所要求的… 我已经结束了2种不同的configuration: 1)在端口443上使用带有通配符证书的Apache和在端口8443上使用Tomcat – SSL 通过网页浏览器,我可以通过mod_jk通过apache查看我的应用程序。 数据上传通过Tomcat SSL端口执行。 这可能是正常的,但我可能需要稍后运行多个Tomcat实例,所以我不知道它将如何performance。 但这可能是一个解决scheme。 到目前为止,这是最重要的configuration 2)在端口443上使用apache,在8080端口上使用tomcat 我能够查询我的密钥库来检索任何客户端证书。 问题是,我不能再使用我的通配符证书,并需要客户端证书来访问我的web浏览器(我不想)。 接下来,为了尝试解决这个问题,我尝试在apache中添加一个虚拟主机,使其拥有2个不同的servername。 我想要的是一个DNS名称用于浏览我的应用程序,另一个用于将数据上传到我的应用程序。 但它仍然要求客户证书。 所以我的问题是: 1)根据我的prerequesites,这是可行的吗? […]
有没有人在这里安装和configurationUbuntu的Codestriker? 我正在寻求一些帮助。 我刚刚在我的服务器Ubuntu 9.x上安装了Codestriker。 我在客户机上运行了这个页面: http://myserver_address/codestriker/codestriker.pl ,并且显示了login页面。 然而,如果我尝试创build一个新的帐户,我input一个电子邮件地址后,点击注册我有以下错误: 网页在 HTTP://myserver_address/codestriker/codestriker.pl行动= add_new_user 可能会暂时下降,或者可能已经永久移动到新的 url。 错误330(net :: ERR_CONTENT_DECODING_FAILED):未知错误。 如果我回到创build新帐户页面并input刚刚用于注册的电子邮件地址,它会告诉我: 用户帐户[email protected]已经存在。 我在configuration中错过了什么? 我现在如何解决这个问题? 此外,在codestriker.conf中 ,我已经在$ admin_users = ['[email protected]']中指定了pipe理员电子邮件。 但是我不知道这个pipe理员帐户的密码是在哪里指定的。 有人可以解释一下吗?
我一直试图在Django中做一个简单的应用程序一段时间,我注意到了以下行为: 每次我在项目文件夹中对urls.py进行更改时,只有在重新启动http守护进程之后才会反映更改。 为什么? 没有这个方法,我有办法吗? 我尝试将r'^ staff / $'redirect到staff.views.index(员工是我的应用程序名称)。 但访问/工作人员给了我一个“服务器错误”,其中检查error_log显示“TemplateSyntaxError:Caught ImportError渲染时:没有名为职员模块”。 这是什么意思? 从urls.py (并重新启动httpd) 删除该特定的行 ,访问/恢复到“它工作”页面。 但是,当我清除所有浏览数据(包括caching)后刷新页面,我神奇地回到页面说 Using the URLconf defined in myproj.urls, Django tried these URL patterns, in this order: ^staff/$ The current URL, , didn't match any of these. 这真令我困惑。 怎么可能会回来? 我试图理解发生了什么,但可悲的是,我失败了。 按照这个速度,我可能会回去cakephp。 我不想回去,帮忙! 背景信息: 我在Arch Linux上用mod_wsgi运行Apache。 myproj是我的项目名称(位于/ srv / http-django),它有一个名为staff的应用程序(添加到INSTALLED_APPS)。 我的WSGI脚本将/ srv / […]
我已经打开Apache的sticksessions。 configuration在: http : //pastie.org/private/7e9idebbk5jhmsyd8r4kew 日志显示Apache发现cookie,但它仍然不会粘在平衡器的其中一台服务器上。 筛选日志是: http://pastie.org/2096930
我在Ubuntu 10.04的apache web服务器上有一个基本的php cgiconfiguration问题。 我试图设置CGI以回答其中一个URL localhost/cgi-bin/index.php或localhost/index.php与执行/usr/lib/cgi-bin/index.php的输出具有输出phpinfo() 。 我遵循Ubuntu 10.04> Ubuntu服务器指南> Web服务器> HTTPD – Apache2 Web服务器让我开始,并完成虚拟主机的东西。 我也创build了PHP脚本,并试图访问它,但我有力redirect的问题。 我试图通过启用mod_actions来解决这个问题,并做了一些关于Action和AddHandler指令的说明 。 我在httpd.conf插入了2个指令,但是我在错误日志中访问了/var/www : Action php-script /cgi-bin/php # (or /cgi-bin , /cgi-bin/ for my setup) AddHandler php-script .php 所以现在我被卡住了,我可以使用一些帮助。
在我的Rails应用程序发布之前,我正在做一些基准testing。 在只有2000个请求和10个并发级别的情况下运行Apache基准testing时,我发现最后的20%的请求很长,从200毫秒到1600毫秒(见附图)。 我相信这是一个configuration问题。 什么可能是错的? 我用Passenger使用Apache。 configuration乘客服务数量最多的最佳做法是什么?