Linux系统架构----nginx上构建虚拟主机
一、构建虚拟主机概述
- 利用虚拟主机,不用为每个运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程,虚拟主机提供了在同一台服务器、同一组Nginx进程上运行的多个网站的功能
- 与Apache相同,Nginx也可以配置多种类型的虚拟主机,分别是基于域名、基于端口、基于IP地址的虚拟主机
- 使用Nginx搭建虚拟主机服务器时,每个虚拟web站点拥有独立的“server {}”配置段,各自监听的IP地址、端口号段单独指定
二、基于域名的虚拟主机
- 安装DNS服务
#配置DNS服务器
[root@nginx-server ~]# vim /etc/named.conf ##修改监听地址
# listen-on port 53 { any; };
# listen-on-v6 port 53 { any; };
[root@nginx-server ~]# vim /etc/named.rfc1912.zones //##修改区域配置文件
zone "kgc.com" IN {
type master;
file "kgc.com.zone";
allow-update { none; };
};
zone "accp.com" IN {
type master;
file "accp.com.zone";
allow-update { none; };
};
##如果没有加-p选项,需要修改所有者或权限
[root@nginx-server ~]# cp -p /var/named/named.localhost /var/named/kgc.com.zone
[root@nginx-server ~]# vim /var/named/kgc.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www IN A 10.1.1.172
kgc IN CNAME www.kgc.com
[root@nginx-server ~]# vim /var/named/accp.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www IN A 10.1.1.172
kgc IN CNAME www.kgc.com
##检查配置文件格式是否正确
[root@nginx-server ~]# named-checkconf
[root@nginx-server ~]# named-checkzone kgc.com /var/named/kgc.com.zone
zone kgc.com/IN: loaded serial 0
OK
- 测试DNS服务
[root@nginx-server ~]# nslookup www.kgc.com
Server: 10.1.1.172
Address: 10.1.1.172#53
Name: www.kgc.com
Address: 10.1.1.172
[root@nginx-server ~]# nslookup www.accp.com
Server: 10.1.1.172
Address: 10.1.1.172#53
Name: www.accp.com
Address: 10.1.1.172
- 基于域名构建虚拟主机
##配置nginx的主配置文件
[root@nginx-server ~]# vim /etc/nginx/nginx.conf
server {
server_name www.kgc.com;
location / {
root /var/www/kgc;
index index.html;
}
}
server {
server_name www.accp.com;
location / {
root /var/www/accp;
index index.html;
}
}
##创建主页面文件
[root@nginx-server ~]# cd /var
[root@nginx-server var]# mkdir -p www/kgc www/accp
[root@nginx-server var]# cd /var/www/
[root@nginx-server www]# echo "<h1>KGC<h1>" > kgc/index.html
[root@nginx-server www]# echo "<h1>ACCP<h1>" > accp/index.html
##重启服务
[root@nginx-server www]# systemctl restart nginx.service
- 测试服务结果
三、基于端口的虚拟主机
- 基于端口的虚拟主机和基于域名配置基本一样,区别在于,Nginx的主配置文件中,修改server{}参数
##基于域名的基础上在主配置文件上加入下列配置
[root@nginx-server ~]# vim /etc/nginx/nginx.conf
server {
listen 10.1.1.172:80;
server_name 10.1.1.172:80;
location / {
root /var/www/kgc;
index index.html;
}
}
server {
listen 10.1.1.172:8080;
server_name 10.1.1.172:8080;
location / {
root /var/www/accp;
index index.html;
}
}
- 重启服务,查看端口
[root@nginx-server ~]# systemctl restart nginx.service
[root@nginx-server ~]# netstat -natp |grep nginx
tcp 0 0 10.1.1.172:8080 0.0.0.0:* LISTEN 27006/nginx: master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 27006/nginx: master
tcp6 0 0 :::80 :::* LISTEN 27006/nginx: master
- 验证服务
-1709977708121)
四、基于端口的虚拟主机
- #基于域名的站点配置基础上在主配置文件上加入下列配置
[root@nginx-server ~]# vim /etc/nginx/nginx.conf
server {
listen 10.1.1.172:80;
server_name 10.1.1.172:80;
location / {
root /var/www/kgc;
index index.html;
}
}
- 重启服务
[root@nginx-server ~]# systemctl restart nginx.service
- 验证服务