Apache 与 IIS 共用80端口实现 PHP 和 ASP 站点不同域名访问

avatar
avatar
小王先森
385
文章
382
评论
2019年2月28日 评论 513

问题分析

在Windows服务器下, 安装了IIS(站点为ASP源码,域名有 www.aaa.com、www.bbb.com)以及Apache(站点为PHP源码,域名有  www.ccc.com)服务器, 如何使他们一起工作。目前我面对的问题是, 只有一个公网IP地址,要通过不同的端口来访问不同的程序。

系统:windows server 2008 r2
IIS:7.5
Apache:2.4(使用集成环境phpStudy2018)

解决方案

首先将iis与apache停止,更改iis端口为除80以外的端口,例如8080、81、82、83等端口,apache则使用80端口。

1、找到 Apache/conf 下的 httpd.conf  文件,找到这些地方去掉#开启代理模块:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

2、找到 Apache/conf 下的 vhosts.conf 文件, 添加以下的内容:

<VirtualHost *:80>
    DocumentRoot "D:phpStudyPHPTutorialWWW"
    ServerName www.ccc.com
    ServerAlias ccc.com
  <Directory "D:phpStudyPHPTutorialWWW">
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
     Require all granted
  </Directory>
</VirtualHost>

3、找到 Apache/conf/extra 下的 httpd-vhosts.conf 文件,在最后添加如下内容:

NameVirtualHost *:80

<VIRTUALHOST *:80>
    ServerName    www.ccc.com
    DocumentRoot "D:phpStudyPHPTutorialWWW"
</VIRTUALHOST >

<VIRTUALHOST *:80>
    ServerName www.aaaa.com
    ProxyPass / http://www.aaaa.com:82/
    ProxyPassReverse / http://www.aaaa.com:82/
</VIRTUALHOST>

<VIRTUALHOST *:80>
    ServerName www.bbbb.com
    ProxyPass / http://www.bbbb.com:84/
    ProxyPassReverse / http://www.bbbb.com:84/
</VIRTUALHOST>

注意事项

再次修改apache内的文件后需重启apache,再重启iis,这样2个环境的网站都可以使用80端口进行外网访问了。

继续阅读
历史上的今天
二月
28
avatar
  • 本文由 发表于 2019年2月28日
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: