Articles of Apache的2.2

如何在apache2中添加应用程序上下文

比方说,我有一个ServerName指令的虚拟主机,如下所示: ServerName geekspeak.dev 在我的主机文件中: 127.0.1.1 geekspeak.dev 现在,当我在浏览器中inputgeekspeak.dev时,我被引导到在本地主机上运行的应用程序。 简单。 但是,如果不是geekspeak.dev ,我想要求用户inputgeekspeak.dev/foo来到我的应用程序。 有没有一个Apache指令或其他技术,可以让我做到这一点? 谢谢! 编辑 我试图添加一个空的DocumentRoot和一个Alias ,但我没有成功。 我想知道它是否代理代理事实与它有什么关系? 我在下面粘贴了我的虚拟主机,也许有人可以看到它有什么问题。 <VirtualHost *:80> ServerName geekspeak.dev DocumentRoot /var/www/foo Alias /foo /var/www/foo ProxyPreserveHost On ProxyPass /excluded ! ProxyPass / http://127.0.0.1:9000/ ProxyPassReverse / http://127.0.0.1:9000/ </VirtualHost> 我期待这个到/我的应用程序,而是它到达我/foo我的应用程序

apache转发代理可以被虚拟主机或.htaccess限制吗?

我有一个VPS,并希望使用转发代理设置,以便我可以似乎从我的VPS IP地址,而不是我的客户端地址浏览。 如果我在httpd.config中设置了一个代理指令,如下所示: <IfModule proxy_module> <IfModule proxy_http_module> ProxyRequests On ProxyVia On <Proxy *> Order Deny,Allow Deny from all Allow from (**client ip address**) </Proxy> </IfModule> </IfModule> …我想这只会让我的客户端IP地址使用代理,但也会阻止世界其他地方从我的服务器访问网页。 有没有办法将所有这些放到虚拟主机或.htaccess指令中,以便代理只在通过特定的URL访问时“踢进”?

如果模块itk.c被忽略,即使我正在运行Apache itk

我正在运行它作为Apache MPM。 为了防止在将来需要更换MPM的情况下的错误,我设置了 <IfModule itk.c> AssignUserID user group </IfModule> 但是我发现它被忽略了。 事实上,如果我添加一个WTF类似的并运行rcapache2 configtest它返回我Syntax OK <IfModule itk.c> AssignUserID user group WTF ##doesn't throw error </IfModule> 顺便说一句, /etc/sysconfig/apache2显示APACHE_MPM="itk" 如何检查我是否在运行? 编辑:如果我删除ifmodule然后重新启动我得到 Invalid command 'WTF', perhaps misspelled or defined by a module not included in the server configuration

现场听取港口88

我想让我的一个网站收听88端口。 在ubuntu服务器上的/ etc / apache2的ports.conf中,我添加了这样的web应用程序可以监听端口88: NameVirtualHost *:80 Listen 80 NameVirtualHost *:88 Listen 88 我有这个在我的etc / apache2 / apache2.conf,我有这个: # Include the virtual host configurations: Include sites-enabled/ 在启用的网站下,我有一个文件如下所示: Listen *:88 NameVirtualHost *:88 <VirtualHost *:88> ServerName dogtracking.com DocumentRoot /home/doggps/public_html/eaglegps.com/current/public <Directory /home/doggps/public_html/eaglegps.com/current/public> AllowOverride all Options -MultiViews </Directory> <LocationMatch "^/assets/.*$"> Header unset ETag FileETag None # RFC says only […]

Apache将别名redirect到不同的域

我以前有同一台服务器上的Web和邮件,并为我的每个虚拟主机/域,我可以访问example.com/mail或foo.com/mail ,这将显示所有虚拟主机上的Roundcube Webmail。 例如Alias /mail "/usr/share/apache2/roundcub/" 虽然现在我已经将邮件服务器移到了一个完全不同的服务器上,并且现在有一个用于主域的SSL。 https://mail.example.com ,它现在是所有虚拟主机/域的Roundcube的新位置。 问题 :是否有可能将所有的“/ mail”别名从Web服务器redirect到新的URL?

多个目录的Apacheauthentication

