Articles of Apache的2.2

如何有效地避免http请求排队(迫使一个直接的错误响应)超过Apache的限制

有时候,太多的http请求,因此太多的httpd进程“堆积”,意味着第一个请求的响应时间太长,那么后面的队列就会排队等待响应,因此需要更多请求以指数forms堆积,直到整个服务器崩溃。 我已经尝试将MaxClients限制在服务器可以处理的数量之内,而不会崩溃。 然而,虽然这确实阻止了Apache产生更多的进程,但似乎并没有避免更多的请求堆积起来。 也就是说,如果MaxClients限制为100,那么101st和以下的请求不会出现错误,但由于某些原因,出现某种原因,它们会排队等待,直到Apache能够产生更多的进程来处理它们。 所以,这只能防止整个操作系统与Apache的下降,但这并不能避免Web服务器的饱和。 我可以这样做,即N = MaxClients,发现服务器太忙的第N + 1个请求立即收到一个错误响应,或立即拒绝连接(在任何级别)? 这是在Debian上,Apache正在使用prefork。 顺便说一句,为了说明为什么我假设上述方法可能是有道理的,我已经证实,当这种雪崩效应发生时,如果我重新启动apache服务器(这需要几分之一秒),服务器立即返回即使它仍然处于相同的负载之下,然后平稳地工作,通常很长一段时间,直到发生新的“雪崩”。 相反,如果我什么都不做,服务器将永远不会恢复。

用户定义的域掩码子域

我正在寻找build立一个网站,用户有他们自己的网页“username.mywebsite.com”。 我能够很容易地用Apache中的htaccess来做到这一点,但我想知道: 我怎样才能使用户可以设置使用自己的域名? 所以,而不是username.mysite.com,当用户去userswebsite.com它会显示他们的网页在我的网站? 我做了一些研究,我认为可以用CNAME来完成,但我不确定它们是如何工作的。 提前致谢。

Debian apache2不执行php脚本,而是显示源代码

我知道这可能是大多数网上讨论的主题,我在这里search和堆栈交换,并尝试了各种答案,但他们都没有似乎为我工作,因此为什么我张贴这个。 我有一个Debian与LAMP堆栈,最近不得不升级PHP从5.4到5.6(最新)。 我开始删除像这样的旧版本: a2dismod php5 sudo apt-get –remove –purge libapache2-mod-php5filter libapache2-mod-php5 libphp5-embed php-pear php5 php5 -cli php5-common php5-curl php5-dev php5-gd php5-mcrypt php5-mysql 将以下内容添加到我的/etc/apt/sources.list文件中: deb http://packages.dotdeb.org wheezy all deb-src http://packages.dotdeb.org wheezy all deb http://packages.dotdeb.org wheezy-php56-zts all deb-src http://packages.dotdeb.org wheezy-php56-zts all 并运行以下命令: wget https://www.dotdeb.org/dotdeb.gpg sudo apt-key add dotdeb.gpg sudo apt-get update sudo apt-get upgrade sudo apt-get install […]

在我的Ubuntu Apache VM上使用UFW GUI

我想阻止我的Apache VM上的所有传入端口。 当我认为我的设置正确时,我尝试从另一个Ubuntu会话访问Apache VM会话,我仍然可以通过。 我的Apache VM会话上的IP是192.168.254.30:80。 就像我说的,当我在另一个Ubuntu会话的浏览器中input带有端口号的IP时,我仍然可以通过。 我究竟做错了什么?

虚拟服务器上的静态文件下载缓慢

