nginx虚拟主机配置实战
1,虚拟主机概念和类型介绍
所谓虚拟主机,在web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立地对外提供服务供用户访问。
这个这个独立的站点在配置里是由一定格式的标签段标记,对于apache软件来说,一个虚拟主机的标签段通畅被包含在<VirtualHost></VirtualHost>内,而nginx软件则使用一个server{}标签来标示一个虚拟主机,一个web服务里可以有多个虚拟主机主机标签对,即同时可以支持多个虚拟主机站点。
2,虚拟主机类型
常见的虚拟主机类型有如下几种
2.1 基于域名的虚拟主机
所谓基于域名的虚拟主机,意思就是通过不同的域名区分不通的虚拟主机,基于域名的虚拟主机是企业应用最广的虚拟主机类型,几乎所有对外提供服务的网站都是使用基于域名的虚拟主机,例如:www.etiantian.org
2.2 基于端口的虚拟主机
同理,所谓基于端口的虚拟主机,意思就是通过不同的端口来区分不同的虚拟主机。此类虚拟主机对应的企业应用主要为公司内部的网站,例如:一些不希望直接对外提供用户访问的网站后台等,访问基于端口的虚拟主机地址里要带有端口,例如:http://www.etiantian.org:9000
2.3 基于IP的虚拟主机
同理,所谓基于IP的虚拟主机,意思就是通过不同的IP区分不同的虚拟主机,此类虚拟主机对应的企业应用非常少见,一般不同业务需要使用多IP的常见都会在负载均衡器上进行VIP绑定,而不是在Web上通过绑定IP区分不同的虚拟机。
三种虚拟主机类型均可独立使用,也可以互相混合一起使用。 把基于域名的虚拟主机类型是重点。
3,基于域名的虚拟主机配置实战
1
2
|
[root@web01 conf]
# pwd
/application/nginx/conf
|
1
|
[root@web01 conf]
# vim nginx.conf 原来的nginx.conf
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
1 worker_processes 1;
2 events {
3 worker_connections 1024;
4 }
5 http {
6 include mime.types;
7 default_type application
/octet-stream
;
8 sendfile on;
9 keepalive_timeout 65;
10 server {
11 listen 80;
12 server_name www.etiantian.org;
13 location / {
14 root html;
15 index index.html index.htm;
16 }
17 error_page 500 502 503 504
/50x
.html;
18 location =
/50x
.html {
19 root html;
20 }
21 }
22 }
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
[root@web01 conf]
# vim nginx.conf #增加后的虚拟主机配置文件
3 worker_connections 1024;
4 }
5 http {
6 include mime.types;
7 default_type application
/octet-stream
;
8 sendfile on;
9 keepalive_timeout 65;
10 server {
11 listen 80;
12 server_name ;
#基于域名的虚拟主机
13 location / {
14 root html
/www
;
#域名www.etiantian.org对应自己的www站点
15 index index.html index.htm;
#首页文件名字,和下面的bbs站点不在一个路径中
16 }
17 }
18 server {
19 listen 80;
20 server_name bbs.etiantian.org;
#基于域名的虚拟主机
21 location / {
22 root html
/bbs
;
#域名bbs.etiantian.org对应自己的bbs站点
23 index index.html index.htm;
#首页文件名字,和上面的www站点不在同一个路径
24 }
25 }
26 }
27 }
|
1
2
3
|
[root@web01 conf]
# mkdir ../html/{www,bbs} -p
[root@web01 conf]
# echo "www" >../html/www/index.html
[root@web01 conf]
# echo "bbs" >../html/bbs/index.html
|