iis和apache共享80端口

 Windows server 2003服务器上安装有默认 IIS 6和Apache两个服务器,IIS运行的一个.net程序,apache运行php程序,现在想让它们同时都能通过80端口访问,设置起来还比较简单。

  IIS的.net程序假设绑定81端口,主机名:www.a.com

  apache的php程序绑定80端口,主机名:www.b.com

然后假设apache服务器已经安装完成,打开httpd.conf配置文件,找到这些地方去掉#开启代理模块:

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

  还有确保这里也取消了注释:

1
Include conf/extra/httpd-vhost.conf

然后打开apache/conf/extra目录里面的httpd-vhosts.conf文件,在最后添加如下内容:

1
2
3
4
5
6
7
8
9
10
NameVirtualHost *:80
<VIRTUALHOST *:80>
    ServerName    www.b.com
    DocumentRoot "D:/web/php站点目录"
</VIRTUALHOST >
<VIRTUALHOST *:80>
    ServerName www.a.com
    ProxyPass / http://www.a.com:81/
    ProxyPassReverse / http://www.a.com:81/
</VIRTUALHOST>

打开文件 C:WindowsSystem32Driversetchosts   

在最后面添加

127.0.0.1 localhost
127.0.0.1 www.a.com

127.0.0.1 www.b.com

  

最后把两个服务器都重启一下,同时打开www.a.com和www.b.com都能正常访问了。

注意 :在启动apache的时候,可能会报错,原因是80端口被占用了 ,我的做法是查看所有的IIS网站,发现都没有使用80端口,干脆将整个IIS都暂停了,也还是报错

方法/步骤

 
  1.  

     依次点击:开始-运行

    80端口的烦恼:[2]查看80端口是否被占用
  2.  

    在运行输入框中,输入cmd,然后点确定

    80端口的烦恼:[2]查看80端口是否被占用
  3.  

    在弹出的dos输入框中输入netstat -nao,并回车

    80端口的烦恼:[2]查看80端口是否被占用
  4.  

    可以看到刷屏,找到80端口,看到该端口已经打开了,并且被编号为3448的进程占用;如果没有打开,请查阅系列文章《80端口的烦恼——防火墙打开80端口》进行打开

    80端口的烦恼:[2]查看80端口是否被占用
  5.  

    现在就来看看是哪个进程占用了80端口,在任务栏中右键点击选择任务管理器,进入如下画面;点击菜单:查看-选择列

    80端口的烦恼:[2]查看80端口是否被占用
  6.  

    确定第一个选项PID是被选中的,然后点确定

    80端口的烦恼:[2]查看80端口是否被占用
  7.  

    在进程标签页中找到编号为3448的进程(编号上面获取的编号一致);可以看到Apache占用;如果该进程不是你所希望的进程,那么可以去相应程序修改相应端口号(如被下载软件占用,则去相应的下载软件中修改端口号,以释放80端口)

  8.  

    最后我查出来是system占用了,千万别手残终止,否则整个电脑会崩溃,最后排查出来是安装了sqlserver20008后 SQL Server Reporting Services 占用80

原文地址:https://www.cnblogs.com/zhuxiaohui/p/7423343.html