用Apache反向代理设置对外的WWW和文件服务器


Posted in PHP onOctober 09, 2006

简介:一台机器用专线接入Internet作为防火墙,在内部网段上有一台WWW服务器 
(Redhat 6.1,Apache 1.3.9)希望这台机器能对外提供WWW服务器和基于apache 
的文件服务。供外部世界公共访问WWW服务器,或者外地分公司下载需要的文件。 
优点: 内部的WWW服务器和文件服务完全与外部世界隔开,不直接连接到外部,通过 
防火墙上运行的Apache服务提供对内部的代理访问,增强了安全性,同时在 
防火墙上运行的Apache服务运用基于名字的虚拟主机技术,使得防火墙上的 
主页不会被访问到。符合了作为防火墙要求运行服务越少越安全的准则。 

实现方法:在内部网段上的Apache服务器(192.168.11.2)存放的是公司主页,供内部 
和外部用户公共访问,并设置/home/ftp/pub目录为文件存放区域,用 
http://download.yourdomain.com/pub/来访问。 
在防火墙上设置apache反向代理技术,由防火墙代理对内部网段上的访问。 

步骤: 
一. 内部网段上的Apache服务器设置 

apache采用默认配置。主目录为/home/httpd/html,主机域名为 sun.yourdomain.com, 
且别名www.yourdomain.com, 并且设置srm.conf加一行别名定义如下: 
Alias /pub /home/ftp/pub/ 

且更改默认应用程序类型定义如下: 
DefaultType application/octet-stream 

最后在/etc/httpd/conf/access.conf中增加一项定义 

Options Indexes 
AllowOverride AuthConfig 
order allow,deny 
allow from all 

注:Options Indexes允许在找不到index.html文件的情况下允许列出目录/文件列表。 
AllowOverride AuthConfig允许做基本的用户名和口令验证。 
这样的话,你需要在/home/ftp/pub目录下放入.htaccess,内容如下: 
------- 
[root@shopu pub]# more .htaccess 
AuthName Branch Office Public Software Download Area 
AuthType Basic 
AuthUserFile /etc/.usrpasswd 
require valid-user 
------ 
然后用#htpasswd -c /etc/.usrpasswd user1 
分别创建不同的允许访问/pub下文件服务的外部用户名和口令。 

二. 防火墙上反向代理配置: 
加下面的行到/etc/httpd/conf/httpd.conf 

NameVirtualHost 1.2.3.4 

# 1.2.3.4是防火墙外部网卡的互联网上永久IP地址 

servername www.yourdomain.com 
errorlog /var/log/httpd/error_log 
transferlog /var/log/httpd/access_log 
rewriteengine on 
proxyrequests off 
usecanonicalname off 
rewriterule ^/(.*)$ http://192.168.11.2/$1 [P,L] 

servername download.yourdomain.com 
errorlog /var/log/httpd/download/error_log 
transferlog /var/log/httpd/download/access_log 
rewriteengine on 
proxyrequests off 
usecanonicalname off 
rewriterule ^/(.*)$ http://192.168.11.2/$1 [P,L] 

注:设置防火墙上的DNS,让download.yourdomain.comwww.yourdomain.com都指向 
防火墙的外部网卡地址。www.yourdomain.com防问你的公司主页, 用 
http://download.yourdomain.com/pub/...?参募?略厍??/a> 

你需要在内部网段的apache主机上建立目录/var/log/httpd/download/目录,否则会 
出错。另外,你也可以设置防火墙主机上的/home/httpd/html/index.html的属性为 
750

PHP 相关文章推荐
杏林同学录(三)
Oct 09 PHP
基于php 随机数的深入理解
Jun 05 PHP
php打开远程文件的方法和风险及解决方法
Nov 12 PHP
PHP获取服务器端信息的方法
Nov 28 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
Dec 20 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
Mar 01 PHP
浅谈PHP中的错误处理和异常处理
Feb 04 PHP
详解使用php调用微信接口上传永久素材
Apr 11 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
PHP实现的多维数组去重操作示例
Jul 21 PHP
阿里云服务器搭建Php+Apache运行环境的详细过程
May 15 PHP
Mysql的常用命令
Oct 09 #PHP
提升PHP执行速度全攻略
Oct 09 #PHP
Apache设置虚拟WEB
Oct 09 #PHP
PHP&MYSQL服务器配置说明
Oct 09 #PHP
国内php原创论坛
Oct 09 #PHP
强烈推荐:php.ini中文版(2)
Oct 09 #PHP
强烈推荐:php.ini中文版(1)
Oct 09 #PHP
You might like
介绍几个array库的新函数 php
2006/12/29 PHP
完美实现wordpress禁止文章修订和自动保存的方法
2014/11/03 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
浅谈PHP中静态方法和非静态方法的相互调用
2016/10/04 PHP
php正则修正符用法实例详解
2016/12/29 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
DWR Ext 加载数据
2009/03/22 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
2014/05/11 Javascript
js style动态设置table高度
2014/10/21 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
2016/01/12 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
[01:33:07]VGJ.T vs Newbee Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python读写Excel文件方法介绍
2014/11/22 Python
Python脚本暴力破解栅栏密码
2015/10/19 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
2017/05/24 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
车间工艺员岗位职责
2013/12/09 职场文书
事业单位接收函
2014/01/10 职场文书
小学毕业感言150字
2014/02/05 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
世界名著读书笔记
2015/06/25 职场文书
Django如何创作一个简单的最小程序
2021/05/12 Python
RPM包方式安装Oracle21c的方法详解
2021/08/23 Oracle