A-A+
让apache支持.htaccess反向代理网站实现proxy-pass
相信搜索引擎过来的,一定已经对反向代理有所了解,本文就不做介绍了,请初次涉及的朋友点击这里:反向代理wiki 下面进入正题:
在常见的我们能申请到的apache虚拟主机中都默认支持了.htaccess文件的配置,在这种主机中只需要将.htaccess文件放入网站根目录,在.htaccess文件中写入:
- RewriteEngine On
- RewriteBase /
- RewriteRule ^(.*)$ http://xiaohuboke.com/$1 [P]
其中“http://xiaohuboke.com”为所要代理的目标网站。
但今天我手头上一台VPS中默认并不支持.htaccess文件配置,那么如何启用呢?
首先apache的反向代理,需要模块“mod_proxy”的支持,我们可以通过探针查看:
如果有如上显示,那证明你的apache已经支持proxy代理模块了。接下来还需要一些配置:
编辑文件:vim /etc/httpd/conf/httpd.conf搜索proxy,确认存在如下配置:
- LoadModule proxy_module modules/mod_proxy.so
- LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
- LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
- LoadModule proxy_http_module modules/mod_proxy_http.so
- LoadModule proxy_connect_module modules/mod_proxy_connect.so
然后将:
- <Directory />
- Options FollowSymLinks
- AllowOverride None
- </Directory>
- //改为:
- <Directory />
- Options FollowSymLinks
- AllowOverride All
- </Directory>
此时重启apache:
#/etc/init.d/httpd restart
确保.htaccess在网站根目录下后就可以访问测试了。
怎么,还不行?那你应该是配置了虚拟主机,配置了虚拟主机的话还需要对虚拟主机配置文件专门设置:
- <VirtualHost *:80>
- ………………
- <Directory "/XXXX">
- Options FollowSymLinks IncludesNOEXEC Indexes
- DirectoryIndex index.html index.php
- AllowOverride all
- Order Deny,Allow
- Allow from all
- ………………
- </Directory>
- ………………
- </VirtualHost>
以上“/XXXX”为网站绝对路径,比如我的配置:
- <VirtualHost *:80>
- ServerName w1.malu.me
- DocumentRoot /var/www/html/w1
- </VirtualHost>
- <VirtualHost *:80>
- <Directory "/var/www/html/w2">
- Options FollowSymLinks IncludesNOEXEC Indexes
- DirectoryIndex index.html index.php
- AllowOverride All
- Order Deny,Allow
- Allow from all
- </Directory>
- ServerName bolg.malu.me
- DocumentRoot /var/www/html/w2
- </VirtualHost>
把.htaccess文件放在/var/www/html/w2下即可正常实现反向代理。
apache实现反向代理就介绍到这里,接下来到小虎博客再次出现无法访问的时候,就可以更改dns到该主机上,如果再设置个脚本自动切换dns那一台小型CDN就实现啦。