Articles of apache 2.4

Apache + PHP-FPM =随机“parsing脚本标题错误”+ Seg故障

我使用Apache 2.4使用proxy_fcgi进行PHP-FPM设置,所有工作都正常,但是在4-6个请求中,每个Apache都返回一个空白页。 这发生在我的主要网站http://danielhe.com/ ,但不是子域名虚拟主机。 这显示了Apache的错误日志,[客户端x] AH01070:分析脚本头错误 最后,有时候Apache的segfaults AH00052:child pid 9740退出信号分段错误(11) 我可以很容易地通过刷新页面几次重现“错误parsing脚本头”,但seg错误发生在几个“错误parsing脚本头” 更新我已经find了seg错误的修复,WSOD显然已经修复了。 mod_deflate有一些问题,但是这个来自Apache文档的configuration修复了它 SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # Don't compress images SetEnvIfNoCase Request_URI \ \.(?:gif|jpeg|jpg|png)$ no-gzip dont-vary # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary

无效的命令“SSLOpenSSLConfCmd”,可能是拼写错误或由未包含在服务器configuration中的模块定义

像所有其他pipe理员一样,我正在通过Logjam 修复工作 。 我已经升级到Apache 2.4.12和openssl 1.0.2a在我的centos 6.6框。 当我启动Apache,我看到这个错误消息返回: Invalid command 'SSLOpenSSLConfCmd', perhaps misspelled or defined by a module not included in the server configuration 这是我的Apache的构build信息: Server version: Apache/2.4.12 (Unix) Server built: Jun 8 2015 22:04:38 Server's Module Magic Number: 20120211:41 Server loaded: APR 1.4.5, APR-UTIL 1.3.12 Compiled using: APR 1.4.5, APR-UTIL 1.3.12 Architecture: 64-bit Server […]

为什么Apache发送200 OK,而最后修改匹配If-modified-since?

我试图有一个关于我的caching策略的基本行为:文件应caching,并重新validation与服务器每次。 所以我希望Apache发送一个304回来。 以下是每个浏览器刷新的对话框: Status Code:200 OK Request Headers Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding:gzip,deflate,sdch Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4 Cache-Control:max-age=0 Connection:keep-alive Cookie: … Host:… If-Modified-Since:Tue, 14 Oct 2014 15:10:37 GMT If-None-Match:"1461-505636af08fcd-gzip" User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36 Response Headers Accept-Ranges:bytes Cache-Control:No-cache Connection:Keep-Alive Content-Encoding:gzip Content-Length:1412 Content-Type:text/html Date:Tue, 14 Oct 2014 16:58:05 GMT ETag:"1461-505636af08fcd-gzip" Keep-Alive:timeout=5, max=99 Last-Modified:Tue, 14 Oct 2014 15:10:37 […]

每次启动时,Apache的PidFile目录都会被删除

每次服务器重新启动时,目录/ run / httpd都将被删除。 / run是一个tmpfs文件系统,因此安装在RAM中。 / run / httpd仅在安装过程中创build。 当我重启后启动httpd时,目录不会被重新创build。 服务器安装了CentOS 7和官方的Apache软件包(2.4.6-18)。 Apache安装并启动后,目录如下所示: # ls -alR /run/httpd/ /run/httpd/: total 8 drwx–x—. 3 root apache 120 Sep 30 08:39 . drwxr-xr-x. 28 root root 1020 Sep 30 08:37 .. -rw-r–r–. 1 root root 8 Sep 30 08:39 authdigest_shm.2953 drwx——. 2 apache apache 40 Jul 23 […]

将HTTP连接升级到SSL / TLS

我目前有一个服务器,它会自动将所有的HTTP请求redirect到相应的HTTPS站点。 问题是,似乎有些浏览器不接受SSL证书(StartSSL.com)或不支持SNI,因此他们得到证书警告,用户将不会继续在网站上冲浪。 是否有任何机制试图使浏览器使用HTTPS而不是普通的HTTP,当这种方式不起作用时(例如,证书不被接受或者SNI不被支持),它将继续使用HTTP。 目前我使用的Apache 2.4与多个虚拟主机,所有redirectHTTP连接Redirect / https://domain.example/ 。

