所以我使用下面的模式来处理我的Apache的多个网站: <VirtualHost 192.168.1.100:80> # get the server name from the Host: header UseCanonicalName Off VirtualDocumentRoot /var/www/%0/docs VirtualScriptAlias /var/www/%0/cgi-bin </VirtualHost> 因此,如果客户访问www.example.com,实际上会指向/var/www/www.example.com/doc/,这很好。 但是,如果客户转到example.com呢? 它会指向/var/www/example.com/doc,这不是我们想要的。 所以我的问题是:有没有更好的scheme呢? 或者我应该怎么做才能解决这个问题?
我们有这样一种情况,即僵尸程序占据了低性能Web应用程序页面请求的40%。 短期救济 作为即时救济,我想到了以下几点: 设置应用程序的另一个实例指向数据库的从属副本。 调用这个“服务器B”,而主应用程序是“服务器A”) 将所有botstream量转发到“服务器B”,将所有其他请求转发到主应用“服务器A” 通过服务器将“botstream量”从“用户stream量”中分离出来,会给服务器端更精确的分析带来额外的好处(即知道所有stream量来自“真实用户”而不是来自机器人)。 另外,我们可以使用较慢的服务器来处理“botstream量”,并将更多的资源投入到“真正的客户” 上下文 目前使用Apache 2.2与mod_proxy前端。 后端是jboss / tomcat 我们有一个手动维护的机器人头部列表(例如baidu,bingbot,googlebot,msnbot等) 题: apache(或者mod_proxy)可以根据头文件转发请求(例如,将所有的请求都用baidu,googlebot,msnbot等转发到ServerB,所有其他的都转发到Server A) 请考虑任何其他build议 提前致谢
我试图让SSL在我的Apache Web服务器上运行。 我没有DNS的域设置,但这是一个问题? 如何在我的Web服务器上设置SSL? 当我启动Apache时失败。 root@vannevar:/etc/apache2/ssl# service apache2 start * Starting web server apache2 Action 'start' failed. The Apache error log may have more information. 日志统计信息无法读取证书。 [Thu Jun 28 15:01:02 2012] [error] Init: Unable to read server certificate from file /etc/apache2/ssl/www.example.com.csr [Thu Jun 28 15:01:02 2012] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag […]
我使用CentOS和Apache2运行服务器。 我使用Web主机pipe理器(WHM)进行pipe理。 我正在改变WHM的Apacheconfiguration。 我将最大subprocess从150更新到100,并保存并重新启动服务器。 现在,我的服务器上随处可见内部服务器错误。 我也做了一个自动内存configuration,将每个进程的内存限制设置为64MB。 在我的错误日志中,我可以在更新后看到以下exception错误: [Fri Jun 29 16:39:18 2012] [error] [client 41.239.56.253] /usr/bin/php: error while loading shared libraries: libmysqlclient.so.16: failed to map segment from shared object: Cannot allocate memory, referer: http://apps.facebook.com/froiden-male-female/… [Fri Jun 29 16:45:50 2012] [error] [client 122.164.189.14] Premature end of script headers: index.php, referer: http://apps.facebook.com/froiden-male-female/ 请帮忙。
我build立了一个Ubuntu 12.04的新实例。 这当然是根用户。 我有Apache运行,它有它自己的用户和组,我也创build了一个单一的FTP用户(有它自己的用户和组)。 我还创build了一个新的组,我想我已经设置了包含Apache和FTP用户上传/创build/pipe理文件。 所以,现在,在我的网站根和用户和组,我有这样的东西: -rw-r–r– 1 root www-pub 22 Jul 30 06:21 index.html drwxr-sr-x 5 www-data www-data 4096 Jul 30 06:26 test drwxr-sr-x 8 ftpacct www-data 4096 Jul 30 06:03 stuff index.html由root(通过ssh)创build,test dir由apache创build,而dir由ftp用户创build。 (另外,www-data和ftpacct都属于www-pub组)。 我的问题:如果一个文件或目录由Apache(WWW数据)拥有它不能由ftp用户(ftpacct),反之亦然。 我可以给元素775的权限,然后它是可编辑的,因为所有的用户都在同一个组,但这似乎不安全(也许它不是?我觉得超过755是不是一个好主意)。 那么解决scheme是什么? 我怎样才能使ftpacct上传的文件可以被用户www-data修改,这样用户创build的文件就可以被ftpacct修改? 还是我应该这样想? 我可以这样做,还是这个权限设置不是最好的办法吗?
我想知道为什么我的服务器有这么多免费的Apache插槽打开。 服务器只有一些繁忙和空闲的插槽。 请查看所附图片,了解服务器使用的stream程量与我们的stream量。 问题 我应该改变我的configuration,以便有更less的空闲插槽? 如果我减less空闲插槽的数量,它会减less服务器正在使用的内存量? 统计 Apache进程: http : //i.imgur.com/cMthh.png Google Analytics(分析): http : //i.imgur.com/yl8Ui.png
我阅读了许多关于Apacheconfiguration的文章,并试图为我们的服务器find最好的价值。 为了确定什么是最好的,我使用JMeter来模拟每秒2100个连接。 经过多轮的微调,我得到了以下configuration: <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 10 ServerLimit 2048 MaxClients 2048 MaxRequestsPerChild 20000 </IfModule> 服务器详情: [root@web06 ~]# free total used free shared buffers cached Mem: 3814660 1070152 2744508 0 146788 766944 -/+ buffers/cache: 156420 3658240 Swap: 5210104 0 5210104 [root@web06 ~]# grep -c processor /proc/cpuinfo 4 [root@web06 ~]# uname –a Linux […]
我想在我的网站上密码目录/rutorrent 。 在那个目录下,我创build了这个.htaccess文件: AuthUserFile /home/whitey/sites/localhost/.htpasswd AuthName "Login to use rutorrent" AuthType Basic require valid-user 然后我在/home/whitey/sites/localhost/有一个.htpasswd文件: whitey:f9kK77E4scRcI 我已经使用在线.htpasswd生成器生成密码。 我重新启动了Apache,但是当我进入/rutorrent目录时,系统没有提示input密码。 在错误日志中也没有显示出来。
这个问题的标题很自我解释,但是: 每次收到请求时,apaches是否保持活动超时复位(如在,重新开始)? 举个例子,假设我们有一个60秒的保活超时时间: 秒0 – 收到第一个请求,保持活动开始 – 超时当前60秒 第二个10 – 下一个请求收到,保持活着重置 – 超时目前60秒 要么 秒0 – 收到第一个请求,保持活动开始 – 超时当前60秒 第二个10 – 下一个请求收到,保持活着不复位 – 超时目前50秒 谢谢。
我正在使用Apache服务器设置,我们要使用vhost中的SetEnv来定义代码是否在开发,testing版或生产环境中运行。 实际的Web应用程序正在Coldfusion 8 / JRun上运行。 我使用下面的代码在vhost中设置了值: <VirtualHost *:80> … SetEnv COLDFUSION_ENVIRONMENT development … </VirtualHost> 该应用程序读取这个值就好了。 但是,如果我使用Firefox中的“修改头文件”插件将名为COLDFUSION_ENVIRONMENT的头文件与另一个值(例如foobar)一起发送,则来自浏览器的值将在应用程序中使用,而不是在vhost中定义的值。 当然问题是为什么以及如何防止这个问题? 使用环境variables似乎是相当普遍的,以确定哪个服务器上运行的应用程序,所以如果这确实是这样做的,它看起来像一个非常大的安全漏洞,因为它会打开选项切换到生产服务器上的开发模式…有没有其他的最佳做法在Coldfusion中做到这一点? 更新: 我能够通过使用以下而不是SetEnv解决原始问题: <VirtualHost *:80> … RequestHeader set COLDFUSION_ENVIRONMENT development … </VirtualHost> 然而,它仍然感觉像一个黑客,我仍然想知道为什么ColdFusion基本上忽略SetEnv的价值,如果你把他们作为一个头,也如果有一个最佳做法与否。