Articles of apache 2.2

即使在服务器中设置了Access-Control-Allow-Origin,Webfont也不会通过CloudFront加载

我想使用云端作为CDN来加速网站。 我已经得到了所有的JS和CSS工作正常,但我卡在一些不会从CDN加载的Web字体。 我用Access-Control-Allow-Origin使用以下语法设置了Apache VHOSTS文件: Header always set Access-Control-Allow-Origin "*.example.com" 我是否将Access-Control-Allow-Origin放在了正确的域中,还是应该放在http://www.example.com ? 在这种情况下, http ://cdn.example.com是云端DNS的CNAME指向点。 当我curl时,我得到这样的标题: HTTP/1.0 200 OK Content-Length: 41012 Connection: keep-alive Date: Sun, 09 Jun 2013 20:59:30 GMT Server: Apache/2.2.22 (Ubuntu) Last-Modified: Fri, 04 May 2012 12:36:06 GMT Accept-Ranges: bytes Access-Control-Allow-Origin: *.example.com Age: 1805 Via: 1.0 cbe4bca697a4e3585803757de75edba7.cloudfront.net (CloudFront) X-Cache: Hit from cloudfront X-Amz-Cf-Id: 2im15Ds6Vk81kxdZKtPh7w0JUjW9qyPMgFbnXzrN_RfxJCkeyOjEbg== […]

当在%{REMOTE_ADDR}上匹配时,RewriteCond在我的IP上不匹配

我想要一个mod_rewrite规则,当stream量从内部networking到达networking服务器时不会被执行。 Web服务器是apache 2.2下面的RewriteCond是为了防止重写规则。 RewriteCond %{REMOTE_ADDR} !=192\.168\.[0-15]\.[1-255] 如果我使用ip 192.168.15.173访问web服务器,规则似乎没有踢,因此尽pipe我的内部地址执行重写规则。 我的错误在哪里? 匹配更简单: RewriteCond %{REMOTE_ADDR} !=192\.168\.15\.173 也失败了。 我使用http://httpd.apache.org/docs/trunk/rewrite/access.html中的“Blocking of Robots”示例来构build规则。 我错过了什么吗? 编辑:我已经试图调查使用重写日志,但没有提出任何有用的信息。 这是请求过程中发生的事情: 192.168.15.173 – – [12/Jun/2013:13:50:17 +0200] [example.com/sid#7f3c6afb5e30][rid#7f3c6f864b68/initial] (2) init rewrite engine with requested uri /test/ 192.168.15.173 – – [12/Jun/2013:13:50:17 +0200] [example.com/sid#7f3c6afb5e30][rid#7f3c6f864b68/initial] (3) applying pattern '^/test/(.*)' to uri '/test/' 192.168.15.173 – – [12/Jun/2013:13:50:17 +0200] [example.com/sid#7f3c6afb5e30][rid#7f3c6f864b68/initial] (2) rewrite […]

Apache日志logging性能

我如何loggingApache的性能,即如何处理请求? 与Tomcat的Valve概念类似,我想在Apache上添加这个日志logging来识别我的Web应用程序的瓶颈。 我通过mod_jk使用Apache和Tomcat。

debugginghtaccess重写规则; 第二个捕获组($ 2)为空

我已经看到了这个问题,为其他人,但在他们的情况下,他们的正则expression式有一个问题。 快速浏览regexpal.com向我表示,事实并非如此。 我有一个简单的htaccess文件,允许我将URL写为“.htm”或“.html”,而不是“.php”。 我刚刚发现这个脚本在处理查询string(?argument = value)时有问题。 这是我完整的.htaccess代码: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)\.html?\??(.*)$ $1.php?$2 [nc] 当我打印我的请求的查询string时,它总是空出来,当然,对array_key_exists的检查没有find我想要指定的id。 我不用Apache的工作,但我认为这将是非常简单的。 如果重要的话,这个htaccess应用在一个相对简单的XAMPP设置之上。 我不认为我甚至对httpd.conf文件做了什么。 我可以尝试提供任何其他人们认为可能相关的信息。

如何区分多个Tomcat集群?

操作系统: Ubuntu 12.04 LTS amd64 HTTP服务器 :Apache 2.2x Tomcat :Apache 7.x JVM :openJDK 1.7 我们需要创build一个集群的Tomcat 7环境。 我们已经做了大量的阅读, 需要澄清如何区分群集 。 我们读了关于多重集群,但我们还没有看到如何configuration多个集群的真实例子。 为了简单起见,如何configuration这个环境? Node 01 – Apache HTTP running mod_jk using load balancer Node 02 – Tomcat Server running PROD application instance (Cluster PROD) running TEST application instance (Cluster TEST) running DEV application instance (Cluster DEV) Node […]

