我试图通过Apache从Ubuntu服务器上的共享目录中单独提供两个项目。 整个工具包和kaboodle的目录如下所示: /project /api /app 现在,我想这一切都适合一个VHOST指令,其中api.domain.com服务于/project/api而*.domain.com服务于/app内的目录(它可能会结束public或webroot )。 这可能有点雄心勃勃(或愚蠢的,或不可能)在一个VHOST指令内做到这一点,但我有兴趣看到人们如何去做这样的事情。 也许我只是需要把它分开。 我想合并的理由是两者之间会有共享的Apache指令,唯一真正不同的就是DocumentRoot。 如果可能的话,我宁愿不要在两个VHost中重复这些设置。
我最近注意到,我pipe理的VPS有一些奇怪的Apache行为。 实质上,任何HTTP请求在实际服务之前都会挂起大约一秒钟的时间。 ab输出显示如下: $ ab -n 10 -c 1 http://server-public-ip/path-to-static-file This is ApacheBench, Version 2.3 <$Revision: 655654 $> <snipped> Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 3.5 0 11 Processing: 2 1373 1784.6 1000 4854 Waiting: 2 1372 1784.6 1000 4854 Total: 2 1374 1784.4 1011 4854 <snipped> 我最初的想法是,我的mod_perl网站运行缓慢,但这是运行在一个静态的服务文件! 我的虚拟主机configuration如下所示: <VirtualHost server-ip:80> […]
我有一些关于理解高服务器负载的问题,并且在Apache和MySQL和PHP 5等解决scheme的常见场景中实现某种types的负载平衡。 我在这个问题上很满意,并希望你的意见,因为我已经读了很多,我完全失去了可能的产品或技术,实施一个简单的,如果可能的话,免费的解决scheme: 需要关于负载平衡+一些技术问题的build议/意见! https://blogs.oracle.com/oswald/entry/easy_http_load_balancing_with 想象一个简单的例子,只有一个服务器和两个用户同时连接, 用户A和用户B. 用户A进行查询并要求input大量的数据,这个查询可能会在几分钟内超载MySQL服务器。 即: SELECT * FROM'table_with_10GB_of_data'; 用户B要求另一个小的快速查询,但MySQL服务器仍然忙于第一个查询。 上面的例子只是一个不真实的场景,一个坏的数据库表模式,以及一个可怕的查询,用来询问在这些情况下MySQL和Apache会发生什么。 我想知道他们是如何处理或解决这个问题的,怎样才能平衡负载,使MySQL和Apache服务器永远不会被单一用户的糟糕或缓慢的查询所束缚,同时他们仍然可以处理来自其他用户的其他查询。 如果我的问题在某些概念上是错误的,那么非常感谢你。 请随意添加任何提示,有用的书或您自己的经验与服务器和应用程序。
我刚刚使用统一安装程序安装了Plone。 我跳到我的浏览器,input:8080,它说无法连接。 同样的:8080 /pipe理,也没有任何东西。 昨晚它也这样做了,这是什么促使重新安装。 我不知道这里发生了什么,我已经看到在其他地方发布的同样的问题,没有具体的解决scheme。 我在端口8080上打开了防火墙,虽然在我第一次安装Plone时没有必要。 任何人都可以请帮我吗?
这个话题大都是这么说的。 我负责运行Apache2的一些运行Ubuntu 12.04的Web服务器,我想设置APC。 现在我明白,当处理有错误或怪癖的PHP代码时,APC可能会遇到分段错误问题。 因此,清理是明智的,但从人力angular度来看,并不是真正实用的。 所以我已经编写了一个脚本来监视主Apache2 error.log并计算它看到的分段错误数。 我运行它作为每2分钟运行的cron作业。 如果遇到指定数量的分段故障,应自动重启Apache2,清除APC并重新运行。 这个脚本的种子想法来自这个页面的评论,但我真的很重视这个概念,使其更多的生产准备满足我的需求和口味。 我对这个脚本通常感到满意,但是感觉一个主要的改进是这个片段的核心逻辑: if [[ `tail -n ${TAIL_NUMLINES} "${APACHE_ERROR_LOG}" | egrep -c "${TEXT_TO_WATCH}"` -ge ${FAIL_COUNT} ]]; then 这基本上是核心逻辑,将日志文件拖尾到指定的行数,如果它看到指定数量的带有exit signal Segmentation fault的日志条目,则决定是时候做一些事情了。 在这种情况下,请logging事件,向某人发送有关事件的消息并重新启动Apache。 我希望这个逻辑能够及时考虑因素,因为错误可能很less。 所以有些情况下我的FAIL_COUNT简单地匹配,不pipe重新启动,因为主错误日志中没有新的条目,因为没有新的错误命中。 这将最终在服务器基本上重新启动每一个cron作业命中的情况下。 这太可怕了 因此,我现在的解决scheme是将FAIL_COUNT & TAIL_NUMLINES设置为足够低的数量,以匹配Apache2重新加载时创build的条目的标准计数。 但是我还是不喜欢那个。 所以,如果有的话,可以添加一个时间框架到我的tail / egrep逻辑。 此外,我想避免创build一个时间戳或日志行的位置提示被保存到一个文件,如果可能的话。 我希望这个脚本是独立的,而不是依靠cron作业。 完整的脚本,因为我现在拥有它。 #!/bin/bash LOCK_NAME="APACHE_LOGWATCHER" LOCK_DIR=/tmp/${LOCK_NAME}.lock PID_FILE=${LOCK_DIR}/${LOCK_NAME}.pid DATE=`date +%Y%m%d` TIME=`date +%H%M` # SUFFIX="-"${DATE}"-"${TIME}; SUFFIX="-"${DATE}; […]
我有一台运行apache和webmin的机器,webmin基于一个名为miniserv.pl的轻量级Web服务器 键入my.server.url / phpmyadmin /我达到了phpmyadmin,但这是非常奇怪的,因为我没有任何phpmyadmin在我的/var/www既不处理该url的任何虚拟主机。 所以这个miniserv.pl会处理这个请求,但是这个很混乱,请问80端口上的请求怎么处理这个miniserv.pl而不是apache? 任何人都可以向我澄清这一点,谢谢
我正在使用Apache,并希望使用虚拟主机将所有子域名和非www地址redirect到www版本。 这个规则唯一的例外是,我希望media.domain.com指向www.domain.com相同的位置,因为我想要一个不同的,无cookie的图像和video域位于..(速度)。 下面的代码不是工作。 如何实现这一目标呢? <VirtualHost *:80> ServerName www.domain.com ServerAlias www.domain.com media.domain.com ServerAdmin [email protected] DocumentRoot /srv/www/domain.com </VirtualHost> <VirtualHost *:80> ServerName domain.com ServerAlias domain.com Redirect permanent / http://www.domain.com/ </VirtualHost>
我有这个问题,我知道我需要增加: FcgidMaxRequestLen 15728640 我试图在htaccess页面上做到这一点,但上传时,整个网站给我500内部错误。 错误是: [Thu Mar 07 06:16:05 2013] [warn] [client ???????] mod_fcgid: HTTP request length 16783183 (so far) exceeds MaxRequestLen (16777216), referer: 然后我尝试添加: <IfModule mod_fcgid.c> FcgidMaxRequestLen 15728640 </IfModule> 这仍然会导致我的服务器显示500错误。 我究竟做错了什么? 我正在使用一个MT DV4服务器,我有ssh进入它,现场说: FcgidIdleTimeout 40 FcgidMaxRequestLen 1073741824 FcgidProcessLifeTime 30 FcgidMaxProcesses 20 FcgidMaxProcessesPerClass 8 FcgidMinProcessesPerClass 0 FcgidConnectTimeout 30 FcgidIOTimeout 45 FcgidInitialEnv RAILS_ENV production FcgidIdleScanInterval 10 […]
我正在使用一个API,在路由中放入一个唯一的ID,然后我需要将这个唯一的ID移到我的内部路由中(所以PHP可以使用它)。 url是: HTTP://top.level.domain/folder/ [UNIQUEID]的index.php 要托pipe的服务器上的文件实际上位于: HTTP://top.level.domain/folder/index.php 所以我需要把原来的url变成: HTTP://top.level.domain/folder/index.php/ [UNIQUEID] 任何重写规则的想法,将做我所需要的? ( 重复的问题closures在stackoverflow 。)
我有两个Apache和Tomcat7实例安装。 一个在我的MacBook Pro与Mountain Lion和另一个在Ubuntu的12.10的Mac上的VirtualBox虚拟机。 两者都具有相同的VirtualHostconfiguration和server.xmlconfiguration。 一切工作正常在我的Mac,但在Ubuntu虚拟机我得到“文件不存在”的错误。 当我将LogLevel设置为“debugging”时,两个日志输出看起来几乎是一样的。 有什么地方我可以看看为什么这些请求没有被代理到Tomcat? 这是我的configuration文件。 server.xml中: <?xml version='1.0' encoding='utf-8'?> <!– Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 […]