Articles of apache 2.2

Apache:以每个虚拟主机的方式configurationprefork

我在同一个Linux服务器(AWS EC2实例)上托pipe不同的站点,我想通过虚拟主机特定的configuration为这些站点提供不同的限制。 这可能吗?

如果我为新域创build虚拟主机,是否必须创build第二个虚拟主机来维护先前存在的直接访问?

我们有一个生产erp服务器,迄今为止只能从局域网访问。 我们现在有一个要求,它的一部分可以从外部访问。 我们不在内部运行DNS,因此所有的访问权限都是192.168.xx。局域网之外访问的一些例外情况是在路由器的ACL中将几个IP列入白名单,并添加一条静态路由来转发stream量路由器的静态广域网IP。 现在,我已经build立了一个域名来击中我们的另一个IP。 路由器configuration中还有一个静态路由,用于将该IP的stream量转发到同一台服务器。 我基本上只是创build了另一种方式来打80/443相同的服务器。 我现在想要做的是build立一个虚拟主机configuration,以便通过新域进入的stream量将打到一个特定的文件夹… domain.com/public例如。 我不确定的是,如果有的话,这可能会影响现有的no-virtualhost设置。 TL; DR 如果我设置了一个虚拟主机configuration来将基于域的stream量指向特定的文件夹,那么我是否必须显式地(设置另一个虚拟主机)关于非基于域的stream量能够像现在那样击中根?

如何仅在VirualHost的一个目录中设置https

我有几个站点和应用程序的VPS,我想通过HTTPS运行MySQLpipe理工具,以避免中间人攻击的可能性,因为我经常使用MySQL的root密码。 现在,如果我专门为此目的设置了域名,那完全不是问题,因为build立SSL虚拟主机没有问题。 我的任务是仅使默认虚拟主机https-forced的一个(子)文件夹。 假设我有/var/www与vhosts文件夹和下面的一切。 如果我inputhttp:// {ip -adress-of-vps},我得到的文件作为默认主机/var/www索引。 我想在/var/www ( /var/www/phpmyadmin )下面创buildphpmyadmin dir,只有在调用http://{ip-adress-of-vps}/phpmyadmin时才能通过https访问它。 那可能吗? 怎么做? 如果不可能的话,你最好的做法是什么? 提前致谢。

在Apache上redirect(维护POST参数)

我在我的服务器上安装了Apache,我需要从httpredirect到https。 原因是我们的负载均衡解决scheme无法使用https,所以请求进入http,然后使用httpd.conf文件中的以下行将它们传输到https。 <VirtualHost 10.1.2.91:80> Redirect 302 /GladQE/link https://glad-test.com/GladQE/link.do </VirtualHost> 这适用于GET请求,但是POST请求会丢失在URL上传递的参数。 什么是最简单的方法来执行此redirect和维护POST PARAMS? 我需要从http://glad-test.com/GladQE/link.do到这里https://glad-test.com/GladQE/link.do维护POST PARAMS 谢谢 汤姆

如何在redirect上模拟Apache 标志?

出于商业原因,我为Apache 2.2.22(mod_rewrite)创build了以下重写规则: RewriteRule /site/(\d+)/([^/]+)\.html /site/$2/$1 [R=301,L] 如果给出了这样的url: http: //www.mydomain.com/site/ 0999 / document.html 被翻译成: http : //www.mydomain.com/site/ document / 0999 .html 这是预期的情况。 但是,有名称只是数字的文件。 所以考虑下面的情况: http://www.mydomain.com/site/ 0055/0666 .html 获取翻译成: http://www.mydomain.com/site/ 0666/0055 .html 这也符合我的重写规则模式,所以我最终浏览器的“网页导致了太多的redirect”错误。 我研究了很长时间,没有find“好”的解决scheme。 我试过的东西: 使用[END]标志。 不幸的是我的Apache版本不可用,也不适用于redirect。 在RewriteCond子句上使用%{ENV:REDIRECT_STATUS}来结束重写过程(L)。 出于某种原因,%{ENV:REDIRECT_STATUS}在我尝试的所有时间都是空的。 如果我的规则匹配,添加一个带有Header子句的响应头,然后检查这个头( 详情请看这里 )。 似乎a)REDIRECT_addHeader为空b)标题不能明确地设置在301响应上。 还有另一种select。 我可以设置一个查询参数的redirectURL,这表明它来自redirect,但我不喜欢这个解决scheme,因为它似乎hacky。 有没有一种方法可以完成[END]标志的function,但是在旧的Apache版本中呢? 比如我的2.2.22。 谢谢!