根据环境variables有条件地使用mod_expires

我从HTML5 Boilerplate中借用了一些mod_expires代码,它为资产到期添加了一些合理的默认值(我使用htaccessconfiguration了文件名版本转换,所以我可以在资源扩展之前添加m次,如script.123456789.js ): ExpiresActive on ExpiresDefault "access plus 1 month" # CSS ExpiresByType text/css "access plus 1 year" # Data interchange ExpiresByType application/json "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType text/xml "access plus 0 seconds" # … etc … 但是,我想在我的开发服务器(设置一个DEVELOPMENT=1环境variables)禁用这些。 如果设置了环境variables( Allow from env=DEVELOPMENT ),是否可以在2.4.4中有条件地禁用mod_expires (也许是ExpiresActive On ),就像使用mod_access一样?

从外部请求隐藏一个PHP脚本

(第一个问题在堆栈交换,随意评论/批评) 上下文 我有一个Debian服务器 Flash Media Server(FMS)侦听端口80和1935(这是默认值) Apache2侦听端口8134 仅供参考,FMS的目的是videostream等。 它使用RTMP协议。 据我所知: 当FMS请求在1935被阻塞时,在80上有一个回退。该协议改变并成为HDS,这是基于HTTP的RTMP(较慢,但是起作用)。 FMS需要80端口来做这个回退。 另一方面,Apache提供html,css,…和swf文件,它们是客户端用来连接服务器的flash文件。 从客户端,您可以通过端口80访问这些文件。然后,FMS代理Apache无法处理的HTTP请求。 这样Apache不需要在端口80上configuration,从而避免了80端口冲突。 到目前为止,一切都很好。 但最近,我不得不为FMS添加SQLfunction。 而FMS本身没有内置的SQL连接。 它几乎不能做HTTP请求。 所以你必须在另一个服务器端技术上处理SQL。 由于Apache已经在家,PHP / MySQL就浮出水面了。 所以我安装了PHP和MySQL,并创build了一个网关.php脚本,它作为一个非常简单的数据访问层。 它的工作原理是,FMS可以通过json_encode请求PHP / MySQL生成的JSON数据,由于FMS语言是ActionScript,读取Javascript,我做了(新function(“return”+ src))()和voilà,我的js对象是直的从数据库。 非常简单,避免了构build一个J2EE服务器或带回Zend Framework来讲AMF。 现在出现我的安全问题: 每个人都可以访问.php网关,这意味着任何人都可以使用正确的GET参数来创build.phpurl,并从数据库中读取或混淆。 我想只允许FMS与网关通话。 但我需要客户端仍然能够请求每个其他文件(HTML,CSS,SWF …)。

如何让一个网站无需访问www

现在,我有这些指向我的Web服务器的DNSlogging: example.com. IN A 123.123.123.123 www.example.com IN A 123.123.123.123 我想知道是否有一个“example.com”本身的Alogging的良好做法。 我被告知使用通配符地址(这意味着这是更好的做法),但我不知道该怎么做。 我也在httpd.conf有这个: ServerName www.example.com ServerAlias example.com 有没有一个标准的方式,允许一个网站访问没有领先的www。

Apache反向代理对字符进行编码

我已经设置了Apache的反向代理服务器,从后面的configuration防火墙bugzilla ProxyRequests Off ProxyPass /bugzilla http://88.88.88.75/bugzilla nocanon ProxyPassReverse /bugzilla http://88.88.88.75/bugzilla <location /bugzilla/> ProxyPassReverse / RequestHeader unset Accept-Encoding </location> 但问题是,当请求命中bugzilla的search条件都编码和bugzilla找不到任何东西 例如,“ search term ”在达到bugzilla时变成“ search%20term ”,因为代理将其编码为“ search%2520term ”。 有任何想法吗?

在nginx中重写规则

我正在使用php-fpm将Apache应用程序从Apache移动到Nginx。 我差不多完成了,除了一个我在Nginx中没有做的重写指令。 以下是我需要端口的Apacheconfiguration的摘录: # Handle alianza.quehambre.cl RewriteCond %{HTTP_HOST} ^alianza\.quehambre\.cl [NC] RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-l RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(api|get)/(.*) RewriteRule ^(.*)$ /index.php/get/$1 [L,QSA] 完整的Nginxconfiguration在这个要点 ,包括我目前的非工作尝试写出上述规则。