Articles of 虚拟主机

Apache2虚拟主机限制为本地主机

所以这是交易。 我有多个虚拟主机。 每个虚拟是一个单独的域。 每个域是用于单独的应用程序。 比方说,我有虚拟主机: http:// .abc.com http:// .def.com http://foo.com 然后我是一个单独的应用程序,这是foo.com应用程序的RESTful HTTP API。 我想要实现的是* .abc.com和* .def.com到api.foo.com之间的反向通信。 所以* .abc.com,*。def.com和foo.com是可以公开访问的(这个我已经设置好了)。 但访问api.foo.com只能从同一台服务器请求访问。 我的标准是: 一个404应该服务于任何人试图浏览到api.foo.com(不被拒绝的权限) 访问api.foo.com仅限于IP或IP范围 我已经通过以下方式实现了 不为api.foo.com设置DNSlogging,所以任何试图访问它的人都将收到404。 为127.0.0.1:80创build一个基于IP的虚拟主机,并将以下规则添加到/ etc / hosts中 127.0.0.1 api.foo.com 这完全按照需要工作。 但这是实现私人虚拟主机的正确方法吗?

如何在Linux / Apache2.2上为多个用户configuration多个虚拟主机

我想在Linux / Apache2.2上build立一个虚拟主机服务器,允许多个用户设置多个网站域名,这对于商业共享主机来说是合适的。 我已经看到了一些示例(从我的angular度来看,这是一个共享的托pipe客户),允许用户将他们的Web文件存储在他们的用户主目录中,其目录与虚拟主机域相对应,例如: /home/user1/www/example1.com /home/user2/www/example2.com 而不是使用/ var / www 问题: 你如何configuration你的Apacheconfiguration文件? (不要担心DNS) 这是pipe理多个虚拟主机的最佳方式吗? 有其他人吗? 你认为我应该注意哪些安全或安全问题? 非常感谢,伙计们。 编辑:如果你只想回答问题1,请随意,因为这是我目前最紧急的,我会考虑这个问题的答案。 自发布以来,我一直为自己做,但我不相信这是最好的解决scheme,我想知道有经验的系统pipe理员将如何做到这一点。 谢谢。

在apache用户下停止脚本执行

我的虚拟主机服务器的用户被允许访问他们的目录,但今天我受到了攻击,有人上传文件,由用户apache在文件夹/tmp执行文件。 我怎样才能停止由用户apache上传和防止这些types的执行? 问候

在单个域的vhost.config中使用mod rewriteredirect问题

我们在一个networking解决schemeVPS上,四个域名都是一个IP。 在单个域的vhost.config文件中,以下内容将起作用: Redirect 301 /1234 http://example.com/ 但以下3个重写将不起作用: RewriteEngine On RewriteRule ^1234$ / [R=301,L] Options +FollowSymlinks RewriteEngine On RewriteRule ^1234$ / [R=301,L] Options +FollowSymlinks RewriteEngine On RewriteRule ^1234$ http://example.com [R=301,L] 这些只是testing,以获得一些更严重的事情与mod重写在vhost.config。 我觉得我必须错过简单的东西。 如果任何人都可以帮助我,这将不胜感激。

mod_rewrite规则在单独的configuration文件(Aegir)

