Articles of httpd.conf

我如何将任何ServerAliasredirect到相应的ServerName?

我想301将所有example.orgredirect到www.example.org。 下面的例子就是这样做的,但是它有很多的噪音,因此很难维护和容易出错: <VirtualHost 192.0.2.123:80> ServerName example.org RedirectPermanent / http://www.example.org </VirtualHost> <VirtualHost 192.0.2.123:80> ServerName www.example.org DocumentRoot /usr/local/www/example </VirtualHost> 你碰巧知道上面的整个事情是否有一些较短的版本? 像这样的伪configuration : <VirtualHost 192.0.2.123:80> ServerName www.example.org ServerAlias example.org # Redirect-Every-ServerAlias-To-ServerName DocumentRoot /usr/local/www/example </VirtualHost> 那么这样我只需要提供每个应该在ServerAlias下redirect的子域呢?

RHEL 4可以使用两个不同的configuration文件运行两个Apache httpd实例吗?

我们有一个红帽企业Linux 4实例在默认端口上运行Apache。 我们想要添加第二个Apache实例,我们可以重新启动与第一个实例完全分开。 我们能做到吗? 也许有另一个易于维护的Web服务器,可以在非标准的端口上运行非常简单的PHP脚本? 我们希望能够远程触发php脚本,而不使用在RHEL服务器上运行的Apache默认实例。 有任何想法吗?

我怎样才能阻止我的服务器上的所有网站的用户代理?

我最初在webmasters.stackexchange.com发布,但被告知我会在这里得到一个更好的接待。 在过去的几天里,我一直忍受着似乎是(可能是无意的)DDOS攻击。 我已经从一个代理标识为“Mozilla / 4.0(compatible; ICS)”的许多请求,Apache通过所有可用的内存吃饭。 因此,我想阻止这个用户代理的所有请求,所以我尝试在httpd.conf中执行此操作: SetEnvIfNoCase User-Agent "Mozilla/4.0 (compatible; ICS)" bad_user Deny from env=bad_user 但是,当我重新启动Apache它抱怨在这里使用deny 。 无需将其包装在location或directory块中,这意味着我必须为每个站点添加一个新块,有什么办法可以拒绝访问整个服务器? 更新:我得到的错误 重新启动Web服务器apache2 /etc/apache2/httpd.conf第4行的语法错误:这里拒绝不允许[fail]

限制上传文件大小,并将用户redirect到错误页面,如果超过限制

是否有可能将用户redirect到file too big页面 当POST请求大小超过指定的限制? 我知道max-request-size选项,但是它只给出了不能被重载的静态页面。 我想创build一个重写规则 内容大小从请求主体作为input并redirect到错误页面 UPDATE 现在我们使用nginx作为前端。 有什么新build议?

将文件包含在Apache HTTP服务器版本2.2 httpd.conf中

我有一个很大的httpd.conf文件,其中大部分是虚拟主机。 有没有办法做一个文件,说virtual_hosts.conf,并从httpd.conf包括它? 我GOOGLE了一下,但似乎无法find包括,只是模块加载。

加载时间对htaccess的影响

通常有两种处理Apache的东西的可能性: 使用htaccess文件逐个configuration文件夹 完全退出htaccess并把所有的规则放到httpd.conf中 使用htaccess是一个加载时间问题。 我想知道,在加载时间方面是多么昂贵的是htaccess的使用? 有没有testing?

<Location>和<Directory> Apache指令之间的区别

我已经安装了Zend服务器,并注意到以下内容已添加到我的httpd.conf文件中: <Location /ZendServer> Order Allow,Deny Allow from 127.0.0.1 </Location> Alias /ZendServer "C:\Program Files\Zend\ZendServer\GUI\html" <Directory "C:\Program Files\Zend\ZendServer\GUI\html"> AllowOverride All </Directory> 但我似乎无法理解位置和目录之间的区别。 我改变了下面的东西,这对我来说更有意义,它仍然有效: <Location /ZendServer> AllowOverride All Order Allow,Deny Allow from 127.0.0.1 </Location> Alias /ZendServer "C:\Program Files\Zend\ZendServer\GUI\html" 我可以保留自己的修改吗?还是应该按照原来的方式进行修改?

Apache2代理超时

我有Apache2与PHP + PHP-FPMconfiguration根据: http://wiki.apache.org/httpd/PHP-FPM 我正在编写一个需要很长时间才能在内部虚拟主机上执行的脚本,但是如果脚本在30秒内执行,所有内容都将保持超时。 我的apache日志告诉我: [Wed Apr 17 21:57:23.075175 2013] [proxy_fcgi:error] [pid 9263:tid 140530454267648] (70007)The timeout specified has expired: [client 58.169.202.172:49017] AH01075: Error dispatching request to :, referer: 当试图运行脚本时,我会在执行完30秒后收到503 Service Unavailable 。 从逻辑上讲,这意味着我有超时指令或设置为30秒,但我有这些在我的Vhost的configuration: Timeout 600 <IfModule proxy_module> ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9001/home/pyrokinetiq/scripts/$1 timeout=600 ProxyTimeout 600 </IfModule> (php-fpm在我的端口9001上运行) 我也试着把httpd.conf的Timeout和ProxyTimeout没有区别。 似乎有另一个超时设置的某个特定于mod_proxy_fcgi ,但我找不到它。 我从官方tarball安装了Apache2的httpd,没有一个mods似乎有任何configuration文件。 如果任何人都可以指出我正确的方向,将不胜感激。

显示Apacheconfiguration

有没有办法显示Apache正在使用的有效configuration值? 我有一个cPanel服务器使用多个包含文件,并有一些服务器范围的设置在多个地方定义。 我想find一种方法来确认Apache在运行时实际使用的值。

使Apache只能通过127.0.0.1访问,这是可能的吗?

我已经build立了我的Apache服务器,并且PHP / MySQL运作良好! 但问题是,我怎么保持这个私密的,因为它是一个只发展的服务器? 保持内容私密性的唯一原因是,如果脚本出错了,我不希望Apache错误出现,如果它成为一个面向公众的网站(事实上,其他人也共享相同的networking!),我更less可能会使用我的电脑作为虚拟主机 – 我更可能使用虚拟主机提供商的路线为实际的现场。 目前我可以通过三种方式访问​​它: http:// localhost (或http://127.0.0.1 ,替代方式和本地主机的IP,但任何一种方式是可以接受的!) http 192.168.0.1(我的路由器的IP) http pc-name-here(我的电脑的名字,显然这在Windows PC之间有所不同!) [注意,不能发布链接,所以对于其他两个,你必须插入冒号/正斜杠,如第一个]。 但是,我只想通过第一个访问它。 它正在端口80上听(我不想改变这一点)。 这是不可能的,还是我错了? 我对PHP /网页devise比networking方面知道的多一些,所以这对我来说是第一位的! 基本上,我希望它只能通过本机在本机上访问,而不是外部IP地址,或192.168.0.1。 我需要编辑httpd.conf并在每个testing平台上使用拒绝,还是有其他解决scheme? 例: <Directory /www/vhosts/localhost/> Options All AllowOverride All order allow,deny allow from 127.0.0.1 deny from 192.168.0.1 deny from my-pc-name </Directory> 这是一个例子,但我不知道什么是对的或在这里! 我的操作系统是Windows 7旗舰版。 我确实看了看networking,但其中一些对我来说似乎有点技术性。 你会推荐什么?