Articles of apache 2.2

Apache / Tomcat代理configuration

我有一个运行Apache和Tomcat的服务器。 Apache的function如下: 反向代理Tomcat 提供静态文件 Tomcat的: 提供dynamic内容 Apache正在从以下位置提供静态文件 在/ var / WWW /上传 的/ var / WWW /图像 Tomcat正在8080端口上运行 我现在的工作如下: http://www.domainname.com/app >>> proxypass/proxyreversepass >>> http://localhost:8080/app/ http://www.domainname.com/upload >>> /var/www/upload 我想要做的是:www.domainname.comredirect到Tomcat,同时还有Apache提供的www.domainname.com/upload和hwww.domainname.com/images。 做这个的最好方式是什么? 有一个redirect规则? 或者像“ProxyPass / upload!”这样的条目工作?

在MySQL中dynamic分配来自表的Apache文档根

我目前使用mod_vhost_dbd从MySQL中拉出一个path,并插入为Apache的文档根。 这使我能够通过简单的数据库logging更新dynamic地将客户从生产转移到应用程序的testing版本。 这也大大减less了我们的虚拟主机configuration,因为一个虚拟主机块可以容纳我们所有的子域(例如,在testing时可以返回/ var / www / prod,例如可以返回/ var / www / test)。 如果数据库连接中断,则会出现问题。 如果没有find子域的有效条目,则会返回到虚拟主机configuration中定义的文档根目录。 使用当前的mod_vhost_dbd,如果服务器出于任何原因无法到达数据库服务器,则会引发500错误。 所以我的问题是 – 有没有人用另一种机制实现这种dynamic的文档根目录设置? 是否有修改,我们可以对当前的mod_vhost_dbd,使其失败的默认虚拟主机docroot不仅在一个缺失的logging,而且也损失数据库连接?

mod_rewriteredirect到不同的虚拟主机

我想要redirect到的主机名如下所示: <VirtualHost *:80> ServerName my.dav.hostname.com ErrorLog /var/log/open-xchange/dav-err.log TransferLog /var/log/open-xchange/dav-access.log <Proxy /> Order allow,deny Allow from all </Proxy> ProxyPass / ajp://localhost:8009/servlet/dav/ smax=0 ttl=60 retry=5 </VirtualHost> 我想做一些事情,如果有人去了一个URL my.hostname.com/dav,我希望它被重写到my.dav.hostname.com ..如果客户端转到/dav以外的URL,他应该不被redirect。 <VirtualHost *:80> ServerName my.hostname.com ErrorLog /var/log/open-xchange/dav-err.log TransferLog /var/log/open-xchange/dav-access.log .. .. </VirtualHost> 我对如何继续下去毫无头绪。 像这样的东西不起作用: RewriteEngine on RewriteRule /servlet/webdav.infostore http://my.dav.hostname.com [L,NE,QSA] 因为它实际上redirect到我不想要的my.dav.hostname.com。 我想要的是为Apache透明地为我做。

国防部重写删除目录

我正在运行一个具有如下的.htaccess文件的PHP Web应用程序。 DirectoryIndex index.php <IfModule mod_rewrite.c> RewriteEngine On #RewriteBase / RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.*$ index.php?qa-rewrite=$0&%{QUERY_STRING} [L] </IfModule> 它完美的工作,但谷歌试图浏览我们的url,并寻找http://www.website.com.au/questions/1234/question-name时,实际上他们是在http://www.website.com.au/1234/question-name (删除/questions/ ) 我需要添加到这个.htaccess文件来删除/ questions /? 我想出了这个,但由于某种原因,它会产生一个500服务器错误,当我将它添加到RewriteRule下方和之前</IfModule> RewriteCond %{THE_REQUEST} ^GET\ /questions/ RewriteRule ^questions/(.*) /$1 [L,R=301] 为什么这两个规则不起作用?

django + apache2,每个用户占用大量的内存

我在apache2上运行我的django应用程序(使用mpm prefork)和一个mysql数据库。 它工作正常,除了多个用户使用它,每个用户需要大约40-45米RES。 httpd.conf中: WSGIScriptAlias / /home/myproject/apache/django.wsgi Alias /blog /var/www/blog/ Alias /maintain_wp_database/phpmyadmin_secure /usr/share/phpmyadmin django_wsgi: import os import sys os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler() path2 = '/home' if path2 not in sys.path: sys.path.append(path2) path = '/home/myproject' if path not in sys.path: sys.path.append(path) configuration文件: <VirtualHost *:80> ServerName myproject.com ServerAlias www.myproject.com # RewriteEngine on RewriteCond […]

Apache2 / mod_wsgi mod_headers问题

