Articles of apache 2.2

在Apache中configuration工作人员的最佳方式是什么?

我的网站在一天中收到大量的stream量(2000点击每分钟)。 一天中的其余时间收到较less的stream量(每分钟500e点击)。 我一直在试验MaxClients和MaxSpareServers的值,但在偷看时间仍然有一些停机时间。 如何根据我拥有的RAM数量来计算我的configuration的最佳值? 每个进程都像36-40M的内存 total used free shared buffers cached Mem: 3096 793 2302 0 0 0 -/+ buffers/cache: 793 2302 Swap: 0 0 0 我现在使用的值 <IfModule prefork.c> StartServers 10 MinSpareServers 22 MaxSpareServers 60 ServerLimit 90 MaxClients 90 MaxRequestsPerChild 400 更新:我发现从我的托pipe服务提供商。 http://kb.mediatemple.net/questions/246/(dv)+HOWTO:+Basic+Apache+performance+tuning+(httpd) 我有极端的软件包,我在MaxClients中使用了190,而不是200.我尝试了半天,我得到了一些malloc错误命令行消息,但是使用free命令,在free列中获得了800M。

如何在Windows和/或Mac上使Apache区分大小写?

是否有可能以区分大小写的方式使Apache服务文件? 我遇到的问题是,在我的开发环境(Windows / Mac)中,信件的意外大小写没有被捕获,但却在分段(Linux)上造成严重破坏。 有没有办法configurationApache来做到这一点? 如果我可以避免运行虚拟机,那就太好了。

.htaccess帮助?

首先,对于无编码技能的令人震惊的水平感到抱歉。 那么可能最好的是我首先描述我想要的东西。 我有2个域名,链接到一个托pipe包(是的,廉价的屁股选项,但无论如何)。 其中之一 – 下面代码的原始域名是基于我的虚拟主机的根目录,另一个是基于/ getfilm / 以下是我的.htaccess文件之前,我得到这个新的领域,并设置它。 ErrorDocument 404 /404.html RewriteEngine On RewriteCond %{HTTP_HOST} !^rowancavanagh.com$ [NC] RewriteRule ^(.*)$ http://rowancavanagh.com/$1 [L,R=301] <ifmodule mod_rewrite.c> RewriteCond %{REQUEST_URI} !^/favicon\.ico [NC] RewriteCond %{REQUEST_URI} favicon\.ico [NC] RewriteRule (.*) http://rowancavanagh.com/favicon.ico [R=301,L] </ifmodule> 现在显然这迫使我的新域名“getfilm.co.uk”,改为“rowancavanagh.com”。 我显然不想要。 我不知道从哪里开始,但是我可能会重复所有这些操作来同时处理根目录中的“rowancavanagh.com”和/ getfilm /中根目录之上的“getfilm.co.uk”。

CPU核心和工人/最大值服务器

我正在尝试优化我的apache和nginx安装,并且一直在寻找关于如何在Apache和Nginx的工作进程中设置正确数量或最小/最大服务器和连接的信息。 我想知道Apache和Nginx是否利用了多核处理器以及如何在Apache和Nginx中设置configuration? 例如,假设我有一个4核心处理器,我应该在nginx中将工作人员设置为4吗? 我应该在apache中设置备用服务器?

Windows的Apache 2.2痛苦地执行CGI缓慢

我最近在我们的Windows XP个人电脑上设置了Apache 2.2和git,以便使用https://git.wiki.kernel.org/index.php/MSysGit:GitWeb上的设置进行gitweb访问。正如wiki上所述,只有版本的Perl似乎与编码的方式与gitweb一起使用的MSysGit。 ActivePerl和StrawberryPerl没有实现某些必需的function,所以另一个解释器不是一个选项。 C:\Program Files\Git\bin>perl.exe –version This is perl, v5.8.8 built for msys 在任何情况下,它被设置,它的工作原理,但由于某种原因,每个页面加载大约有10秒延迟。 为了解决这个问题,我做了一个简单的helloworld.cgi,并把它放在gitweb.cgi旁边的目录中。 它被设置为使用与gitweb相同的perl解释器: #!C:\Program Files\Git\bin\perl.exe print "Content-type: text/html\n\n"; print "Hello, world!\n"; 该脚本在服务器上执行的时间也超过了10秒。 如果我启动一个命令提示符,并用相同的perl可执行文件直接执行它,它会立即执行。 mod_cgi被加载到Apacheconfiguration中,我正在使用为我的系统修改的git wiki上显示的configuration节: # Config to make the gitweb CGI available through Apache. Alias /git "C:/Program Files/Git/share/gitweb" <Directory "C:/Program Files/Git/share/gitweb"> AddHandler cgi-script .cgi <Files ~ "\.cgi$"> Options +ExecCGI </Files> […]

