我买了一台Slicehost VPS(最便宜的,256MB,运行Ubuntu),因为我有兴趣将我的Web开发经验/理解扩展到课堂之外。 我希望Slicehost运行(1)博客,(2)我可以用于私人组织目的的wiki(我自己和一些朋友),以及(3)多语言开发(Ruby,PHP,python )。 我所意识到的是,这有一些缺点。 首先,我会为每个访问者启动一个巨大而丑陋的Apache进程(不是我期望的),其次,这会使configuration成为一场噩梦。 有没有办法,我可以运行单独的Apache进程来处理每个程序,但以URL透明的方式吗? 我希望能够让blog.mywebsite.com只加载Movable Type的相关模块和configuration,而pydev.mywebsite.com只加载运行python的Apache的modules / config和railsdev.mywebsite。 COM运行在Apache / Passenger或其他。 我知道如何做到这一点,如果我愿意的url是mywebsite.com:8081/,mywebsite.com:8082/等,但有没有办法让一个服务器聆听* .mywebsite.com: 80并让它传递请求到适当的服务器(这是监听端口8081-8084左右)?
我在专用服务器上build立了Drupal 6站点,并通过安装在其上的“Matrix”控制面板启用了SSL。 现在的问题是,该网站只从https加载页面。 大多数的图像不会加载,我想这与相同的事情有关。 理想情况下,我希望http和https都可以工作,然后我可以为需要安全的页面重新排列redirect。 尝试加载常规http页面时出现的错误是: **Bad Request** Your browser sent a request that this server could not understand. Reason: You're speaking plain HTTP to an SSL-enabled server port. Instead use the HTTPS scheme to access this URL, please. 任何人都可以指向正确的方向吗? 编辑: 在sites-enabled / domainname.co.uk中,有一个为服务器IP设置的<VirtualHost>,使用端口80,如下所示: <VirtualHost xx.xx.xx.xx:80> ServerName xx.co.uk ServerAlias www.xx.co.uk ServerAdmin [email protected] DocumentRoot /home/default/xx.co.uk/user/htdocs ErrorLog […]
我正在使用apache2反向代理虚拟主机。 当apache后面的服务器closures的时候,第一个到apache的请求显示错误页面。 但在随后的请求中,似乎apache延迟了一段时间,再次询问后端服务器。 在所有这段时间(这是短暂的,但在开发中,我不想延期),只有浏览器显示apache错误页面,尽pipe后端服务器已经启动。 在apache中这个设置在哪里,这是什么行为,我怎样才能将延迟时间设置为零? 编辑:我不想改变一个请求的超时。 我想改变阻塞时间。 根据我的经验,apache在再次询问一个曾经失败的后端服务器之前阻塞了一段时间的进一步请求。 Edit2:这是Apache提供的: 服务暂时不可用 由于维护停机或容量问题,服务器暂时无法处理您的请求。 请稍后再试。 Apache / 2.2.8(Ubuntu)PHP / 5.2.4-2ubuntu5.7与Suhosin-Patch proxy_html / 3.0.0服务器在本地端口80 在Firefox中按Ctrl-R 60秒后,页面终于出现。
在由包含通配符条目(例如* .example.com)的DNS链接的Apache2服务器上,在任何VirtualHost中未定义为ServerNames的子域指向第一个定义的VirtualHost,在我的示例中,这是000-default。 我的问题: 如何获得未使用的子域(在任何虚拟主机中未使用的子域)向发出请求的客户端返回404错误? 最好在服务器日志中显示为404。 我研究了以下几种可能性: 将任何无效的子域名redirect到主页或其他页面。 这种方法的问题是,当有人链接到您的网站this.company.sucks.example.com,客户端将会看到您的主页或在我的情况下000-default,如果我不redirect。 谢谢, 麦克指出了这一点。 (正则expression式“吸”等肯定不是一个选项) 让默认的VirtualHost指向一个不存在的目录。 Apache不喜欢这一点,每次重新加载警告。 除了警告,一切似乎都很好。 这似乎是一个黑客。 这对任何人来说似乎都是一个问题(不pipe多么小)? 将默认的VirtualHost指向index.php被禁止的文件夹,从而创build一个403状态码。 这是令人困惑的,并使得以下事情过于复杂:例如说,您使用每个用户的子域(显然是使用通配符DNS的一个重要原因),并且用户能够在username.example中查看其他configuration文件。 COM。 这个解决scheme让用户感到困惑,完全不是我想要做的。 我的理想sollution将让用户知道没有什么可以查看他input的url。 最好有一个404和input地址的错误日志条目(而不是其他地址)。 任何帮助将不胜感激!
我已经在Ubuntu 9.10服务器上设置了一个Apache和mod_dav_svn专用的Subversion服务器,而且我已经在这一切工作正常。 不过,我注意到,当将正确的文件权限分配给版本库目录时,大多数教程都会提示您执行如下操作: sudo chown -R www-data:www-data /svn/myrepo # make www-data the owner of the repo so Apache # can write to it sudo chmod -R g+ws /svn/myrepo # Give the www-data group write access as well, and enable # setgid so that new directories have that group 现在,我做了一点不同。 我创build了一个新的subversion组,并且创build了存储库的所有者,然后将自己和www-data添加到该组中,理由是这样我可以编辑/svn/myrepo/conf的configuration文件和挂接脚本in /svn/myrepo/hooks ,它也使Apache和Subversion更加分离。 我见过其他教程推荐类似的东西,但是然后告诉你这样做: sudo chwown […]
我想看看如何configurationNginx和Varnish。 我在两个IP上运行多个PHP站点和Rack-Sinatra站点作为虚拟主机。 我想阻止Nginx提供静态文件,因为我注意到一些延迟。 编辑 :我已经更改为Nginx,但提供的答案很容易移植到Nginx。
我怎么能有一个域下的子目录指向另一台服务器? 例如, example.com/myscript/应加载位于与example.com不同的服务器上的脚本。 这可以通过使用子域来实现,但是我需要避免这种情况。 example.com应该从服务器1加载。 example.com/myscript/应该从服务器2加载。 我正在使用Apache。
当我们在Apache中执行PHP时,其中一个没有进一步更新或重新configuration的旧式服务器突然停止将主机名parsing为IP。 但是,从CLI执行时仍然可以正常工作。 从RSScaching上次修改时间,我推断它在3月28日左右停止工作。 为了重现这个问题,我使用fsockopen()创build了一个脚本,它说“连接失败(errno 2)”。 我进一步减less了与失败的名称parsing有关的问题: <?php $addr = gethostbyname("twitter.com"); echo "ADDR($addr)"; ?> 当我通过Apache运行这个,输出是ADDR(twitter.com) ,这是错误的。 当我从CLI运行这个时,输出是ADDR(aaa.bbb.ccc.ddd)与不同的IP地址,如预期。 服务器设置上没有任何更改。 CLI和Apache模块共享相同的php.ini 。 PHP是Zend Optimizer v2.5.10的v4.4.9版本。 Apache是v1.3.31。 我知道版本是旧的。 但由于没有任何改变,像“先尝试升级版本”的解决scheme是没有解决scheme,因为服务器的function设置/版本被冻结,并将很快被replace。 我们仍然需要解决scheme。 如果我通过脚本运行dig ,它可以在两个环境(mod_php和CLI)中工作,但这不仅仅是一个丑陋的黑客攻击,因为它涉及许多编辑和testing,整个脚本库也是不受欢迎的,因为服务器上的PHP应用程序也被冻结,只收到安全更新。 它将被完全重写(在新服务器上)所取代。 但是由于重写需要一些时间,并且需要连续地replace遗留应用程序的一部分,所以我们需要修复parsing器问题。 我已经search了一下,虽然这个问题是已知的,但是很多人没有find解决办法。 提高内存限制的修复程序不起作用。 重新启动没有工作。 mod_php中的parsing器只是停止工作,没有明显的原因。 🙁 更新:我通过完全停止Apache来解决它,等待片刻,然后再次启动它。 但是这并不能解释这种行为的根源(因此没有令人满意的解决scheme)。 所以我把这个打开。
我有一台运行Ubuntu 9.10的服务器,Apache 2.2.12是apache2的最新可用包。 然而,我看到2.2.14可用于Lucid。 有没有办法继续使用dpkg并获得2.2.14(或者最好是2.2.15,因为它是3月份的安全版本 )运行,还是我不得不求助于手动编译? 我只是简单的将操作系统升级到Lucid,但是机器只有8个小时的时间,而且没有备份(pipe理紧缩)。
我为PHP开发build立了一个小型的LAMP虚拟机。 它工作正常,除了当已经被服务的图像被修改在磁盘上,然后再次请求,“旧”的图像仍然在服务(我得到一个304从未修改答案从Apache2)。 这种caching行为在服务器上是可取的,但是在频繁编辑文件的开发环境中是一种痛苦。 唯一(不方便)的方式,我发现访问新的文件内容是: 重启虚拟机, 或发出sync; echo 3 > /proc/sys/vm/drop_caches sync; echo 3 > /proc/sys/vm/drop_caches 是否有一个Apache指令,我可以用它来确保apache将检查每次请求时磁盘上的文件是否已经更改? 更新 :加载的Apache模块: #apache2ctl -t -D DUMP_MODULES 加载模块: core_module(静态) log_config_module(静态) logio_module(静态) mpm_prefork_module(静态) http_module(静态) so_module(静态) alias_module(共享) auth_basic_module(共享) authn_file_module(共享) authz_default_module(共享) authz_groupfile_module(共享) authz_host_module(共享) authz_user_module(共享) autoindex_module(共享) cgi_module(共享) deflate_module(共享) dir_module(共享) env_module(共享) mime_module(共享) negotiation_module(共享) php5_module(共享) setenvif_module(共享) status_module(共享) 语法OK 编辑 :其实,我的DocumentRoot存储在一个共享的VirtualBox文件夹。 这似乎是当一个文件被覆盖,virtualbox模块不会通知Linux使其caching失效。 因此,违反直觉的行为。 当我对“常规”linux目录执行相同的覆盖操作时,不会发生这种情况。