Apache 2.4 proxy_balancer和lbmethod_byrequest

我试图用静态模块来构build我的Apache服务器。 但遇到proxy_balancer模块的一些问题。 我得到一个错误: [ssl:info] [pid 11863] AH01876: mod_ssl/2.4.10 compiled against Server: Apache/2.4.10, Library: OpenSSL/1.0.1i [proxy:crit] [pid 11868] AH02432: Cannot find LB Method: byrequests [proxy_balancer:emerg] [pid 11868] (22)Invalid argument: AH01183: Cannot share balancer [:emerg] [pid 11868] AH00020: Configuration Failed, exiting 当我使用bin/apachectl -M查看加载的模块时,那里没有mod_lbmethod模块。 我已经尝试加载模块,通过添加这些行到configuration脚本–enable-lbmethod-byrequest和–with-lbmethod=byrequest但它不显示在模块列表中,也不在包含的文件夹中。 有人遇到过这个问题,并得到了解决办法吗?

CA不被Firefox信任的证书

我的域名bytecode77.com( 分析 )正在使用RapidSSL证书。 Firefox不信任那个,所以我安装了一个CA证书。 我用下面的一个。 我把它放在/usr/local/share/ca-certificates/ca.crt ,我运行了update-ca-certificates 。 然后我重新启动apache。 但是Firefox仍然不相信证书。 这里怎么了? 我vHost <VirtualHost *:443> ServerName bytecode77.com DocumentRoot /var/www/bytecode77/html SSLEngine on SSLCertificateFile /var/www/bytecode77/root/bytecode77.com.crt SSLCertificateKeyFile /var/www/bytecode77/root/bytecode77.com.key </VirtualHost> CA证书 —–BEGIN CERTIFICATE—– MIIEJTCCAw2gAwIBAgIDAjp3MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i YWwgQ0EwHhcNMTQwODI5MjEzOTMyWhcNMjIwNTIwMjEzOTMyWjBHMQswCQYDVQQG EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXUmFwaWRTU0wg U0hBMjU2IENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCv VJvZWF0eLFbG1eh/9H0WA//Qi1rkjqfdVC7UBMBdmJyNkA+8EGVf2prWRHzAn7Xp SowLBkMEu/SW4ib2YQGRZjEiwzQ0Xz8/kS9EX9zHFLYDn4ZLDqP/oIACg8PTH2lS 1p1kD8mD5xvEcKyU58Okaiy9uJ5p2L4KjxZjWmhxgHsw3hUEv8zTvz5IBVV6s9cQ DAP8m/0Ip4yM26eO8R5j3LMBL3+vV8M8SKeDaCGnL+enP/C1DPz1hNFTvA5yT2AM QriYrRmIV9cE7Ie/fodOoyH5U/02mEiN1vi7SPIpyGTRzFRIU4uvt2UevykzKdkp YEj4/5G8V1jlNS67abZZAgMBAAGjggEdMIIBGTAfBgNVHSMEGDAWgBTAephojYn7 qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUw5zz/NNGCDS7zkZ/oHxb8+IIy1kwEgYD VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNQYDVR0fBC4wLDAqoCig JoYkaHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9iYWwuY3JsMC4GCCsGAQUF BwEBBCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL2cuc3ltY2QuY29tMEwGA1UdIARF MEMwQQYKYIZIAYb4RQEHNjAzMDEGCCsGAQUFBwIBFiVodHRwOi8vd3d3Lmdlb3Ry dXN0LmNvbS9yZXNvdXJjZXMvY3BzMA0GCSqGSIb3DQEBCwUAA4IBAQCjWB7GQzKs rC+TeLfqrlRARy1+eI1Q9vhmrNZPc9ZE768LzFvB9E+aj0l+YK/CJ8cW8fuTgZCp fO9vfm5FlBaEvexJ8cQO9K8EWYOHDyw7l8NaEpt7BDV7o5UzCHuTcSJCs6nZb0+B kvwHtnm8hEqddwnxxYny8LScVKoSew26T++TGezvfU5ho452nFnPjJSxhJf3GrkH uLLGTxN5279PURt/aQ1RKsHWFf83UTRlUfQevjhq7A6rvz17OQV79PP7GqHQyH5O ZI3NjGFVkP46yl0lD/gdo0p0Vk8aVUBwdSWmMy66S6VdU5oNMOGNX2Esr8zvsJmh gP8L8mJMcCaY —–END CERTIFICATE—– —–BEGIN CERTIFICATE—– […]