相当于Apache应用程序根目录的Apache

有人为我在Apache服务器上设置一个目录,我将把我的PHP应用程序。 该目录有一个192.168.1.5/app的外部path,并指向/home/test/app 。 我的应用程序通过像/img/logo.png这样的URL来引用它的文件,而不是../img/logo.png或类似的东西。 我遇到的问题是这些URL现在指向192.168.1.5/img/logo.png而不是192.168.1.5/app/img/logo.png 。 在IIS中,为了解决这个问题,我会将应用程序目录声明为一个应用程序,它将根URL设置为该目录 。 我如何在Apache中做类似的事情 (完全使用这个方法或其他的东西)?

Apache将https://主机:端口/文件夹redirect到http://主机:端口/文件夹/

我有一个Apache服务器在不同的端口使用两个SSL域(没有SNI支持),有点像这样: https://host1.tld:443 (默认) https://host2.tld:444 (非标准) 我有一个重写规则redirecthttp://host2.tld:80到:444(和主机1相同)。 然后是这个问题: 我有一个文件夹“文件夹”host2根。 如果我尝试访问http://host2.tld/folder/ ,一切正常,我最终在https://host2.tld:444 /文件夹/按预期。 现在,如果我inputhttp://host2.tld/folder,apache会将我redirect到http://host2.tld:444 / folder / ,这不存在。 由于从“文件夹”redirect到“文件夹/”是自动完成,我能做些什么来解决我的问题? Mod-rewriteconfiguration: <VirtualHost *:80> ServerName host2.tld RewriteEngine On RewriteRule (.*) https://%{HTTP_HOST}:444%{REQUEST_URI} [R=301,L] </VirtualHost>

即使在安装真实主机之后,Apache仍然使用虚拟主机的默认SSL证书

从浏览器通过SSL访问我的网站时,收到“连接不可信”错误。 我可以从使用Apache默认的自签名证书的细节中看到,而不是我已经安装的真实的CA签名证书。 在该网站的虚拟主机configuration中,我有: SSLEngine on SSLCertificateFile /etc/ssl/backup.domainname.com.crt SSLCertificateKeyFile /etc/ssl/backup.domainname.com.key …其中domainname是网站的实际域。 我已经重新启动Apache,它恢复正常。 什么会导致Apache尝试使用在安装操作系统时创build的默认自签名证书,而不是在虚拟主机configuration中指定的真实证书? .crt和.key文件存储在哪个目录中?

根据代理的响应代码,使用apache添加一个头文件

我使用Apache 2.2与mod_proxy到一些第三方HTTP服务器。 由于它不发送任何Cache-Control头,我想为响应代码200添加1天中的一个,为404添加5分钟,为任何其他响应代码添加0。 所以我会喜欢: SetEnvIf HttpResponseCode "200" rc_200 SetEnvIf HttpResponseCode "404" rc_404 Header set "Cache-Control" "private, max-age=0" Header set "Cache-Control" "public, max-age=86400" env=rc_404 Header set "Cache-Control" "public, max-age=86400" env=rc_200

Apache执行HTML,但不是PHP; PHP CLI的作品

我使用Apache 2.2.15在rhel 6.2上运行php 5.3.3,并且没有得到Apache解释的PHP代码。 没有错误(在系统日志中,httpd / error_log或php_errors.log) – 我在php.ini中启用了错误报告: error_reporting = E_ALL & ~E_DEPRECATED display_errors = On log_errors = On error_log = /var/log/php_errors.log 然而,当我直接从我的浏览器(例如myserver.com/index.php)查看包含以下代码的index.php时,没有任何东西显示,只是一个白屏: <?php echo 'Hello php World'; ?> 当通过命令行php执行时,我得到期望的文本输出到terminal(“ Hello php World ”)。 什么时候,我添加一些HTML到index.php中,如下所示: <html> <p>Hello from within html</p> <?php echo 'Hello php World'; ?> </html> 并用我的浏览器查看它,它只返回“ Hello from within html 。 但是,从命令行执行时,我得到: […]