华子目录
- 实验1:基于IP地址的虚拟主机
- 原理
- 实验2:基于端口号的虚拟主机
- 原理
- 实验3:基于域名的虚拟主机
- 原理
实验1:基于IP地址的虚拟主机
原理
-
如果一台服务器有多个IP地址,而且每个IP地址与服务器上部署的每个网站一一对应,当用户请求的IP地址不同,则会访问到不同网页,且每个网站都有一个独立的IP地址
-
注意:主机必须有多个IP地址
-
准备工作
[root@server ~]# setenforce 0[root@server ~]# systemctl stop firewalld[root@server ~]# systemctl disable firewalld[root@server ~]# yum install nginx -y[root@server ~]# systemctl start nginx[root@server ~]# systemctl enable nginx
- 增加多个IP地址
[root@server ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.80.150/24
[root@server ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.80.151/24[root@server ~]# nmcli connection up ens160 # 注意:一定要激活才能使用IP进行ssh连接[root@server ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:9e:1d:25 brd ff:ff:ff:ff:ff:ffaltname enp3s0inet 192.168.80.129/24 brd 192.168.80.255 scope global noprefixroute ens160valid_lft forever preferred_lft foreverinet 192.168.80.150/24 brd 192.168.80.255 scope global secondary noprefixroute ens160valid_lft forever preferred_lft foreverinet 192.168.80.151/24 brd 192.168.80.255 scope global secondary noprefixroute ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe9e:1d25/64 scope link noprefixroutevalid_lft forever preferred_lft forever
- 创建网页目录,并上传网页数据
[root@server ~]# mkdir -p /www/sxhkt
[root@server ~]# mkdir -p /www/zy#使用mobaxterm上传网页
- 创建子配置文件,通过include导入主配置
#在/etc/nginx/conf.d目录下建立子配置文件实现,更加精简,执行时会被主配置文件加载
[root@server ~]# vim /etc/nginx/conf.d/vshost.conf
server {listen 80;server_name 192.168.80.150;root /www/sxhkt;
}
server {listen 80;server_name 192.168.80.151;root /www/zy;
}
- 重启服务,测试
[root@server ~]# systemctl restart nginx#在Windows端浏览器上输入IP地址
实验2:基于端口号的虚拟主机
原理
- 基于端口号的虚拟主机功能,可以让用户通过一个IP地址的不同端口号来访问不同的网站
- 准备工作
#先恢复快照
[root@server ~]# setenforce 0[root@server ~]# systemctl stop firewalld[root@server ~]# systemctl disable firewalld[root@server ~]# yum install nginx -y[root@server ~]# systemctl start nginx[root@server ~]# systemctl enable nginx
- 新建2个网页目录
[root@server ~]# mkdir -p /www/sxhkt
[root@server ~]# mkdir -p /www/zy#使用mobaxterm上传网页
- 编辑主配置文件
[root@server ~]# vim /etc/nginx/nginx.confserver {listen 8080;server_name _;root /www/sxhkt;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}server {listen 8181;server_name _;root /www/zy;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}
- 重启服务,测试
[root@server ~]# systemctl restart nginx#在Windows端浏览器上输入IP地址+端口号
实验3:基于域名的虚拟主机
原理
-
当服务器无法给每个网站都分配一个独立的IP地址时,可以通过用户请求的域名不同来实现访问不同网页
-
准备工作
#先恢复快照
[root@server ~]# setenforce 0[root@server ~]# systemctl stop firewalld[root@server ~]# systemctl disable firewalld[root@server ~]# yum install nginx -y[root@server ~]# systemctl start nginx[root@server ~]# systemctl enable nginx
- 新建2个网页目录
[root@server ~]# mkdir -p /www/sxhkt
[root@server ~]# mkdir -p /www/zy#使用mobaxterm上传网页
- 手动配置Windows中hosts文件IP地址与域名的映射关系
- 修改主配置文件
[root@server ~]# vim /etc/nginx/nginx.confserver {listen 80;server_name www.sxhkt.com;root /www/sxhkt;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}server {listen 80;server_name www.zy.com;root /www/zy;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;error_page 404 /404.html;location = /404.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}}
- 重启服务,测试
[root@server ~]# systemctl restart nginx#在Windows端浏览器上输入域名