多站点托pipe – 重要的漏洞被错过,以确保彼此安全的网站?

编辑#2 2015年7月23日:寻找一个新的答案,确定一个重要的安全项目错过了在下面的设置或可以给出理由相信一切都涵盖。 编辑#3 2015年7月29日:我正在寻找一种可能的错误configuration,比如无意中允许某些可能被利用来绕过安全限制或者更糟糕的事情而让事情变得更加严重。 这是多站点/共享主机设置,我们希望使用一个共享的Apache实例(即在一个用户帐户下运行),但PHP / CGI作为每个网站的用户运行,以确保没有网站可以访问另一个网站的文件,我们希望确保没有错过任何东西(例如,如果我们不知道符号链接攻击预防)。 以下是我到目前为止: 确保PHP脚本作为网站的Linux用户帐户和组运行,并且要么被监禁(如使用CageFS),要么至less使用Linux文件系统权限进行适当的限制。 使用suexec来确保CGI脚本不能以Apache用户身份运行。 如果需要服务器端包含支持(例如在shtml文件中),使用Options IncludesNOEXEC可以防止CGI在你不期望的情况下运行(尽pipe如果使用suexec,这应该不是那么重要)。 有符号链接攻击保护,以便黑客不能欺骗Apache以明文forms提供另一个网站的文件,并披露诸如DB密码之类的可利用的信息。 configurationAllowOverride / AllowOverrideList只允许黑客无法利用的任何指令。 如果上述项目正确完成,我认为这不是一个问题。 如果不是很慢并且不能以root身份运行,我会select使用MPM ITK,但是我们特别想使用共享的Apache,但是确保它安全地完成。 我发现http://httpd.apache.org/docs/2.4/misc/security_tips.html ,但这个话题并不全面。 如果知道这很有帮助,我们打算将CloudLinux与CageFS和mod_lsapi配合使用。 还有什么可以确保要做或知道吗? 编辑2015年7月20日:人们已经提交了一些很有价值的替代解决scheme,但请注意,这个问题只针对共享Apache安装的安全性。 特别是有没有覆盖以上可以让一个网站访问另一个网站的文件或妥协其他网站? 谢谢!

可以根据IP地址提供特定的页面吗?

我一直是我自己的两个WordPress站点的蛮力攻击的目标。 攻击者正在使用旧的XML-RPC来扩大暴力密码攻击。 幸运的是,我们有非常好的密码,所以我非常怀疑他会得到任何地方。 我刚刚使用iptables阻止他的请求,当他再次popup(总是从同一个虚拟云提供商),但我宁愿修改服务器,以便每当他的IP地址要求任何页面,他得到一个回应告诉他获得生命。 大部分请求都是POST,所以我最好只是修改响应头,以包含“下次更好运气! 或者同样满足的东西。 这可能吗? 我远离Apache的专家,所以我不确定这将是多么困难的实施。 但即使需要我几个小时,满意度也是无价的。 作为参考,我正在运行Ubuntu 16.04.2 LTS,Apache 2.4.18托pipeWordPress的4.7.3。

为什么logrotate每次都会导致Apache发生故障?

每次运行logrotate Apache / 2.4.7(Ubuntu)遇到seg故障并且不会重新启动: [Wed Sep 10 06:35:54.266018 2014] [mpm_event:notice] [pid 20599:tid 140630283466624] AH00493: SIGUSR1 received. Doing graceful restart [Wed Sep 10 06:35:54.885118 2014] [core:notice] [pid 20599] AH00060: seg fault or similar nasty error detected in the parent process 我的apache logrotate脚本如下所示: /var/log/apache2/*.log { daily missingok rotate 52 compress delaycompress notifempty create 640 root adm sharedscripts […]