Articles of apache 2.2

Apache奇怪的日志

在我的ACCESS_LOG中,我看到很多奇怪的东西,来自其他IP的请求尝试连接到其他IP。 示例行: 67.212.81.217 – – [15/Dec/2009:17:38:26 +0000] "GET http://www.megaupload.com/?d=JE615TVO HTTP/1.1" 200 531 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" 我的Apache被黑客入侵了吗? 我怎样才能禁用它? 我试图谷歌关于这样的问题,一些网站build议它关于mod_proxy,我试图禁用它,但问题仍然存在。

雪豹服务器安全

我已经在多个位置上读到,由于安全问题,Apple在10.5和10.6中默认提供的Apache设置不是您想要在生产环境中使用的。 我很好奇,如果Snow Leopard Server中的默认演示文稿存在差异,那么build议在不进行重大修改/滚动自定义Apache安装的情况下运行它。 谢谢!

Windows XP上的本地Apache没有完成页面请求

我在我的Windows XP(SP3)开发机器上本地安装了Apache 2.2.11,这是我在3个月前安装的。 过去几周我刚开始有一个奇怪的问题。 Apache正在为phpMyAdmin等一些基本的PHP应用程序提供服务。 当我发出页面请求时,Apache似乎没有完成为该页面提供的所有资源。 Firefox显示“从服务器名称…传输数据”消息,并且该页面从未完成。 Internet Explorer也发生同样的问题。 我有时可以知道它正在等待哪个资源,因为除了某些图像或类似资源外,大部分页面都会呈现。 (不知道为什么Firebug不显示这个) 它没有每个页面请求的问题 – 对于大部分资源caching在浏览器中的页面请求,页面请求将毫无问题地工作。 或者非常轻的页面将毫无问题地工作。 但是,如果我“硬”刷新页面,我会有这个问题(可能是因为它是请求所有页面资源) 有谁知道这可能是什么? 奇怪的是,它刚刚开始发生 – 我没有对我的系统做任何改变(我知道) 我尝试使用Apache ThreadsPerChild设置,但似乎没有什么区别。 更新: 我一直在做更多的testing。 我一直在服务最基本的页面,只是一个普通的HTML文件: <html> <body> <h1>testing</h1> </body> </html> 如果我连续多次请求这个页面,并且每个请求都会在前一个完成之后立即发生,那么请求超时的时间有50%。 但是,如果我在请求之间留出1-2秒的间隔,那么就没有问题了。 这与浏览器请求真正的应用程序页面时所观察到的相关。 当浏览器没有任何caching的时候,浏览器会在很短的时间内请求所有的页面资源 – 这似乎是触发问题的原因。 UPDATE2: Nathan Long通过服务器状态页面帮助我更好地理解了这个问题(见下文)。 这很奇怪,它就像服务器有一个Hickup发送数据到客户端。 客户坐在那里等待永远不会到达的数据。 closures客户端进程不会终止服务器上的连接 – 服务器上每个先前尝试的连接仍然有活动的线程,但他们只是坐在那里 – 不发送任何数据,也不会终止。 (即使客户端现在closures)只有重启服务器才能终止它们。

WebDAV的; 限制在每个用户或每个组的基础上的目录?

使用Apache / WebDAV / mod_auth_mysql,是否可以将用户(或组)的访问限制在MySQLauthentication表中定义的特定目录? 更具体地说,我想根据MySQL表中存在的数据来指定允许WebDAV用户访问哪些目录。 例如,如果我有一个用Python或PHP构build的用户pipe理界面,允许我指定一个用户被允许访问的目录,我将它保存在与mod_auth_mysql使用的用户/用户对相同的行上validationWebDAV用户。 如何configurationmod_auth_mysql块来指定用户被允许访问的目录? 或者在别处呢?

Apache:等待subprocess – WTF?

