Articles of apache 2.2

将客户端证书映射到用户名

我有Apache设置要求客户端证书。 不幸的是, REMOTE_USER遇到了来自证书的令人讨厌的长string。 对于像Trac这样的应用程序来说,这对用户名是有问题的。 我已经能够使Apache将证书映射到更清晰的用户名,使用: RewriteMap certmap txt:/var/www/certmap.txt RewriteRule .* – [E=REMOTE_USER:${certmap:%{SSL:SSL_CLIENT_S_DN_CN}}] 这工作得很好,除了第一个请求。 第一个请求将REMOTE_USER作为空string,但下一个操作(即单击链接)会导致设置的值。 在Trac中,效果是用户最初没有login,但在他们做任何事情之后。 有什么办法让REMOTE_USER最初设置? 或者,如果这是不可能的,redirect或两个可以照顾“点击链接”? 编辑 毫不奇怪的是,IE必须把事情搞砸了。 这个方法在IE(8)中不起作用:当尝试使用RewriteRule时, 客户端 SSLvariables在任何时候都不可用。

在LAMP中迁移域名 – 如何提供正确的目录

我正在将一堆站点迁移到运行Ubuntu 10.04和Apache2的linode服务器上。 我已经指出了linode上的新域名服务器,并创build了区域文件。 这一切似乎都奏效了。 当我加载的URL,但是,它的服务/var/www/index.html。 我正在寻找它服务/srv/www/domain-name.com/public_html这是林德文档告诉我把网站的地方。 (这个目录中有正确的内容。) 任何想法我做错了什么?

重写url / v1 / json / acount为?v = v1&f = json&t = account

我怎样才能重写这个urlapi.domain.com/v1/json/account?id=123到api.domain.com?id=123&v=v1&f=json&t=account RewriteCond %{HTTP_HOST} ^(api)\.[^\.]+\.[^\.]+$ [NC] RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/([^/]+)/?(\?%{QUERY_STRING})?$ [NC] RewriteRule ^(.*)$ /?%{QUERY_STRING}&v=%1&f=%2&t=%3 [L]

负载平衡器,文件合并和MySQL

所以我在这里有三个机架式服务器,主要连接到WWW并有一个公共IP,其运行HAProxy设置为指向另外两个服务器。 另外两个正在运行apache,一个cron rsync作业正在从主控制器服务器上的目录下载Web文件给他们。 这一切工作正常,但是,我目前在控制服务器上运行MySQL,但我希望它像Apache和haproxy系统是工作。 有什么办法做到这一点? 还要说如果用户在wordpress上传一个文件/图像的文章,它只存储在本地服务器上的文件每隔1分钟被rsync覆盖。 我如何做目录的合并? 顺便说一句,所有三个服务器是Ubuntu 10.04服务器 谢谢。

301仅将非文件系统请求redirect到新域

我想在Apache服务器上使用.htaccess来只将调用redirect到文件系统中不是文件或文件夹的服务器。 例如,如果服务器收到以下请求: http://www.domain.tld/page1.html 而page1.html不是服务器上的实际文件,它应该301redirect到: http://new.domain.tld/page1.html 否则,它不应该做任何事情。 这可能吗? 如果是这样,怎么样? 请尽可能提供一些示例代码。 我现在的代码是: RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.domain\.tld [NC] Rewriterule ^(.*)$ http://subdomain.newdomain.tld/$1 [L,R=301] 虽然这样做的redirect,它不会忽略服务器上的实际文件和文件夹。

是否可以使用一个<ProxyMatch>规则匹配多个正则expression式?

我有一个生产,testing和开发服务器的网站,我维护。 所有三台服务器都在Debian 6 GNU / Linux上运行Apache 2.2.16。 我在testing服务器上build立了一个新版本的公司网站,我的团队认为它足够稳定,可以转移到生产环境。 但是,我想尽可能无缝地进行这种转换。 我希望能够在生产服务器上转发请求,以便它们由testing服务器处理。 这样,我可以testing出这个新的实现,而不需要在生产服务器上进行任何复杂的configuration更改。 理想情况下,我可以使用Apache的mod_proxy模块来设置反向代理,以便我可以直接从testing服务器向生产客户端提供页面。 我阅读http://httpd.apache.org/docs/2.0/mod/mod_proxy.html的文档,这对我很有帮助。 我启用了mod_proxy和mod_proxy_http ,然后在我的开发服务器上设置了以下规则。 <VirtualHost *:80> ServerName dev.example.com # … other <VirtualHost>-specific settings … ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://test.example.com/ ProxyPassReverse / http://test.example.com # … various <Directory> directives … </VirtualHost> 这工作得很好。 当我访问开发服务器时,站点直接从testing服务器提供所有页面,而且看起来好像这些响应直接来自我连接的服务器。 而且,这些请求相当快速,我能够同时进行GET和POST请求,就好像我正在直接与testing服务器交谈一样。 不幸的是,这不符合我的所有需求。 由于testing服务器仅以新版本的站点运行Apache,因此我无法从testing服务器托pipeWebmail或用户。 这些请求必须由生产服务器来处理。 我希望我的生产服务器能够使用反向代理除了 […]

从特定端口redirect到另一个端口和特定path

我如何configurationTomcat的http://主机名:5555 /可以redirect到http://主机名:8080 / somepath 谢谢

如何在Apache中定义虚拟主机

我有: – 我刚刚安装了Apache 2.2和其他东西的机器上的根帐户。 – 机器具有公共IP,但驻留在防火墙后面,只有端口80和22已打开。 – 我已经注册了一个可以转换为机器公共IP的域(比如example.com),但是 – 我没有权限访问我的example.com注册的DNS服务器。 我需要在机器上设置一些基于Web的服务,例如用户论坛,使用WebDAV的git存储库等。我认为我可以用虚拟主机来做到这一点,对吧? 但: 1)是否可以在没有我们系统pipe理员的神圣介入的情况下设置2-3个虚拟主机? 这其实我想不惜一切代价避免 2)我对1)的答案是否定的,build立虚拟主机最简单的方法是什么? 例如,我可以在其他DNS服务器中注册subdomain1.example.com,subdomain2.example.com等吗?

安装Apache Web服务器

总共有初学者,但是需要运行一些coldfusion脚本,并且从我收集的需要安装Apache HTTP服务器的同时随ColdFusion试用版这样做。 我正在使用安装向导来安装Apache HTTP Server 2.2,并要求inputnetworking域名和服务器名称。 这是否需要特定的信息,或只是任何用户生成的域名和服务器名称就足够了?

Nginx通过反向代理请求索引

我正在为nginx + apache进行testing设置。 我有nginx监听端口80,端口8080上的apache。Nginx设置为处理静态内容,Apache有dynamic内容处理(至less直到我们可以升级到PHP 5.3)。 我的apache设置工作正常,这里是nginx的服务器部分: server { listen 80; server_name mediocregopher-test; index test.php; location ~ \.php$ { proxy_pass http://127.0.0.1:8080; } location ~ /\.ht { deny all; } location / { root /var/www/html; } } 问题是,当有人请求“mediocregopher-test:80 /”时,我的索引页面(test.php)需要被代理到apache为“127.0.0.1:8080/test.php”。 有了这个设置,这不会发生。 我对nginx相当陌生,但是我环顾四周,找不到任何可以解决这个问题的设置(尽pipe问题太简单了,看起来像是这样)。 有什么build议么? 我使用nginx 1.0.1,如果这是相关的。