Articles of apache 2.2

为重写的请求设置caching策略

我有一个RewriteRule重写包含文件版本的文件的任何请求没有版本: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)\.[0-9a-f]{32}(\.[0-9a-z]{2,6})$ $1$2 [L] 这意味着只要文件styles.<version-id>.css被请求,就会被重写为styles.css 。 现在,如果要求文件的版本化版本,我怎样才能设置caching头文件,以便文件被caching更长的时间? 换句话说,如果文件styles.css被重新定义,它应该被caching24小时,而文件styles.<version-id>.css应该被caching365天。 我已经尝试使用此代码片段重写之前和之后使用FilesMatch设置caching: <FilesMatch ".+\.[0-9a-f]{32}\.[0-9a-z]{2,6}"> Header set Cache-Control "max-age=31536000, public" </FilesMatch> 但它不起作用。 也许它不匹配,因为文件名被重写。 我不知道。 我也尝试使用环境variables: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)\.[0-9a-f]{32}(\.[0-9a-z]{2,6})$ $1$2 [L,E=AutoVersion] Header set Cache-Control "max-age=31536000, public" env=AutoVersion 但是我也无法得到这个工作。 有什么方法可以根据原始请求设置重写请求的caching策略吗?

用Apache发送压缩的请求

我曾经看过类似的问题,但他们没有涵盖我的情况。 例如: 是否可以为请求启用http压缩? 场景 : 服务器A正在运行一个生成大型XML文件的服务。 在服务器A上,Apache被安装为代理服务器(PUT / POST)消息到我们的服务器B. 由于这些文件相当大,我想在发送到服务器B之前压缩(例如gZip / deflate)XML。 我可以使用服务器B上的mod_deflate(inputfilter)自动解压缩消息。 在服务器A上,我还configuration了mod_deflate(设置为outputfilter),但请求没有被压缩 – 只有来自服务器B的响应可以被接受为压缩。 问题如何configuration服务器A上的Apache在发送到服务器B之前压缩请求主体? 限制/更多信息: 我无法修改/实现服务中的XML压缩(closures软件)。 我无法将场景更改为请求文件的服务器B. 过程不需要是HTTP投诉

validation返回码:21(无法validation第一个证书)让我们用crontabencryptionApache到Nginx的问题

我做了这个https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-14-04 然后从下面的apache切换到nginx *** https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04 ***一切都很好。 但现在facebookdebugging器给我:curl错误:SSL_CACERT SSL证书问题:无法获得本地发行者证书 ***问:如何重新下载证书颁发机构的所有证书,并在我的情况下重新下载? Alexs-MacBook-Air:~ alex$ openssl s_client -connect goeasysmile.com:443 CONNECTED(00000003) depth=0 /CN=goeasysmile.com verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 /CN=goeasysmile.com verify error:num=27:certificate not trusted verify return:1 depth=0 /CN=goeasysmile.com verify error:num=21:unable to verify the first certificate verify return:1 — Certificate chain 0 s:/CN=goeasysmile.com i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 […]

从代理响应中取消设置标题

我有一个Apache 2.2下的代理configuration,它将/blog所有请求传递给我无法控制的主机。 我想从代理响应中取消设置特定的HTTP头( X-Powered-By: PHP ),这样浏览器就不可见了。 我试过这个: ProxyPass /blog http://blog.example.com ProxyPassReverse /blog http://blog.example.com Header Always Unset X-Powered-By 还有这个变化: <Location /blog> ProxyPass http://blog.example.com ProxyPassReverse http://blog.example.com Header Always Unset X-Powered-By </Location> 在这两种情况下,头都通过代理发送。 我也试过Header Always Edit ,也没有效果。 有趣的是,如果我使用Header Always Set X-Powered-By Test ,则得到的响应包含X-Powered-By: Test, PHP – 即我的值被添加在来自代理的值之前 。 我怀疑mod_proxy运行“太迟” mod_headers操纵响应。 是否有办法让Header在“稍后”运行,或者其他一些指令可以在代理返回后处理响应。

使用Apache 2.2和OpenSSL 1.0.1e-fips的双向SSL身份validation

我有一台CentOS 6服务器,运行Apache 2.2.15和OpenSSL 1.0.1e-fips。 我正在尝试为Web根目录中的特定位置设置双向SSL身份validation。 第三方提供了公共(纯文本)和私人(二进制)证书。 我需要一些关于如何包括公共和私人证书以获得握手工作的指导,因为我收到以下错误: 重新协商握手失败:不被客户接受! 以下是我在本节的/etc/httpd/conf.d/ssl.conf文件中的内容: <Location /api/path/> SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCACertificateFile /etc/pki/tls/private/public.cer SSLVerifyClient require SSLVerifyDepth 10 SSLOptions +StdEnvVars +ExportCertData +OptRenegotiate </Location> 诚然,我不是一个SSL专家。 我知道足够的证书安装和工作。 我已经把logginf变成了“debugging”级别。 我试图遵循这些指南: Configuring two-way authentication SSL with Apache http://www.cafesoft.com/products/cams/ps/docs32/admin/ConfiguringApache2ForSSLTLSMutualAuthentication.html 提前致谢! 完整的ssl.conf文件: LoadModule ssl_module modules/mod_ssl.so Listen 443 SSLPassPhraseDialog builtin SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed […]

突然SSL错误:check_private_key:键值不匹配