我运行一个PHP脚本,出了点问题(我还没有弄清楚)。 只是为了有一个新的开始。 我重新启动Apache,但在日志中我得到这个: [Fri Dec 25 21:27:16 2009] [notice] Child 7584: Child process is running [Fri Dec 25 21:27:16 2009] [notice] Child 7584: Acquired the start mutex. [Fri Dec 25 21:27:16 2009] [notice] Child 7584: Starting 64 worker threads. [Fri Dec 25 21:27:16 2009] [notice] Child 7584: Starting thread to listen on port 9090. [Fri […]

Django“无法导入设置'settings.py'”错误

我已经尽力按照http://docs.djangoproject.com/en/dev/howto/deployment/modpython/上的说明进行操作,但客户正在向我们转移一个网站,我怀疑原始开发人员的方法有点,呃,不同。 所以,首先是完整的错误信息: ImportError: Could not import settings 'settings.py' (Is it on sys.path? Does it have syntax errors?): No module named py 然后,该站点的apacheconfiguration: <Location /acecoach/> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE settings.py PythonOption django.root /acecoach PythonPath "['/home/acecoach/public_html/acecoach'] + sys.path" PythonDebug On </Location> 现在,据我所知,“设置模块”位于/home/acecoach/public_html/acecoach/settings.py这个文件可以被apache服务器读取 – 我testing了这个文件实际上是通过apache用户从命令行读取文件。 我也读过类似的build议,在这方面没有任何有用的帮助。 这让我疯狂。 🙂

第一个条件之后Apache mod_rewrite停止

我试图把这个URL改写如下: fr.example.com/tag/movies example.com/catch.php?tag=movies fr.example.com » domain.com/catch.php?country=fr 对于这些,我有一个.htaccess文件中的以下mod_rewrite规则 子域名+标签 RewriteCond %{HTTP_HOST} ^([^\.]+)\.example\.com [NC] RewriteRule ^tag/([^/]+) catch.php?country=%1&tag=$1 [L,NS] 标签 RewriteRule ^tag/([^/]+) catch.php?tag=$1 [L,NS] 子域 RewriteCond %{HTTP_HOST} ^([^\.]+)\.example\.com [NC] RewriteRule ^(.*)$ catch.php?country=%1 [L,NS] 按照这个顺序。 现在,第一个RewriteRule之后的L应该结束处理,并将其redirect到子域名+标签URL,但是不会。 例如, fr.example.com/tag/movies发送到catch.php?country=fr ,这是.htaccess文件中的最后一个条件。 发现第一个L后不应该停止吗? 回答 那么,事实certificate, [L]标志根据上下文( .htaccess / <Directory>不同于httpd.conf )的不同而有所不同,正如您在这里所看到的。 因此,为了使其工作,只需将规则放置在<VirtualHost> (NOT <Directory> )中,并将/添加到每个URI( /catch.php /tag ,…)。 而已。

如何使某些虚拟文件夹由iis服务,而其他人则由Apache服务?

我有一个使用PHP编写的站点,它由安装在Linux上的Apache提供服务。 说,它的url是example.com ,它有子文件夹audio , games , photo ,所以用户指向它example.com/photo 。 现在,我正在ASP.Net中编写新的function(例如,查看电影的function),并希望用户可以通过example.com/video访问它。 而IIS的服务是在另一台服务器上看不到的(只有Apache可以直接访问互联网),但是很容易通过内部网从apache到达。 用户会话不重要! 我应该如何configuration它才能有效地工作? 可能我需要安装更多的软件? 我发布了我的解决scheme,据我了解的是Farseeker的意思,但是如果有的话我想听听其他的build议。

如何过滤/redirect进入networking的URL?

我不确定这是否可行,但是我想做的事情如下: 我有一个IP地址(dynamic使用zoneedit.com保持最新状态)。 我有一个运行我的主站点的networking服务器,它是运行Apache的Ubuntu机器。 我也有一个Windows 2008服务器运行另一个网站。 只是为了混淆事物,我也在Windows服务器上运行我的Apache站点的一部分,目前使用proxypassreverse从中获取信息。 它看起来像这样: IP 1.2.3.4 maps to example.com as well as example.org 所有进入端口80的请求都被转发到Apache框,我使用虚拟主机设置代理需要的Windows站点。 所以example.com是一个Apache站点, example.com/mywindowssection mywindowssection是使用proxypassreverse从Apache服务器获取部分站点的Apache服务器。 example.org使用Apache和proxypassreverse获取整个网站。 我希望能够做的是将所有进入我的networking的http请求转发给一台机器,以确定谁应该提供这些内容? 所以: example.com会去Apache机器 example.org会去的Windows机器。 我只是在设置一个Astaro网关(从来没有这样做过,所以需要一段时间configuration)作为我的防火墙,DNS,DHCP等,不知道这是否可以处理它。 我有能力在networking上运行虚拟机,如果这个过程需要一个单独的盒子。 感谢任何和所有的反馈。

redirect301失败,path为目的地

我正在使用大量的redirect301的突然失败,在一个新的networking服务器。 在迁移网站之前,我们正在对新的networking服务器进行预生产testing,但有些网站因500内部服务器错误而失败。 内容,包括数据库和文件,都是从旧的镜像到新的服务器,所以我们可以testing所有的网站是否正常工作。 我将这个问题追溯到mod_alias的redirect语句,该语句用于从.htaccess中将访问者和search引擎从旧内容redirect到新页面。 显然,Apache服务器要求目标是完整的url,包括协议和主机名。 Redirect 301 /directory/ /target/ # Not Valid Redirect 301 /main.html / # Not Valid Redirect 301 /directory/ http://www.example.com/target/ # Valid Redirect 301 /main.html http://www.example.com/ # Valid 这与 Apache 2.2的Apache文档 相矛盾 ,其中指出: 新的URL应该是以scheme和hostname开头的绝对URL,但也可以使用以斜杠开头的URLpath,在这种情况下,将会添加当前服务器的scheme和主机名。 当然,我确认我们在旧服务器和新服务器上都使用Apache 2.2。 旧服务器是Apache 2.2.11的Gentoo框,而新服务器是Apache 2.2.3的RHEL 5框。 解决方法是将所有path更改为完整的URL,或者将语句转换为mod_rewrite规则,但我更喜欢文档化的行为。 你有什么经验?