多网站部署到同一台物理服务器,共用80端口的解决方案

多网站部署到同一台物理服务器,共用80端口的解决方案

我们在实际部署网站系统时,都是要绑定到80端口的,这样用户在访问的时候就可以避免在网站域名后带上端口号了,这是部署网站的基本要求。

根据不同的web服务器环境,我们经常要在同一台物理服务器上部署多个站点,很多情况下,甚至需要在同一台物理服务器上同时部署php网站程序,asp网站程序,java+jsp网站程序。

当然可以选择的web服务器很多,例如 apahce,ngnix,iis等等。Iis服务器可以通过配置来支持php等其它各种脚本语言,所以选择什么web服务器并不是重点,因为我们可以通过扩展让我们的web服务器支持其它各种脚本执行环境。

这里主要解决的是在iis 服务器背景下,如何配置多网站共用80端口。我们以两个python 网站程序和一个php网站程序为例来说明。关于如何配置iis让其支持python和php 程序 大家可以关注我的微信服务号:gohi668 了解。

1. 预备

我们首先要准备好经过充分测试的网站程序,这里我有两个python web 程序和一个php web 程序。通过远程桌面连接到阿里云服务器,在服务器的c盘根目录下创建一个文件夹websroot,将我们的两个python web 程序拷贝到该文件夹下:如图中的officalweb和tmart。

多网站部署到同一台物理服务器,共用80端口的解决方案

图1 :python web 网站 目录

登录阿里云控制台-域名 管理模块,按照下图所示配置域名映射:

多网站部署到同一台物理服务器,共用80端口的解决方案

图 2 域名映射配置

其中 47.106.142.160 是我的阿里云服务器的外网ip地址,我的主域名是meimichao.com。

完整的域名是由主机记录+主域名构成的,这样我们就配置了三个域名:booksiss.meimichao.com,tmart.meimichao.com,www.meimichao.com。当我们在cmd 命令行中ping 这三个域名的时候,返回的ip地址都是47.106.142.160。说明三个域名都是指向了我的阿里云服务器。

2. 配置iis 域名绑定

在iis 中新建一个网站,物理路径指向我们在预备工作中图1 中的officalweb,ip 地址选择 “全部未分配”,端口设置成80,主机名处填写我们在预备工作中所配置的域名,我们这里使用www.meimichao.com 这个域名。如图 3.

多网站部署到同一台物理服务器,共用80端口的解决方案


图 3 iis 网站设置

经过这一步的配置以后,当我们在浏览器中输入域名www.meimichao.com的时候,将会打开我们的officalweb这个网站。

按照同样的步骤,配置网站tmart,如图 4.

多网站部署到同一台物理服务器,共用80端口的解决方案

图 4 tmart 网站配置

两个网站都是80端口,他们之间是通过主机名区分的,当我们访问www.meimichao.com的时候,iis会路由到officalweb网站,当我们访问tmart.meimichao.com的时候,iis会将请求路由到tmart 网站。

3. 通过请求转发配置php web网站

前面我们配置的都是同一类型的python web网站,直接在iis里面配置,而且可以共用80端口。但是,如果我们还有一个php网站呢,当然你可以通过扩展iis 支持php来直接在iis 里面配置php网站,同样可以让php web网站和python web 网站一样共用80端口,具体配置方法可以关注微信服务号:gohi6668 详细了解。

我们这里教大家另外一种方法。

因为大部分的同学习惯使用wamp,lamp或者phpnow这样的套件来运行php网站,所以我们这里来看看如何将运行在这些环境的php web 程序和 iis 共用80端口,换句话说,也就是如何在一个已经配置了多个iis 80 端口 网站的服务器上,再部署一个运行在wamp,lamp或者phpnow环境中的php web 网站,而且同样可以直接通过80端口访问。

我们以phpnow 为例。

首先下载phpnow 1.5.6 上传到服务器,直接解压。得到如图5的目录结构。

多网站部署到同一台物理服务器,共用80端口的解决方案

图 5 phpnow 解压后的目录结构

将我们的php web程序上传到图 5 中的 htdocs 目录下。

然后打开服务器上的命令行窗口,进入到如图6 所示的目录,执行 Setup.Cmd,如图 6.

多网站部署到同一台物理服务器,共用80端口的解决方案

默认开启phpnow的配置过程,按照提示选择配置项,建议一直敲回车,保留默认配置的取值即可。

完成以后,我们就可以实现在同一台物理服务器上同时运行多个不同后台脚本语言的web 网站了,而且所有的这些网站都是共用了80端口,这样我们的用户就可以直接在浏览器中输入域名访问,不需要带端口号了。

下面是我配置的三个网站,大家可以看到这三个网站都位于同一个一级域名下,而且共用了80端口。

多网站部署到同一台物理服务器,共用80端口的解决方案

图 6 网站1

多网站部署到同一台物理服务器,共用80端口的解决方案

图 7 网站2

多网站部署到同一台物理服务器,共用80端口的解决方案

图 8 网站 3

大家在具体配置过程中遇到什么技术问题,或者需要开发微信方面的系统或应用,都可以联系我们 wx:walkingman_c。

分享至朋友圈



阅读 10604
5784