Articles of apache 2.4

Apache何时使用mod_cache? disk_cache vs memory_cache?

我在Ubuntu 15.04上使用了Apache 2.4.10,整个服务器运行在一个SSD上,并在Hyper-V中实现了虚拟化。 什么时候应该在Apache 2.4中启用modcaching? 目前我有非常好的TTFB静态文件。 (TTFB为0.015 – 0.020秒,当ping为〜7ms时) 我怀疑使用caching是有道理的,因为我认为TTFB的大部分是由于build立TCP连接而引起的。 这个假设是否正确? 我注意到,例如PHP脚本的dynamic内容具有更高的TTFB(例如0.085-0.120秒)。 在Apache中启用caching是否会使加载此dynamic内容的速度更快? 我读过,我应该使用mod_disk_cache,因为它使用Linux中的sendfile API,使得它比mod_mem_cache更快,其他人则说mem_cache更快。 # 我做的第一个性能决定是在做了一些研究之后使用了-enable-disk-cache,我发现与你的想法相反,当谈到Apache mod_cache和OS交互时,磁盘caching比内存caching更快。 之所以在使用mod_mem_cache的时候,是因为将文件读入内存的过程,基本上是把它的数据复制到RAM中,从而将内核缓冲区传递给内存缓冲区并不是最理想的。 当使用mod_disk_cache时,Linux使用sendfile API,在发送文件之前不需要服务器读取文件。 服务器通过API识别要传送的文件和目的地,然后OS读取并传送文件,因此不需要读取有效载荷的API或存储器,操作系统可以使用文件系统caching。 所以内核就像一个缓冲区,提高了caching的速度。 # 资料来源: http : //www.philchen.com/2009/02/09/some-tuning-tips-for-apache-mod_cache-mod_disk_cache 那么最好的caching方法是内存还是磁盘? 在web文件夹的同一个驱动器上使用mod_disk_cache是​​否有意义? 我会假设它只是使用不同的目录来加载caching的文件,而不是读取源文件。 但我不明白为什么这会更快..

我怎样才能在Apache中设置catch-all虚拟主机?

我为我的网站使用专用的IP地址,最近我注意到有些人正在将他们的域名指向我的IP地址。 我需要设置通用虚拟主机来告诉Apache只处理在configuration文件中定义的域。 我想要其他不需要的域名来获得404错误。 我怎么能这样做? 还有一个问题 ! 我使用cPanel,并有许多Apacheconfiguration文件! 我应该编辑哪一个?

403在灯服务器虚拟主机上禁止

这是在我的开发机器上运行Linux mint 16(这是基于Ubuntu 13.10)。 我通过安装灯: apt install lamp-server^ 并运行Apache 2.4.6 在安装灯时,我创build了一个info.php文件来运行phpinfo(); 在/ var / www,当然这工作得很好。 在我的开发机器上,我喜欢在我的用户主文件夹中创build一个〜/ public_html。 在那里我创build了我的虚拟主机文件夹。 然后我将public_html文件夹传递给www-data用户:group将myuser添加到www-data组,并为用户和组分配了rwx访问权限: chmod -R 775 /home/myuser/public_html 现在我的public_html和孩子看起来像 drwxrwxr-x 5 www-data www-data 4096 Apr 1 12:10 public_html 现在我创build了一个/etc/apache2/sites-available/example.local.conf <VirtualHost *:80> ServerName example.local DocumentRoot "/home/myuser/public_html/example.local.d" <Directory "/home/myuser/public_html/example.local.d"> Options Includes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> 然后跑: […]

一些mod_rewrite的语法澄清

我们最近inheritance了一些代码,并且正在审查其中一个站点的.htaccess文件。 我知道大部分重写规则集的最终结果是什么,我只是不确定一些语法。 背景信息:使用Apache 2.4的CentOS 7,运行Concrete5 CMS。 例1: RewriteCond %{HTTPS}s ^on(s)| RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 据我所知,%{HTTPS}是mod_rewrite提供的特殊variables之一,可以on或off 。 在之前的规则中,我看到了RewriteCond %{HTTPS} =on这更符合文档中显示的内容。 所以在上面的例子中,我有以下问题: %{HTTPS}中的结尾“s”是什么? 为什么模式使用^ on而不是= on。 这有效吗? 我明白,括号中的任何内容都可以用%1来引用,但这里的放置对我来说并不合适。 如果%{HTTPS}计算为on或off ,则放置(s)| 在模式是要使它不符合条件,对不对? PIPE是什么? 例2: #redirect calls to index.php without get parameters to non-www RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{THE_REQUEST} /index\.php\s [NC] RewriteRule ^(.*?)index\.php$ /$1 [L,R=301,NC,NE] 我不太理解第二个RewriteCond。 index.php最后做了什么? 例3: 最后,我们有 […]

我怎样才能添加一个尾部的斜杠到虚拟主机?

显然我不知道我在做什么,因为我已经在这个几个小时了。 我有一个Apache虚拟主机configuration,并将子目录映射到不同的服务器。 例如: <Location /example> ProxyPass http://192.168.1.6/content/ ProxyPassReverse http://192.168.1.6/content/ Order deny,allow Deny from all Allow from all </Location> 如果我在浏览器中键入example.com/example/,我可以看到192.168.1.6的内容。 如果我inputexample.com/example,我不能。 我必须添加到这个configuration自动放置一个尾随斜线,以便这个工程? 谢谢。

rhel7,apache2.4 – 403禁止使用符号链接

我search了很多关于这方面的许多信息,但没有提出的解决scheme没有帮助我。 我拥有的: 清洁rhel7系统 干净的apache 2.4 网页目录: /var/www/domain.com/public_html 符号链接: /var/www/domain.com/publik_html/src => /home/user/src 在/home/user/src我有一些文本index.html 我的apache VHconfiguration( /etc/httpd/sites-available/domain.com.conf ): <VirtualHost *:80> ServerName www.domain.com ServerAlias domain.com DocumentRoot /var/www/domain.com/public_html <Directory /var/www/domain.com/public_html> Options Indexes FollowSymLinks Require all granted AllowOverride All </Directory> </VirtualHost> 在Apache主configuration中的一些感兴趣的部分: # # Deny access to the entirety of your server's filesystem. You must # explicitly permit access to […]

MySQL的php无法连接到本地,127.0.0.1工作

我有一个简单的PHP脚本,即不能连接到MySQL。 <?php $link = mysql_connect("localhost", "user", "password"); if (!$link) { die('Could not connect: ' . mysql_error() . ' ' . mysql_errno()); } else { echo "connected"; } 当我访问与url的网页 HTTP://mydomain/1.php 我得到错误 Could not connect: Permission denied 2002 如果我改变“本地主机”与“127.0.0.1”,它的作品。 例如,如果我从命令行运行程序 php 1.php 它连接。 为了validation问题,我运行 [root@server1 ~]# php -r 'var_dump(mysql_connect("localhost:/var/lib/mysql/mysql.sock", "user", "password"));' resource(5) of type (mysql link) [root@server1 […]

发送Apache请求到某种forms的dev / null,什么也没有

