IIS如何设置一台服务器建多个网站

IIS如何设置一台服务器建多个网站,第1张

一个IP建多个Web站点

TCP端口法

由于各种原因,我们有时候需要在一个IP地址上建立多个web站点,在IIS5中,我们可能通过简单的设

置达到这个目标。

在IIS中,每个 Web 站点都具有唯一的、由三个部分组成的标识,用来接收和响应请求:

(1) IP地址

(2) 端口号

(3) 主机头名

在IIS中,在一个IP地址上建立多个独立的web站点,通常有两种方法,本文以以例子的形式介绍TCP端

口法。

环境:假设深圳市某某公司的内部网由一台win2000服务器和几十台工作站组成,这个内部网的网段

是192.168.1.0/24,服务器的地址是192.168.1.10,名称是myserver。在这台服务器已经安装了Internet

服务,即IIS 5。沧海公司有A,B,C三个部门,分别在8086,8087,8088三个房间办公。现在公司要求网络

管理员在服务器上使用一个IP为公司和三个部分别建立一个网站,即要建立四个网站。

通过使用附加端口号,站点只需一个 IP 地址即可维护多个站点。客户要访问站点时,需在静态IP地

址后面附加端口号(默认 Web 站点除外,它使用端口 80)。

具体操作如下:

1、在win2000服务器上为公司和三个部门在硬盘上建立文件夹,做为WEB站点主目录。如下:

WEB站点主目录WEB站点

d:\web\com 公司网站

d :\web\a A部门网站

d:\web\b B部门网站

d:\web\c C部门网站

2、使用WEB站点管理向导,分别为公司和三个部门建立四个WEB站点,四者最大的不同是使用了不同的

TCP端口:

公司站点 A部门站点 B部门站点 C部门站点

IP地址 192.168.1.10

TCP端口 80 8086 8087 8088

权限 读取和运行脚本

站点主目录 d:\web\com d:\web\a d:\web\b d:\web\c

这样,客户端就可以通过:

http://192.168.1.10 访问公司站点。

http://192.168.1.10:8086 访问A部门站点

http://192.168.1.10:8087 访问B部门站点

http://192.168.1.10:8088 访问C部门站点

这种方法建立的WEB站点使用非默认端口的网站具有相对的隐蔽性,但此方法维护多个站点要求客户

在端口号前键入实际的数字 IP 地址。不能使用主机名和“友好名称”。

方法二、主机头名法

由于各种原因,我们有时候需要在一个IP地址上建立多个web站点,在IIS5中,我们可能通过简单的

设置达到这个目标。

在IIS中,每个 Web 站点都具有唯一的、由三个部分组成的标识,用来接收和响应请求:

(1) IP地址

(2)端口号

(3)主机头名。

在IIS中,在一个IP地址上建立多个独立的web站点,通常有两种方法,本文以以例子的形式介绍主

机头法,使用这种方法可以建立起专业的虚拟主机。

环境:假设深圳市某某公司用一台win2000服务器提供虚拟主机服务,地址是192.168.1.10。在这台

服务器已经安装了Internet服务即IIS 5。

现在公司要求网络管理员在服务器上使用一个IP为ABCD四个公司建立独立的网站,每个网站拥有自己独

立的域名。四家网站域名分别为: www.a.com , www.b.com , www.c.com 和 www.d.com 。

通过使用主机头,站点只需一个 IP 地址即可维护多个站点。客户可以使用不同的域名访问各自的站点,

根本感觉不到这些站点在同一主机上。

具体操作如下:

1、在win2000服务器为四家公司建立文件夹,做为WEB站点主目录。如下: WEB站点主目录 WEB站点

d:\web\a A公司网站

d:\web\b B公司网站

d:\web\c C公司网站

d:\web\d D公司网站

2、使用WEB站点管理向导,分别四家公司建立独立的WEB站点,四者最大的不同是使用了不同的主机头名:

A公司站点 B公司站点 C公司站点 D公司站点

IP地址 192.168.1.10

TCP端口 80

权限 读取和运行脚本

主机头名 www.a.com www.b.com www.c.com www.d.com

站点主目录 d:\web\a d:\web\b d:\web\c d:\web\d

在DNS中将这四个域名注册上,均指向同一地址:192.168.1.10。这样,客户端就可以通过:

http://www.a.com 访问A公司站点。

http://www.b.com 访问B公司站点。

http://www.c.com 访问C公司站点。

http://www.d.com 访问D公司站点。

3、每个站点的主机头名可以在WEB站点建立向导中设置,它与站点的IP地址,TCP端口在同一屏上。也可能 (DNS)

通过该站点->"属性"->"WEB站点"标签->选IP地址右边的"高级"按钮,跳出"高级多WEB站点配置"进行配置。

