用apache反向代理解决单外网ip对应内网多个web主机的问题

转载一个有独立外网IP,需内网服务器对外发布的例子,是应用apache虚拟主机的。

来源地址:http://www.itshantou.com/Servers/web/06/10/44219.html

几年前开始在学校的服务器上建网站,那时学校通过一台自制的路由器(用台双网卡的电脑安装linux系统)上网,这样通过linux中的iptables做nat上网,并同时做80口对内网web服务器的端口映射,这台路由的wan网卡可以得到一个外网的ip地址,通过动态域名解析(如花生壳、希网3322.org)可以建自己的对外服务的网站了。类似的方法有很多,比如现在可以用宽带路由器也可以做端口映射。
但是慢慢出现了一个问题,学校的网络应用增加,比如要做多个网站系统,而一台服务器无法应付多个应用,这时需要用多个服务器分别运行多个web服务,这时外网的一个ip只有一个80口,就无法映射多台内网ip的80口。
最初的解决办法是就外网的其它端口如8080映射到另一台服务器,这样就出现
http://www.mydomain.com对应内网服务器1
http://www.mydomain.com:8080对应内网服务器2
这样基本解决问题,但是对于一般的用户(学生和学生家长)往往不能理解这样的域名,经常会出错
后来通过在网上查找资料和向其它网友学习,找到了一种通过apache反向代理来解决这个问题的方法。
下面是我们的方法
我们的想法是:先按原方法建好域名服务两个域名(www.mydomain1.com、www.mydomain2.com)同时解析指向到外网ip上,在路由器上将80口映射到内网的一台安装apache的服务器(ip地址192.168.2.1)上,由这台apache服务器根据域名分别反向代理到内网的其它两台web服务器(一台linux+apache+mysql+php,ip地址192.168.2.100,另一台2003+iis6+asp+access,ip地址192.168.2.101)的80口上。
两台web服务器的设置没有什么特别的,这里不多说了,主要说说这台反向代理的apache服务器
1、准备软件
redhat 9 三张光盘
网上下载apache 2.2.2 安装包
2、安装redhat
3、安装apache
tar -zvxf httpd-2.2.2.tar.gz
cd httpd-2.2.2
./configure --prefix=/usr/local/apache
--enable-proxy
--enable-rewrite
--enable-proxy-http
编绎时启用mod_proxy、mod_rewrite、mod_proxy_http模块
make
make install
4、配置httpd.conf
加入以下内容
## 公共部分
ProxyRequests Off
KeepaLive On

Order deny,allow
Allow from all

##虚拟主机名 192.168.2.1 是本机ip地址
NameVirtualHost 192.168.2.1

## 虚拟主机1

ServerNamewww.mydomain1.com
   ProxyPass     /     http://www.mydomain1.com/
   ProxyPassReverse /     http://www.mydomain1.com/

## 虚拟主机2

ServerNamewww.mydomain2.com
   ProxyPass     /     http://www.mydomain2.com/
   ProxyPassReverse /     http://www.mydomain2.com/
##对应的web主机如果是iis6,会经常出现Proxy Error,加入以下两条就可以解决
    SetEnvforce-proxy-request-1.0 1
    SetEnvproxy-nokeepalive 1

5、修改/etc/hosts
vi /etc/hosts
##插入以下内容,将域名指向内网web服务器的ip地址
192.168.2.100 www.mydomain1.com
192.168.2.101 www.mydomain2.com

6、启动apache服务
/usr/local/apache/bin/apachectl -k start

7、测试服务器效果,如果正常,将以上apache启动命令加入到/etc/rc.d/rd.local中,使其每次启动自动运行。

如果要增加主机,只要做好以下四件事

1、将新域名解析到外网ip

2、在httpd.conf中增加新虚拟主机

3、在/etc/hosts中增加域名的对应内网ip记录

4、建好新的内网web服务器

本人根据此文章的内容进行了具体实践操作,并记录了实践过程,可移步观看http://blog.csdn.net/xiaohui_blog/article/details/17501123



转载于:https://www.cnblogs.com/coffeebox/p/3717753.html

