A-A+

让apache支持.htaccess反向代理网站实现proxy-pass

2015年12月02日 编程技术 暂无评论

相信搜索引擎过来的,一定已经对反向代理有所了解,本文就不做介绍了,请初次涉及的朋友点击这里:反向代理wiki 下面进入正题:

在常见的我们能申请到的apache虚拟主机中都默认支持了.htaccess文件的配置,在这种主机中只需要将.htaccess文件放入网站根目录,在.htaccess文件中写入:

  1. RewriteEngine On  
  2. RewriteBase /  
  3. RewriteRule ^(.*)$ http://xiaohuboke.com/$1 [P]  

其中“http://xiaohuboke.com”为所要代理的目标网站。

但今天我手头上一台VPS中默认并不支持.htaccess文件配置,那么如何启用呢?

首先apache的反向代理,需要模块“mod_proxy”的支持,我们可以通过探针查看:

如果有如上显示,那证明你的apache已经支持proxy代理模块了。接下来还需要一些配置:

编辑文件:vim /etc/httpd/conf/httpd.conf搜索proxy,确认存在如下配置:

  1. LoadModule proxy_module modules/mod_proxy.so  
  2. LoadModule proxy_balancer_module modules/mod_proxy_balancer.so  
  3. LoadModule proxy_ftp_module modules/mod_proxy_ftp.so  
  4. LoadModule proxy_http_module modules/mod_proxy_http.so  
  5. LoadModule proxy_connect_module modules/mod_proxy_connect.so  

然后将:

  1. <Directory />  
  2. Options FollowSymLinks  
  3. AllowOverride None  
  4. </Directory>  
  5.   
  6. //改为:  
  7.   
  8. <Directory />  
  9. Options FollowSymLinks  
  10. AllowOverride All  
  11. </Directory>  

此时重启apache:

#/etc/init.d/httpd restart

确保.htaccess在网站根目录下后就可以访问测试了。

怎么,还不行?那你应该是配置了虚拟主机,配置了虚拟主机的话还需要对虚拟主机配置文件专门设置:

  1. <VirtualHost *:80>  
  2. ………………  
  3. <Directory "/XXXX">  
  4. Options FollowSymLinks IncludesNOEXEC Indexes  
  5. DirectoryIndex index.html  index.php  
  6. AllowOverride all  
  7. Order Deny,Allow  
  8. Allow from all  
  9. ………………  
  10. </Directory>  
  11. ………………  
  12. </VirtualHost>  

以上“/XXXX”为网站绝对路径,比如我的配置:

  1. <VirtualHost *:80>  
  2. ServerName w1.malu.me  
  3. DocumentRoot /var/www/html/w1  
  4. </VirtualHost>  
  5. <VirtualHost *:80>  
  6. <Directory "/var/www/html/w2">  
  7. Options FollowSymLinks IncludesNOEXEC Indexes  
  8. DirectoryIndex index.html index.php  
  9. AllowOverride All  
  10. Order Deny,Allow  
  11. Allow from all  
  12. </Directory>  
  13. ServerName bolg.malu.me  
  14. DocumentRoot /var/www/html/w2  
  15. </VirtualHost>  

把.htaccess文件放在/var/www/html/w2下即可正常实现反向代理。

apache实现反向代理就介绍到这里,接下来到小虎博客再次出现无法访问的时候,就可以更改dns到该主机上,如果再设置个脚本自动切换dns那一台小型CDN就实现啦。

标签:

给我留言