这种方法建立可以建立专业的虚拟主机,几乎所有使用IIS提供虚拟主机的公司都这样做的。

最近数次遇到这种情况:硬件资源有限,但有些开发配置要求比较严苛(如在微信公众号进行接口配置或安全域名配置),要求80端口甚至顶级域名。但服务器的80端口早就被之前的已经上线的应用占掉了。

因此做了一些尝试,最终解决了访问问题。

域名都解析到该服务器的IP下,通过Nginx区分主机头,从而决定请求访问到哪个应用。

相当于门卫将不同的来者领到不同的房间。

最终通过对Nginx的配置实现了需求。

目前用着没啥问题,但 优劣还待考证。

指向第二个应用的本机地址。

附上原有的第一个应用的upstream。

注意本例中,要新添加的解析二级域mysite.mydomain.com

再给conf添加如下1个server:

添加后,有2个server,一个用来匹配 www.me.com ,一个用来匹配 mysite.mydomain.com 。

附上原有的另一个server:

upstream和server都在conf中加好后,使用如下命令测试一下配置文件是否可用。以我自己的为例:

通过后,再重启nginx。

先检查一下原有的域名访问是否一如既往。

注意测试前可清除一下DNS缓存。

如果是Mac系统,使用如下命令:

在域名商(域名在哪家买的就去哪家)处,增加新域名(二级域名)的A记录解析到该IP。

一般的服务器,解析后即可生效,不需要在空间商处做额外的动作。

但如果域名商为西部数据且空间是国内要备案的那种空间,则需要:

清除一下DNS缓存。

如果是Mac系统,使用如下命令:

然后使用nslookup看一下你的两个域名是否已经指向了你这台服务器的IP。

之后就通过不同域名访问,看看是否导向了不同的应用即可。

~ END ~

受益于如下这些文章:

这里以配置2个站点(2个域名)为例,n 个站点可以相应增加调整,假设:

IP地址: *.*.*.*

域名1 example1.com 放在 /www/example1

域名2 example2.com 放在 /www/example2

配置 nginx virtual hosting 的基本思路和步骤如下:

把2个站点 example1.com, example2.com 放到 nginx 可以访问的目录 /www/

给每个站点分别创建一个 nginx 配置文件 example1.com.conf,example2.com.conf, 并把配置文件放到 /etc/nginx/vhosts/

然后在 /etc/nginx.conf 里面加一句 include 把步骤2创建的配置文件全部包含进来(用 * 号)

重启 nginx

具体过程

下面是具体的配置过程:

1、在 /etc/nginx 下创建 vhosts 目录

mkdir /etc/nginx/vhosts

2、在 /etc/nginx/vhosts/ 里创建一个名字为 example1.com.conf 的文件,把以下内容拷进去

server {

listen 80

server_name example1.com www. example1.com

access_log /www/access_ example1.log main

location / {

root /www/example1.com

index index.php index.html index.htm

}

error_page 500 502 503 504 /50x.html

location = /50x.html {

root /usr/share/nginx/html

}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000

fastcgi_index index.php

fastcgi_param SCRIPT_FILENAME /www/example1.com/$fastcgi_script_name

includefastcgi_params

}

location ~ /\.ht {

deny all

}

}

3、在 /etc/nginx/vhosts/ 里创建一个名字为 example2.com.conf 的文件,把以下内容拷进去

server {

listen 80

server_name example2.com www. example2.com

access_log /www/access_ example1.log main

location / {

root /www/example2.com

index index.php index.html index.htm

}

error_page 500 502 503 504 /50x.html

location = /50x.html {

root /usr/share/nginx/html

}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000

fastcgi_index index.php

fastcgi_param SCRIPT_FILENAME /www/example2.com/$fastcgi_script_name

includefastcgi_params

}

location ~ /\.ht {

deny all

}

}

4、打开 /etc/nginix.conf 文件,在相应位置加入 include 把以上2个文件包含进来

user nginx

worker_processes 1

# main server error log

error_log /var/log/nginx/error.log

pid /var/run/nginx.pid

events {

worker_connections 1024

}

# main server config

http {

include mime.types

default_type application/octet-stream

log_format main '$remote_addr - $remote_user [$time_local] $request '

'"$status" $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"'

sendfileon

#tcp_nopush on

#keepalive_timeout 0

keepalive_timeout 65

gzip on

server {

listen 80

server_name _

access_log /var/log/nginx/access.log main

server_name_in_redirect off

location / {

root /usr/share/nginx/html

index index.html

}

}

# 包含所有的虚拟主机的配置文件

include /usr/local/etc/nginx/vhosts/*

}

5、重启 Nginx

/etc/init.d/nginx restart


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/250990.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存