用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 相关文章推荐
PHP初学者头疼问题总结
Oct 09 PHP
php5 图片验证码实现代码
Dec 11 PHP
PHP编码规范之注释和文件结构说明
Jul 09 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
Aug 21 PHP
Laravel 5框架学习之路由、控制器和视图简介
Apr 07 PHP
PHP中生成UUID自定义函数分享
Jun 10 PHP
android上传图片到PHP的过程详解
Aug 03 PHP
PHP通过引用传递参数用法分析
Dec 01 PHP
PHP高精确度运算BC函数库实例详解
Aug 15 PHP
laravel实现简单用户权限的示例代码
May 28 PHP
laravel http 自定义公共验证和响应的方法
Sep 29 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 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
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
基于jQuery的左右滚动实现代码
2010/12/03 Javascript
为原生js Array增加each方法
2012/04/07 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
jQuery鼠标移动图片上实现放大效果
2017/06/25 jQuery
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
js实现带积分弹球小游戏
2020/07/21 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
用实例分析Python中method的参数传递过程
2015/04/02 Python
python查看模块,对象的函数方法
2018/10/16 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
2020/02/03 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
linux面试题参考答案(9)
2015/01/07 面试题
建筑施工实习自我鉴定
2013/09/19 职场文书
生物科学专业个人求职信范文
2013/12/07 职场文书
大学活动策划书范文
2014/01/10 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
给朋友的赠语
2015/06/23 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis
Python识别花卉种类鉴定网络热门植物并自动整理分类
2022/04/08 Python