这个问题我一直没有得到一个权威的答案,但它对我感兴趣多年: 把Apache与重写规则匹配,说: 1组匹配触发403禁止情况。 403页面在网站上托pipe,所以基本上这些条件会触发网站上的另一个页面加载,并且基本上向探测者确认基本域或IP存在。 但是我一直想知道的是,如果有一种方式基本上发送匹配某些条件的请求,比如已知的垃圾邮件/入侵尝试模式,并且基本上将其发送到/ dev / null或apache等价物。 从来没有find这样的解决scheme,我经常只是使用一个虚假的域名,并redirect匹配的请求到这个虚假的域名,从我的服务器中删除负载,因为该域名不存在(我总是select抽象的名称实际上并不存在),301之后的请求获得404,但在我的理想情况下,请求只会失败并返回任何东西,或一些Apache的等价物。 这实际上是我需要弄清楚的,因为某些工具正在被用于检测一些关于我们网站的数据,而这些数据是不应该被检测到的,但是这里的原因并不重要,因为每个网站的变化情况,我的问题是,我猜,有几点: 如果不存在基本redirect到/ dev / null这样的事情,是否有办法dynamic地分配服务器上不存在的F禁止403页面,这样请求就不会退回到站点403页面,这可能会让一些事情暴露给人们探测。 这是最糟糕的select,因为该网站正在确认IP地址/域和端口存在。 理想情况下,有没有办法实际发送请求无处? 在一个完美的世界里,它会返回404,因为没有find我猜测这意味着特定的IP地址探测器会导致不存在。 也许这毕竟是某种意义上的答案? 但它不会是一个404,然后加载的网站404页面,这将是一个404像一个不存在的生成一个请求,或一个IP地址,不存在的端口组合探头。 当然,最好的情况是,当请求匹配模式时,它什么都不做,不响应,什么也不做,请求被吸收到黑洞中。 就好像你从一些实际根本不存在的东西中所要求的东西。 不是来自确实存在的域,而是不存在的页面,而是整个请求与任何域或页面或IP地址不匹配的地方。 在这个Apache mod重写的特定场景中find任何信息是非常困难的,至less我从来没有发现过这个问题,所以如果任何人都可以提供一个权威的答案,我已经构build了问题标题,可能导致search结束在本页。 同样,理想的结果是,在重写规则中满足匹配条件之后,探测器从未意识到它实际上在IP端口扫描上获得了活动站点,这意味着,不是403,而是301,而不是200响应,而不是来自网站的HTMLtypes的响应。 请注意,在这种情况下,我无法访问主数据中心防火墙或服务器防火墙,因此它必须是我可以使用Apache 2本身获得的最佳结果。

Apache 2.4 webdav在文件名中没有斜线上传

我在Ubuntu 10.04 LTS上运行apache 2.4.2上的webdav 虚拟主机configuration: ServerAdmin [email protected] ServerName test.com ServerAlias www.test.com ErrorLog "/usr/websites/logs/www.test.com-error_log" CustomLog "/usr/websites/logs/www.test.com-access_log" common DavLockDB "/usr/websites/var/DavLockWWW" DocumentRoot "/usr/websites/www" <Directory "/usr/websites/www"> Options FollowSymlinks MultiViews AllowOverride None Require all granted </Directory> Alias /davwww/ "/usr/websites/www" <Location /davwww/> DAV On AuthType Digest AuthName "davwww" AuthUserFile "/usr/websites/www.digest.passwd" AuthDigestProvider file Require valid-user </Location> 我可以login并查看目录列表; 但是,当我创build一个文件时,它会被上传到服务器上,而不需要文件夹分隔字符 – 斜杠。 / usr […]

Apache ScriptAlias和访问错误?

首先,经过很多的痛苦,我想出了如何使它在Apache 2.4 windowz中工作。 这里是我的configuration似乎工作成功的git克隆和推和一切。 问题 首先我的configuration工作。 /目录中有“要求全部拒绝”。 我只想要git的function,没有别的。 来自git客户端的示例请求 192.168.100.252 – [07 / Oct / 2012:04:44:51 +0300]“GET / git / simple / info / refs?service = git-upload-pack HTTP / 1.1”200 264` 该请求导致的错误 [Sun Oct 07 04:44:51.903334 2012] [authz_core:error] [pid 6988:tid 956] [client 192.168.100.252:13493] AH01630:客户端被服务器configuration拒绝:C:/ git-server / web / simple 没有任何错误在gitclient一切正常,但我得到这个错误日志。 有没有解决这个错误不会出现?我担心日志大小。 <VirtualHost *:80> DocumentRoot "C:\git-server\web" […]