Apache vhost日志按date旋转

我已经在Debian 7(在VPS上)上运行了Apache 2.2,为几个不同的网站定义了虚拟主机。 我已经为每个虚拟主机设置了单独的错误和访问日志,但是我还没有find一种方法来根据我的喜好来旋转/归档日志。 当然,Debian上默认的Apache日志是通过logrotate旋转的,但是由于种种原因我并不觉得特别满意 – 主要是因为我想让归档日志按date命名,而且因为每个vhost分别configuration它看起来很麻烦。 我也不确定自动删除旧日志; 我可能只想从服务器下载它们之后手动执行此操作。 我的理想解决scheme是每个月(甚至每周)都做下面的事情: 将date附加到文件名,或将文件移动到名为date的子文件夹。 Gzip存档的文件。 我也需要这个很容易设置为多个虚拟主机。 理想情况下,不应该涉及到重新启动Apache(尽pipe优雅的重启不是世界末日)。 设置这个最好的方法是什么? 我相信这是在…之前完成的

sudo:passenger-memory-stats:command not found

这是我第一次设置一个服务器,并且在遵循这里描述的Phusion Passenger教程的时候遇到了麻烦。 指令要求我运行这个命令: passenger-memory-stats 这导致了这个错误: *** WARNING: Please run this tool as root. Otherwise the private dirty RSS of processes cannot be determined. 但是当我运行: sudo passenger-memory-stats 我得到这个错误: sudo: passenger-memory-stats: command not found 我在其他地方接受了build议,并用which来获得乘客记忆统计的完整path。 然而,这导致了这一点: > sudo /home/timothythehuman/.rvm/gems/ruby-2.0.0-p0/bin/passenger-memory-stats /usr/bin/env: ruby_noexec_wrapper: No such file or directory 任何其他方法来获得这项工作? 或者为什么会发生这种想法?

你如何改变Apache为默认的http 1.0

这是在httpd.conf中更改? 如果是的话,在哪里? 我有连接保持活着的问题,我知道http 1.0使默认情况下closures。

备份Apache2的编译版本以进行快速恢复

我使用Puppet自动设置服务器工作。 唯一的问题是,在我的堆栈中安装特定版本的软件有点棘手,因为依赖关系有时不符合要求。 例如,我使用的是Apache 2.2.25,但Ubunu 12.04目前以2.4为基础。 由于我不想马上升级,我设置了Puppet来编译并从源码安装Apache。 由于这通常需要一段时间,我想知道我是否可以构build和编译Apache并继续重用构build版本? 什么文件夹,二进制文件,我需要复制的文件,这甚至有可能? 我所尝试的替代scheme也是受欢迎的。

更改CentOS 6专用服务器的默认IP地址

我有一个运行CentOS 6的专用盒子。我想更改默认的IP地址,我search了很多,我发现这个build议: (1)通过SSH运行这两个命令: sudo -n ifconfig eth0 down sudo -n ifconfig eth0 up NEW_IP (2)将Apache的ServerName指令更改为httpd.conf的新IP地址,即。 ServerName 111.222.333.44:80 (3)重新启动apache (4)将指向此服务器/旧IP地址的域更改为指向新的域。 我要在现场服务器上这样做,所以我想知道这些指示是否正确,然后再继续(我不想把事情搞砸) 有人可以确认(或纠正我,如果我错了),如果这是要走的路? 编辑 apachectl -t -D DUMP_VHOSTS给了我一个长长的列表,如下所示: VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost default server domain1.com (/etc/httpd/conf/httpd.conf:1015) port 80 namevhost domain1.com (/etc/httpd/conf/httpd.conf:1015) alias www.domain1.com wild alias *.domain1.com port 80 namevhost domain2.org […]