问题是,如果我通过域下载文件,下载完成以毫秒为单位,但是如果我从其他域下载相同的文件,则下载开始缓慢,并且在最后返回超时 (如果文件很大,如2MB ,但是如果这个文件是100Kb的话就可以正常下载了)。 让我再解释一下: 我有一个本地服务器,我已经build立了以下结构。 www/ index.html 2mb.pdf blog/ wp-content/ 2mb.pdf wordpress.structure 我在Debian中使用2个虚拟服务器的apache2,其中包含以下域名和configuration(这些不是真名) freefri.com和freefriblog.com 。 freefri.com : <VirtualHost *:80> DocumentRoot /var/www ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log combined <Directory /> Options FollowSymLinks AllowOverride None </Directory> freefriblog.com : <VirtualHost *:80> ServerName freefriblog.com HostnameLookups Off EnableSendfile off KeepAlive off DocumentRoot /var/www/blog <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory […]

当使用Apache作为反向代理服务器时,在处理响应时可以访问使用SetEnvIf设置的环境variables吗?

换句话说,用户向我的应用程序发送一个请求,该请求位于反向代理之后。 反向代理拦截请求并使用SetEnvIf设置环境variablesaaa 。 反向代理然后将请求传递给我的应用程序。 我的应用程序生成一个响应,并将其发送回反向代理。 我现在可以在响应中的某个地方使用aaavariables,还是仅将variables作用于请求?

没有权限访问此服务器上的/服务器信息

a2enmod info.load service apache2 restart 要在Firefox中input“myvps_ip / server-info”,会出现一个错误信息: You don't have permission to access /server-info on this server. cat /etc/apache2/mods-available/info.conf <IfModule mod_info.c> <Location /server-info> SetHandler server-info Require local #Require ip 192.0.2.0/24 </Location> </IfModule> 如何设置configuration文件以访问vps_ip上的servero-info?

Apache的PHP包括不工作 – CentOS7

我有一个在Apache上运行的PHP应用程序。 此前它在CentOS6操作系统上运行没有任何问题。 现在我们已经把操作系统升级到了CentOS7。 但应用程序不工作。 不知道相同的PHP应用程序不能正常工作在新的操作系统。 debugging完这个问题之后,注意到php的“include”选项正在工作。 我需要在新的CentOS7服务器上安装任何东西吗? 。 即使我尝试了不同的CentOS7机器。 同样的问题。 有人请帮助我。

我有两个版本的PHP安装; 我该如何清理/控制哪些参考?

运行CentOS + Apache + PHP + MySQL 运行yum list installed *php*给我这个: newrelic-php5-common.noarch 4.23.4.113-1 @newrelic php.x86_64 5.3.3-46.el6_6 @updates php-cli.x86_64 5.3.3-46.el6_6 @updates php-common.x86_64 5.3.3-46.el6_6 @updates php-devel.x86_64 5.3.3-46.el6_6 @updates php-gd.x86_64 5.3.3-46.el6_6 @updates php-mysql.x86_64 5.3.3-46.el6_6 @updates php-pdo.x86_64 5.3.3-46.el6_6 @updates php-pear.noarch 1:1.9.4-4.el6 @base php-pecl-apcu.x86_64 4.0.4-1.el6 @epel php-pecl-zendopcache.x86_64 7.0.3-1.el6 @epel php54.x86_64 2.0-1.el6 @centos-sclo-rh php54-php.x86_64 5.4.40-4.el6 @centos-sclo-rh php54-php-cli.x86_64 5.4.40-4.el6 @centos-sclo-rh php54-php-common.x86_64 5.4.40-4.el6 […]

多级通配符和SSL

我试图让这个工作: dev.somedomain.tld * .dev.somedomain.tld * .somedomain.tld 我创build了两个SSL证书,一个包含dev.somedomain.tld和* .somedomain.tld,另一个包含* .dev.somedomain.tld。 我也创造了两个VHost: <VirtualHost 192.168.5.47:443> ServerName dev.somedomain.tld ServerAlias *.somedomain.tld </VirtualHost> <VirtualHost 192.168.5.47:443> ServerName something.dev.somedomain.tld ServerAlias *.dev.somedomain.tld </VirtualHost> 问题是:any.dev.somedomain.tld转到dev.somedomain.tld虚拟主机,不pipe在Apache的优先级。 有更高级的通配符有什么特别的吗?