我在运行Apache 2.2的服务器上安装了一个SSL证书(由openssl生成)。 刷新configuration后,我看到该网站正常工作。 不过,今天早上我发现这个网站倒了。 快速查看日志后,我注意到Apache没有运行,我无法重新启动它。 在ssl.log有以下错误 [Tue Oct 10 14:58:48 2017] [警告] RSA服务器证书是一个CA证书(BasicConstraints:CA == TRUE!?) [Tue Oct 10 14:58:48 2017] [警告] RSA服务器证书CommonName(CN)`AddTrust External CA Root'与服务器名称不匹配! [Tue Oct 10 14:58:48 2017] [error]无法configurationRSA服务器私钥 [Tue Oct 10 14:58:48 2017] [错误] SSL库错误:185073780错误:0B080074:x509证书例程:X509_check_private_key:键值不匹配 谁能告诉我为什么发生这种情况? 也就是说,该网站在初始configuration后工作了几天。 但是,在某一点,它打破了。 我怎样才能解决这个问题?

Linux内核和Apache 2.2性能问题在两个不同的Web服务器上

我有一个2负载均衡器后面的mod_php web服务器,这些操作系统是CentOS 6.x. 他们应该是相同的。 他们应该使用循环法收到相同的请求。 其中一个比另一个performance糟糕。 我认为这是因为某些原因收到更多的请求: 事实并非如此。 这些请求大概是同一个URL,并且几乎同时有相同数量的请求。 性能仍然糟糕。 那么我决定帮助服务器,而我find了解决scheme。 所以我重新configuration负载平衡器。 负载平衡器的configuration更改是将请求发送到服务器,并打开较less的连接。 在此之后,服务器开始比第二台服务器接收更less的请求,性能仍然比其他服务器差。 只是为了强调差异,此时请求分配约35至65%。 一般来说,关于相同的URL请求比率。 现在,我认为我们有两个服务器之间的其他用户软件水平差异。 事实并非如此。 我们自动pipe理configuration和代码。 PHP有相同的模块加载,Apache也。 代码没有区别。 硬件是一样的。 作为额外的信息,我们不会有粘滞的会议。 请求被随机定向到两个服务器。 我们也testing了这一点。 configuration更改后的差异是具有该问题的服务器接收的请求less得多。 服务器在处理请求或连接到其他组件(如数据库)时没有任何有意义的时间差异。 鉴于此背景检查当前的CPU图像。 带有问题的服务器: web1 image CPU性能通知RED表示系统CPU时间不是用户,apache是​​用户空间。 还请注意,这些图像是从更改后得到更less的请求到web1(有问题)。 在我们有严重的CPU和负载平均问题之前,那么这里是另一台服务器。 Web2镜像CPU性能 。 没有检测到IO,RAM或其他硬件问题。 这让我怀疑内核问题。 top似乎也是这样说的。 顶级Web1与Web2图像性能 然后我注意到内核因为某种原因加载了不同的模块。 因为我找不到其他的区别。 由于服务器应该是相同的,我实际上已经足够了。 BOSS希望能够在删除内核模块之前将其链接到实际问题。 我尝试了一些东西,包括perf,但没有pipe理。 Perf( perf record -F 99 -a -g — sleep 30 […]

.htaccess mod_deflate不适用于dynamicurl

我有一个URL如下www.example.com/fr_FR curl返回types如下: HTTP/1.1 200 OK Date: Mon, 16 Oct 2017 10:35:19 GMT Server: Apache Set-Cookie: PHPSESSID=img4385scm6ldm6vngtntsrou1; path=/; HttpOnly Cache-Control: no-cache Set-Cookie: FirstVisit=1; expires=Wed, 18-Oct-2017 10:35:20 GMT; Max-Age=172800; path=/; httponly Cache-Control: no-cache Content-Type: text/html; charset=UTF-8 我的.htaccess包含以下指令: <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript application/javascript application/rss+xml application/xml application/xhtml+xml application/x-font-ttf application/x-font-opentype image/svg+xml </IfModule> 问题是,特定的URL没有被gzip,但是,如果我访问.html文件,或者如果我直接在我的apache虚拟主机添加AddOutputFilterByType DEFLATE text/html […]

在debian 9上用apache2安装PHP7.1时出错

你好我安装了debian的9安装的Apache。 然后安装php7.0与apt-get,但我需要安装php7.1,起初我做的 $ su $ apt-get purge php7.0 所以我从http://php.net/downloads.php下载了php 7.1.10并做出了这个 $ ./configure –with-mcrypt $ make $ make install 但phpinfo()得到的php7.0,所以我做 $ su $ apt-get purge php7.0 $ apt-get autoremove php7.0 并知道phpinfo()不工作。 我认为,现在的PHP没有安装。 然后从http://php.net/downloads.php下载php 7.1.11(今天新增)和里面 $ tar jxvf php-7.1.11.tar.bz2 $ apt-get install build-essential $ apt-get install libxml2-dev libmcrypt-dev libjpeg-dev $ cd php-7.1.11 $ ./configure –with-mcrypt –with-pdo-pgsql=/etc/postgresql/9.6/main –with-openssl=/usr/bin/openssl […]

为多个用户设置Tom Cat和Apache的步骤

我的目标是使用mod_userdir来单独允许用户将java webapps放入其用户的public_html文件夹中。 我有Apache,mod_userdir和Tomcat安装和工作。 我有mod_jk安装,但不认为它的工作。 现在,如果我去的url,我需要到Apache的成功页面,如果我去[url] /〜[用户名]加载任何在用户的目录,如果我去[url]:8080它给tomcat页面,并执行java。 有人可以概述我需要采取的步骤才能使这个工作? 给可能的陷阱? 或者提供让我实现我的目标的另一种想法?