我有一个虚拟主机configuration文件,我不能直接编辑或修改,因为它是由我们的主机平台Aegir生成的。 但是,它具有Include pre.d和Include post.d语句,这些语句包含在vhostconfiguration之前和之后。 我想要做的是在独立文件中添加特定于虚拟主机的重写规则,以便在向群集添加新服务器时自动迁移。 所以在pre.d我创build了一个名为ServerName_redirects.conf的文件,其中我放置了以下内容: <VirtualHost *:80> RewriteEngine on RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^servername.com$ [NC] RewriteRule ^/*(.*)$ https://servername.com%{REQUEST_URI} [L,R=301] </VirtualHost> 这只是网站迁移到新平台期间将要使用的许多规则之一。 但它不起作用,直到我把它包装在一个<VirtualHost servername.com:80> – 块。 但是由于VirtualHost-blocks并没有从原始虚拟主机的configuration中inheritanceDocumentRoot和ServerName ,所有的URL最终都会以404结尾,除非它们将stream量redirect到外部站点。 我不能简单地将DocumentRoot或ServerName添加到ServerName_redirects.conf文件,因为这些文件是“dynamic的”,并且可以随时在Aegir中的服务器或平台之间移动站点时进行更改。 尽pipe每个DocumentRoot的.htaccess都能解决这个问题,但是我不能使用它,因为它是一个Drupal多站点设置,而且我将不得不将每个站点的重写规则放在与RequestCond %{HTTP_HOST} ^www.site-1.com$相同的.htaccess文件中。 RequestCond %{HTTP_HOST} ^www.site-1.com$为每个规则,这不是特别优雅,我担心如何影响性能。

dynamic虚拟主机问题

我已经阅读了关于如何在Apache网站上创builddynamic虚拟主机系统的文档,但是我对一些事情感到困惑: 1)如果需要,每次添加虚拟主机时,是否必须dynamicconfiguration窗口的主机文件进行更新? 2)说一个域名更改,我不得不重命名目录和编辑主机文件? 3)为了将虚拟主机的名字指向一个子域名,我只需要做一个 VirtualDocumentRoot /www/hosts/%0/docs 其中0%= sub.domain.com,对吧? 没有学习如何configurationDNS的麻烦。 4)另外,我将如何阻止他人访问其他人的目录?

Apache无法提供请求或延长一段时间

看起来随机间隔,我的网页请求将超时。 当我正在从事Drupal 7项目或CodeIgniter项目时,这种情况最为严重。 铬给我的错误Error 7 (net::ERR_TIMED_OUT): The operation timed out. 并build议我刷新页面(非常有帮助!)。 我在CI项目上使用SSL,但是我相信我已经很好地排除了这个问题,因为我已经仔细检查了我的configuration,并且在不使用SSL的D7项目上也遇到同样的问题。 软件堆栈: Apache 2.2.19从ApacheLounge下载。 (VC9) PHP 5.3.6(VC9) 重新启动Apache似乎没有帮助的情况下,我不知道接下来要尝试什么。 任何和所有的build议和帮助将不胜感激。

Apache DocumentRoot似乎不起作用

我有一个基本的Apache2configuration,只有一个VirtualHost启用。 我已经将DocumentRoot和Directory设置为引用我想要显示的网站的索引目录,但是当我在浏览器中调用服务器索引时,它指向/ home / user / public_html而不是/ home / user /的public_html /网站 这是不是有意或者是我的设置不正确? 这是虚拟主机设置: <VirtualHost *:80> DocumentRoot /home/user/public_html/website <Directory /home/user/public_html/website/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: […]

Apache子域在URL中代表参数的子域redirect

我正在更新我的htaccess文件来控制一个正在创build的子域。 我遇到了一些问题。 首先,我build立了http://m.domain.com/这个域名,并指向http://www.domain.com/mobile.php/mobile 我希望这样的工作,因为我不想经过一个大的过程重构当前设置的URL路由,并修复它,这样会更容易。 我也想这个在我的开发机器上本地工作。 所以下面的url也适用: http : //local.m.domain.com和本地网站redirect到http://local.domain.com/mobile.php/mobile 这意味着,如果我传递参数后,说:: http://m.domain.com/page它会然后路由到页面http://www.domain.com/mobile.php/mobile/page 到目前为止,我有,但这只是下载一个PHP文件,而不是路由任何页面。 RewriteCond %{HTTP_HOST} (^local\.|^)m\.domain\.com\.au$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ mobile.php\/mobile$1 [QSA] 我知道,本地或“没有”select器的正则expression式是懒惰的,但我不认为这是什么杀死它。 当然,我可能是错的。 任何提示或build议将感激地接受。

如何在虚拟主机上更好地模拟远程开发?

例如,在开发WordPress网站时,这样的脚本会在检测到的path/地址的数据库中保存一些值。 为了避免上传生产版本到服务器时(当项目完成或更新时)我通常设置我的Web开发环境,如下所示: 主机文件: 127.0.0.1 www.domain.com 127.0.0.1 domain.com Apache虚拟主机文件: <VirtualHost *:80> DocumentRoot "C:\Users\Nazgulled\Workspace\World Wide Web\Htdocs\domain.com" ServerAlias www.domain.com ServerName domain.com </VirtualHost> 我完成了。 我可以像访问真实服务器一样访问domain.com或www.domain.com但实际上我正在访问我的本地开发服务器。 然而,我想知道我是否可以用其他方法…我的意思是,保持domain.com和www.domain.com访问真正的服务器,像http://domain我的本地服务器。 但在某种程度上,WordPress脚本(或任何其他)检测到的地址为domain.com或www.domain.com而不是简单的domain 。 任何可能的方式来configurationApache虚拟主机的这种行为? 除此之外,你还有什么其他build议可以更好的虚拟主机configuration来模拟真正的服务器位置吗?