我在Django上运行Ubuntu Server 12.04上的mod_wsgi,但我似乎无法得到mod_headers的工作。 我已经运行了a2enmod标题,并得到了我需要重新启动Apache的响应工作,我已经做了。 我添加了一个简单的指令,以便服务器在响应请求时包含一个虚拟标头属性/值,就像testing一样,但没有被处理。 从Firebug的净选项卡中可以看到没有任何迹象。 我在服务器上请求的文件正在成功访问,并且正确地返回到浏览器,没有任何问题。 它只是没有额外的头。 以下是我的/ etc / apache2 / sites-available / DOMAIN文件的样子(但DOMAINreplace为我的实际域): <VirtualHost *:80> ServerAdmin root@DOMAIN ServerName DOMAIN Alias /static/ /srv/project/app/webapp/static/ Alias /robots.txt /srv/project/app/webapp/site_media/robots.txt Alias /favicon.ico /srv/project/app/webapp/site_media/favicon.ico CustomLog "|/usr/sbin/rotatelogs /srv/project/logs/access.log.%Y%m%d-%H%M 60M" combined ErrorLog "|/usr/sbin/rotatelogs /srv/project/logs/error.log.%Y%m%d-%H%M 60M" LogLevel info WSGIDaemonProcess DOMAIN user=rtf group=rtf processes=1 threads=15 maximum-requests=10000 python-path=/srv/project/venv/lib/python2.7/site-packages python-eggs=/srv/project/run/eggs WSGIProcessGroup DOMAIN WSGIScriptAlias / […]

透明地使用Apache的代理请求

我正在使用Apache透明地使用mod_proxy将URL转发到另一个URL。 为了说明我在做什么,这是我的Apacheconfiguration文件: <VirtualHost *:80> ServerName myurl.mysite.com SSLProxyEngine On ProxyPass / http://www.whatismyip.com/ ProxyPassReverse / http://www.whatismyip.com/ </VirtualHost> 我使用“whatismyip.com”网站,因为它似乎检测代理,所以这是一个很好的testing。 启用SSLProxyEngine是因为我的目标站点使用SSL( ProxyPass指令中的一个)。 有了这个简单的configuration,大多数情况下工作正常 但我不希望目标网站检测到它正在通过代理访问。 目标网站应该“认为”它是由Apache服务器(代理)直接访问,并且只能通过它。 为什么? 出于某种原因,我不知道,我可以访问终点站点,但无法login,当我使用代理。 终点运行传统的软件,所以更改不是一个选项。 我想终点是做一些检查,或者可能是使用一些导致这个(直接访问导致没有问题)的参数。 我的解决scheme是做一些透明的访问。

Apache,ISPConfig3&https到httpredirectbug

我有一个好奇的问题。 由于我的服务器没有得到SSL证书,我想避免丑陋的“这个网站是不安全的”警告,我决定将httpsredirect到http。 我有我的网站,让我说mywebsite.com 当我做 https://www.mywebsite.com 它redirect到http://mywebsite.com意图,但当我这样做 https://mywebsite.com 我没有redirect,我的浏览器告诉我,该网站是不安全的。 TL; DR: 我想要 https://*mywebsite.com to redirect to http://*mywebsite.com 我有 https://mywebsite.com not redirecting https://www.mywebsite.com redirecting to http://mywebsite.com 这是我的默认-ssl.vhost <IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin webmaster@localhost DocumentRoot / <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias […]

Apache的反向代理 – 使静态内容可达

我有一个Apache Web服务器(反向代理与mod_proxy)在一个Tomcat的Java应用程序的前端。 为了提高性能,我想使用mod_cache和mod_disk_cache来创build静态内容(css,javascript和images)。 我的问题是:我可以在Apache Web服务器中使用mod_headers和mod_expires来修改内容标题,所以它将被caching的Apache? 谢谢

反向代理http到tomcat

我已经configuration了一个Apache服务器与SSL和反向代理到一个tomcat <VirtualHost domain.com:1443> […] ProxyRequests Off ProxyPreserveHost On ProxyPass / http://local.com:8080/ ProxyPassReverse / http://local.com:8080 SSLEngine on […] </VirtualHost> Tomcat正在监听8080.问题是,tomcat上的应用程序正在redirect请求(HTTP 302 Moved temporairly)。 例如,如果我使用URL https:// domain.com:1443/folder,反向代理启动请求http:// local.com:8080/folder,那么应用程序将redirect到“/ subfolder”,所以最终请求是: http : //domain.com : 1443/folder/subfolder 。 结果是一个400错误的请求错误代码,因为请求是在我的SSL端口上的HTTP。 你知道我怎么能解决这个问题? 提前致谢。