[转]用apache反向代理解决单外网ip对应内网多个web主机的问题相关推荐

  1. 用apache反向代理解决单外网ip对应内网多个web主机的问题

    用apache反向代理解决单外网ip对应内网多个web主机的问题 转载一个有独立外网IP,需内网服务器对外发布的例子,是应用apache虚拟主机的. 来源地址:http://www.itshantou ...

  2. Apache 2.4.7在CentOS6.4中安装配置反向代理解决单外网IP对应多个内网主机的方法实践

    欢迎转载,转载时请保留全文及出处. Apache 2.4.7在CentOS6.4中安装配置反向代理解决单外网IP对应多个内网主机的方法实践 Apache安装 下载源程序(http://httpd.ap ...

  3. Android 获取本地外网IP、内网IP、计算机名等信息

    一.获取本地外网IP public static String GetNetIp() { URL infoUrl = null; InputStream inStream = null; try { ...

  4. 内网通过外网IP访问内网服务器?

    转自:http://bbs.hh010.com/thread-133589-1-1.html 以下所有内容均针对出口是以太网的情况,对于串口接入,不会出现这种问题. 如图,这个图是本贴的初始图,大圈是 ...

  5. 获取本电脑外网IP和内网IP

    # -*- coding:utf-8 -*- import requests, json, socket"""获取外网IP""" my_ip ...

  6. 浅谈公司网络的外网IP和内网IP

    小型公司,通常会有外网需求,需要联系当地电信运营商开通.运营商提供的线路和设备,到公司机房,一般是一个调制解调器,向外是光纤,对内连公司的路由器,这个路由器就是公司网络和外部网络连接的接口了.运营商分 ...

  7. 全球 IP(外网)和私有 IP(内网)

    全球 IP(外网)和私有 IP(内网) 文章目录 全球 IP(外网)和私有 IP(内网) 全球 IP(外网)和私有 IP(内网)概念 几点需要注意的地方 转载于: 谈谈NAT:什么?全球IP和私有IP ...

  8. 如何从外网穿透到内网

    内网,也叫局域网.从范围上来讲,内网就是小部分的网络.如,最小最简单的内网就是二台电脑用网线连接起来,就是一个内网.一般的特定环境,都是内网,如学校的校园网:公司单位的局域网等.内网IP地址常见的有如 ...

  9. 一张图,三分钟看懂什么是动态IP,内网和外网

    今天在写爬虫的时候碰到封禁IP的问题,顺带了解一下IP相关知识 大家都知道中国是一个IPV4地址严重缺乏的国家,所以我们的拨号宽带一直都是动态IP,没有固定IP,后来更过分的是很多城市出现了内网IP, ...

最新文章

  1. 软件定义光网络-SDON
  2. 博士毕业去哪了?光鲜亮丽的高校教师工资了解下!
  3. java instanceof用法_Java基础高频面试题汇总(1.4W字详细解析)
  4. 函数指针,指针函数,数组指针,指针数组 区分
  5. Disk Quota磁盘配额
  6. mysql query cache
  7. 计算机原理转移指令题,转移指令计算机原理.pdf
  8. Julia : Formatting库的 fmt Base.@sprintf
  9. 十步一拆:iPhone4S拆机十步曲
  10. Ghost xp NetMeeting不能共享桌面的解决办法
  11. 《安富莱嵌入式周报》第246期:2021.12.27--2022.01.02
  12. ipad pro pythonista_这 15 个应用 , 程序员用 iPad 照样可以编程 !
  13. Linux的学习记录。
  14. 米尔基于ARM架构核心板的国产化EtherCAT主站控制器解决方案
  15. 一起来看流星雨剧情简介/剧情介绍/剧情分集介绍第一集
  16. 矩阵理论与方法-若当标准型的求法
  17. python求倒数第二小_Python程序在列表中找到最大,最小,第二大和第二小?
  18. Android 集成Facebook分享功能
  19. Windows 10 l2tp ^PN 无法连接
  20. 不同区域读取NVRAM数据

热门文章

  1. Java版人脸检测详解下篇:开发java应用并做成docker镜像
  2. Vue ElementUI el-dropdown 添加选中icon效果
  3. mysql 3306 不通_3306端口不通,不一定是网络的问题
  4. JS获取字符串的第一个汉字,获取字符串的第一个英文字母,JS 获取第一个字符
  5. js 判断mac地址是否为组播地址
  6. 表观遗传IVD检测专题报告:已认证表观遗传IVD产品介绍
  7. python爬取天气数据山东_Python爬取天气预报数据,并存入到本地EXCEL中-Go语言中文社区...
  8. 嵌入式实操----基于RT1170 使能展频功能(二十七)
  9. 竞赛练一练 第10期:Scratch 小训练,快来打卡!
  10. android开发板配ip,itop4412开发板-Android4.4-设置静态IP