如何让IIS6与Apache共用80端口(IP不同)?头大,按网上的试了httpcfg还是不行

cuixiping 2008-04-02 12:09:56
如何让IIS6与Apache共用80端口(IP不同)?头大,按网上的试了httpcfg还是不行

我IIS中使用IP为127.0.0.1~127.0.0.10 (IIS上有10个站点)
Apache中用IP为127.0.0.11~127.0.0.20 (也是10个站点)
IP不重复,但是他们不能共用80端口,IIS运行中则Apache不能启动,Apache运行则IIS不能启动。
我的目标是都能使用80端口。
.

我自己机子的环境: Win2003 Server 、IIS6.0 、Apache 2.2

网上搜的一个比较普遍的方法:

  IIS6,多IP下共存,IIS为192.168.0.1,apache为192.168.0.2
  到2003的CD下的 support/tools/Support.cab。解压出httpcfg.exe文件,COPY到windows/system32/目录下,用法自己看帮助 
  命令行,绑定到某IP: httpcfg set iplisten -i 192.168.0.1
  即命令使用IIS的只监听指定的IP及端口 
  查看绑定: httpcfg query iplisten  
  删除绑定: httpcfg delete iplisten -i 192.168.0.1
  命令行
  net stop Apache2
  net stop iisadmin /y
  net START Apache2
  net START w3svc
  保证iis下的ip设置为全局默认,Apache中httpconf设置listen 192.168.0.2:80,就应该可以两个服务同时运行,相互不冲突了。


这个方法我也试过了,但是不奏效,二者还是只能同时有一个跑80端口。
...全文
883 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
有点难度哦
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
没遇到过这种情况.
西瓜桃 2008-04-20
  • 打赏
  • 举报
回复
ls
的太强了,偶还是没太看明白啊,请问如何ls的应该如何设置吧,或者用什么软件如何做把,看原理头都大了,谢谢ls的啊
xdspower 2008-04-20
  • 打赏
  • 举报
回复
ls的,你要理解这个就去找相应的资料看啊,比如apache的手册
xdspower 2008-04-14
  • 打赏
  • 举报
回复
其实反向代理就是内部服务的一种映射机制:
比如外面一个请求是想访问你apache服务软件在你主机上8080端口提供的web服务内容,但因为你想用户在请求时不输入8080端口,还是用80端口(因为这个是“有名/著名"端口,可以省略),又因为80端口实际是由IIS负责监听的,这样,你需要在IIS中设置一些机制(能力):
1.可以识别出一个请求实际是要访问IIS直接提供的服务内容,还是想访问8080端口由apache服务提供的服务内容
2.如何把前面1的请求,特别是对8080端口的请求提交给apache服务器,从中代客户获取数据,并在80端口返回给实际客户
对于1.一般有两种方案:
a.目录映射:就是8080的apache提供的服务实际对应IIS的80端口服务中的一个虚拟目录,比如用http://xxx.xxx.xxx/abc/XXX 来访问,则IIS服务器分析请求中有abc目录,则把请求内容XXX转发给在8080端口的apache服务,并且把apache的服务返回数据传递给实际客户端
b.虚拟主机映射(域名或者IP主机头地址映射):实际就是IIS在80端口监听所有本机IP地址的访问,根http://xxx.xxx.xxx/中的xxx.xxx.xxx信息情况把其中的一些转发给8080端口的apache服务,并把其返回数据传递给实际客户端。

a b 两种方法没有实质的区别,只是对请求分辨具体服务的方式不同,但这其中作为主监听端(web服务端)的IIS主要有这样的一些作用
其一:全面监听本机所有IP和域名上的80端口
其二:在客户端和具体服务端搭建一个透明的通道
而其中具体服务端在那个端口提供实际服务是不重要的(即前面的8080端口也可能是其他端口),重要的是这些端口都是实际有效的http服务端口

由于其是对内部服务进行透明代理处理,所以又叫做反向代理

此外反向代理其实也可以不是直接的web服务器软件,而是只需要能够提供这样运行机制的软件就可以了,比如有软件A能提供这样的支持,则你可以把IIS服务在P1端口提供服务,而apache在P2提供支持,另外的http服务软件在P3提供服务,这样只需要在A中制定3条对应规则后,所有访问就可以规范为 http://xxxx.xxxx.xxxx/XXX 的形式,而不出现端口号了。
cuixiping 2008-04-14
  • 打赏
  • 举报
回复
谢谢xdspower,我试试。
为什么非要使用80端口,是因为不想在网址中看到不顺眼的<:PORT>
"采用反向代理把真实的,运行在不同端口上的正确服务发布出去" ------ 这个我不大理解是什么弄?
xdspower 2008-04-08
  • 打赏
  • 举报
回复
127.0.0.1
一般情况下表示本机,而一般http server不专门配置,就会有一个对127.0.0.1还要localhost的默认监听服务,而且一般都是监听80,这样就造成了端口冲突,因而不能正常使用了。
其实你的要求有多种方法实现,我想比较常见到是以一个server(比如apache2)作主要服务,监听所有IP的80端口,在ip或者域名虚拟主机配置中,采用反向代理把真实的,运行在不同端口上的正确服务发布出去。这样的方法是相对比较稳定的方法。
Unending 2008-04-02
  • 打赏
  • 举报
回复
127.0.0.1在作祟
cuixiping 2008-04-02
  • 打赏
  • 举报
回复
127.0.0.1能有什么问题
cuixiping 2008-04-02
  • 打赏
  • 举报
回复
Unending ,能说得详细点儿吗?

24,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