我有网站运行在Apache 2.2.3。 网站的根目录包含三个目录。 我想如下设置这些目录的身份validation 只有用户1可以浏览所有页面 user2只能访问mydomain.com/dir1/ user3只能访问mydomain.com/dir2/ user4只能访问mydomain.com/dir3/ 我已经尝试下面的configuration,但只有user1可以浏览网站其他用户无法访问网站。 <directory /var/www/html/example> AuthUserFile /etc/httpd/user1-htpasswd AuthName "Resricted" AuthType Basic Require user user1 </directory> <directory /var/www/html/example/dir1/> AuthUserFile /etc/httpd/user2-htpasswd AuthName "Resricted" AuthType Basic Require user user2 </directory> <directory /var/www/html/example/dir2/> AuthUserFile /etc/httpd/user3-htpasswd AuthName "Resricted" AuthType Basic Require user user3 </directory> 请引导我一样。 提前致谢。

在Apache日志文件中,为什么我看到\ xef \ xbf \?

在Apache错误日志中,我看到很多像这样的请求。 这些要求似乎来自中国。 文件不存在:C:/ site / htdocs / analysis \ xef \ xbf \ xbd \ xef \ xbf \ xbd,referer: http ://wo.iuni.com.cn/card/?p = zfau2mj48AVTKFeWO8mnePcdq7zl + Q4 + tPCaeoKR2reaA9jgJO0XdeO / EjyUl2rPl2Nye8qPK2kkuuwEO6GS4WxUvSp39KwXlY + zt64GNVUTUo8p1Z0HTPbk / NjFDYSDff3pIfHIIKRSQIvX / TTvl / g4IQLoLV4kpC0tIsuX / y1x9xec0L39H + v1VIYa7etp 如何翻译\ xef \ xbf …来理解为什么会发生这种情况?

阻止Apache执行shell脚本

我发现一些shell脚本被上传到Wordpress插件目录(插件声誉良好)之后由apache执行。 顶部-c 25821 www-data 20 0 99108 1268 996 S 779 0.1 105:27.72 ../mine.32 –url=http://vibehacks.net/ –userpass=HI:FRIEND ps -aufx | grep mine.32 www-data 25819 0.0 0.0 2236 540 ? S 22:01 0:00 | \_ sh -c nohup ../mine.64 –url=http://vibehacks.net/ –userpass=HI:FRIEND >./mine.log 2>&1; nohup ../mine.32 –url=http://vibehacks.net/ –userpass=HI:FRIEND >./mine.log 2>&1 www-data 25821 490 0.1 99108 1268 ? Sl […]

D状态下的apache进程太多了

请看下面的截图。 D(磁盘睡眠)状态下的apache进程数量太多,RAM的使用率非常高。 有没有办法知道是什么导致这些进程停留在D状态,并吃了这么多的记忆?

你如何使用Apache的SetEnvIf cookie值?

我试图控制基于Cookie值的Apache,但我似乎无法得到SetEnvIf与HTTP_COOKIE工作。 我已经把这个简单的逻辑来解决问题,并容易testing。 Ubuntu 12.04.1 LTS上的Apache 2.2.22。 我使用的是: Header set Set-Cookie "cookie1=1" SetEnvIf HTTP_COOKIE "cookie1=1" is_cookie1 Header set Set-Cookie "cookie2=2" env=is_cookie1 使用Chrome的资源标签,我正在检查页面的Cookie。 我期望看到的是: 首页加载, cookie1=1存在 第二次(和后续)页面加载,存在cookie1=1和cookie2=2 。 相反,我所得到的只是cookie1 : 如果我添加该行: SetEnvIf Remote_Addr ^192\.168\. is_cookie1 然后cookie2立即设置,如我所料,所以最后的Header … env=is_cookie1线似乎是罚款。 我也尝试validationHTTP_COOKIE是否正确设置: RewriteRule ^/test/$ /test/%{HTTP_COOKIE} [R=302,L] 现在去/test/立即redirect到/test/cookie1=1%3b%20cookie2=2因为我期待,所以HTTP_COOKIE似乎设置正确。 我也尝试了一堆SetEnvIf的变化,似乎没有任何工作: SetEnvIf HTTP_COOKIE "^cookie1=1$" is_cookie1 SetEnvIf HTTP_COOKIE ^cookie1=1$ is_cookie1 SetEnvIf HTTP_COOKIE "^.+$" is_cookie1 […]