第四章:配置Nginx虚拟主机

时间:2023-01-30 21:57:57

拓扑图:

第四章:配置Nginx虚拟主机

推荐步骤:

  • 安装Nginx配置基于IP地址虚拟主机客户端访问验证,第一个虚拟主机监听IP地址192.168.100.20,第二个虚拟主机监听IP地址192.168.100.30
  • 配置基于端口虚拟主机,192.168.100.10:8080监听第一个虚拟主机,192.168.100.10:8181监听第二个虚拟主机,客户端访问验证
  • 配置基于域名虚拟主机,​www.bdqn.com​​监听默认虚拟主机,​www.benet.com​​监听第一个虚拟主机,​www.accp.com​监听第二个虚拟主机

实验步骤:

一、安装Nginx配置基于IP地址虚拟主机客户端访问验证,第一个虚拟主机监听IP地址192.168.100.20,第二个虚拟主机监听IP地址192.168.100.30

1、安装Nginx依赖程序

1)挂载系统光盘

第四章:配置Nginx虚拟主机


2)将系统光盘挂载到/mnt目录

[root@centos01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos01 ~]# ls /mnt/
CentOS_BuildTag
EULA images LiveOS
repodata
RPM-GPG-KEY-CentOS-Testing-7
EFI
GPL isolinux Packages
RPM-GPG-KEY-CentOS-7 TRANS.TBL

3)删除系统自带yum源配置文件yum源

[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-*
[root@centos01 ~]# vim /etc/yum.repos.d/local.repo
[local]
name=centos
baseurl=file:///mnt
enabled=1
gpgcheck=0

4)安装Nginx依赖程序创建管理Nginx服务用户

[root@centos01 ~]# yum -y install pcre-devel
zlib-devel
[root@centos01 ~]# umount /mnt/
[root@centos01 ~]# useradd -M -s /sbin/nologin
nginx

2、安装Nginx网站服务器端

1)切换到nginx源代码程序光盘

第四章:配置Nginx虚拟主机

2)挂载Nginx源代码程序

[root@centos01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos01 ~]# ls /mnt/
amoeba-mysql-binary-2.2.0.tar.gz nagios-plugins-1.5.tar.gz
apache-tomcat-7.0.54.tar.gz nginx-1.6.0.tar.gz
awstats-7.3.tar.gz nrpe-2.15.tar.gz

3)解压源代码程序

[root@centos01 ~]# tar zxvf /mnt/nginx-1.6.0.tar.gz
-C /usr/src/

4)配置Nginx服务器端

[root@centos01 ~]# cd /usr/src/nginx-1.6.0/                 //切换源代码目录
[root@centos01 nginx-1.6.0]# ./configure \ //配置Nginx
--prefix=/usr/local/nginx \ //指定安装位置
--user=nginx \ //指定管理用户
--group=nginx \ //指定管理组
--with-http_stub_status_module //加载统计模块

5)编辑安装nginx

[root@centos01 nginx-1.6.0]# make && make
install
[root@centos01 nginx-1.6.0]# cd

3、优化Nginx命令和服务控制

1)优化服务命令

[root@centos01 ~]# ln -s /usr/local/nginx/sbin/*
/usr/local/sbin/

2)检查服务配置文件是否错误

[root@centos01 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf
syntax is ok
nginx: configuration file
/usr/local/nginx/conf/nginx.conf test is successful

3)启动服务

[root@centos01 ~]# nginx
[root@centos01 ~]# netstat -anptu | grep nginx
tcp
0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2819/nginx: master

4)停止Nginx服务

[root@centos01 ~]# killall nginx

4、配置虚拟主机网站目录

1)创建虚拟主机网站根目录

[root@centos01 ~]# mkdir -p /www/benet/
[root@centos01 ~]# mkdir -p /www/accp/

2)设置网站主页

[root@centos01 ~]# ls -R /www/
/www/:
accp benet

/www/accp:
index.html

/www/benet:
index.html

5、虚拟生成虚拟主机网卡配置文件

1)生成网卡配置文件

[root@centos01 ~]# cd /etc/sysconfig/network-scripts/
[root@centos01 network-scripts]# cp ifcfg-ens32
ifcfg-ens32:1
[root@centos01 network-scripts]# cp ifcfg-ens32
ifcfg-ens32:2
[root@centos01 network-scripts]# cd

2)修改第一块网卡配置文件

[root@centos01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32:1
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32:1
DEVICE=ens32:1
ONBOOT=yes
IPADDR=192.168.100.20
NETMASK=255.255.255.0

3)修改第二块网卡配置文件

[root@centos01 ~]# vim
/etc/sysconfig/network-scripts/ifcfg-ens32:2
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32:2
DEVICE=ens32:2
ONBOOT=yes
IPADDR=192.168.100.30
NETMASK=255.255.255.0

4)重新启动网卡服务查看IP地址

[root@centos01 ~]# ifconfig
ens32:
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet
192.168.100.10 netmask 255.255.255.0 broadcast 192.168.100.255
inet6
fe80::20c:29ff:fe4c:c769 prefixlen
64 scopeid 0x20<link>
ether
00:0c:29:4c:c7:69 txqueuelen 1000 (Ethernet)
RX
packets 5286 bytes 466682 (455.7 KiB)
RX
errors 0 dropped 0 overruns 0
frame 0
TX
packets 3468 bytes 514089 (502.0 KiB)
TX
errors 0 dropped 0 overruns 0 carrier 0
collisions 0

ens32:1:
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet
192.168.100.20 netmask
255.255.255.0 broadcast 192.168.100.255
ether
00:0c:29:4c:c7:69 txqueuelen 1000 (Ethernet)

ens32:2:
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet
192.168.100.30 netmask
255.255.255.0 broadcast 192.168.100.255
ether
00:0c:29:4c:c7:69 txqueuelen 1000 (Ethernet)

6、修改Nginx主配置文件支持基于IP地址虚拟主机

1)修改主配置文件

[root@centos01 ~]# vim
/usr/local/nginx/conf/nginx.conf
user nginx; //管理Nginx服务用户
worker_processes
1; //Nginx进程根据CPU核心数设置
events {

worker_connections 1024; //nginx服务最大并发数1024
}
http {

include mime.types;

default_type
application/octet-stream;

sendfile on;

keepalive_timeout 65;
server { //配置第一个虚拟主机

listen 80; //第一个虚拟主机监听端口

server_name 192.168.100.20; //第一个虚拟主机监听IP地址

charset utf-8; //虚拟主机使用默认字符编码

access_log
logs/www.benet.com.access.log; //第一个虚拟主机日志文件

location / {

root /www/benet/; //第一个虚拟主机网站根目录

index index.html index.htm; //第一个虚拟主机主页
}
}
server {

listen 80;

server_name 192.168.100.30;

charset utf-8;

access_log logs/www.accp.com.access.log;

location / {

root /www/accp/;

index index.html index.htm;
}
}
}

2)检查简称主配置文件

[root@centos01 ~]# nginx -t
nginx: the configuration file
/usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file
/usr/local/nginx/conf/nginx.conf test is successful

3)启动nginx服务

[root@centos01 ~]# nginx 
[root@centos01 ~]# netstat -anptu | grep nginx
tcp
0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4327/nginx: master

4)客户端Win10配置IP地址

第四章:配置Nginx虚拟主机

5)客户端访问http://192.168.100.10访问默认站点

第四章:配置Nginx虚拟主机

6) 客户端访问​http://192.168.100.20访问benet​站点

第四章:配置Nginx虚拟主机

7)客户端访问​http://192.168.100.30​访问accp站点

第四章:配置Nginx虚拟主机

二、配置基于端口虚拟主机,192.168.100.10:8080监听第一个虚拟主机,192.168.100.10:8181监听第二个虚拟主机,客户端访问验证

第四章:配置Nginx虚拟主机

1、配置Nginx主配置文件支持基于端口虚拟主机

1)修改主配置文件

[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
user nginx; //管理Nginx服务用户
worker_processes
1; //Nginx进程根据CPU核心数设置
events {

worker_connections 1024; //nginx服务最大并发数1024
}
http {

include mime.types;

default_type
application/octet-stream;

sendfile on;

keepalive_timeout 65;
server { //配置第一个虚拟主机

listen 8080; //第一个虚拟主机监听端口

server_name 192.168.100.10; //第一个虚拟主机监听IP地址

charset utf-8; //虚拟主机使用默认字符编码

access_log
logs/www.benet.com.access.log; //第一个虚拟主机日志文件

location / {

root /www/benet/; //第一个虚拟主机网站根目录

index index.html index.htm; //第一个虚拟主机主页
}
}
server {
listen 8181;

server_name 192.168.100.10;

charset utf-8;

access_log
logs/www.accp.com.access.log;

location / {

root /www/accp/;

index index.html index.htm;
}
}
}

2)检查主配置文件

[root@centos01 ~]# nginx -t
nginx: the configuration file
/usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file
/usr/local/nginx/conf/nginx.conf test is successful

3)重新启动nginx服务

[root@centos01 ~]# killall nginx
[root@centos01 ~]# nginx

4)查看nginx服务运行状态

[root@centos01 ~]# netstat -anptu | grep nginx
tcp
0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 4505/nginx: master
tcp
0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4505/nginx: master
tcp
0 0 0.0.0.0:8181 0.0.0.0:* LISTEN 4505/nginx: master

2、客户端访问网站服务器进行验证

1)客户端使用IP地址​​http://192.168.100.10:80​​访问默认站点

第四章:配置Nginx虚拟主机

2)客户端使用IP地址​​http://192.168.100.10:8080​​访问benet站点

第四章:配置Nginx虚拟主机

3)使用客户端IP地址​​http://192.168.100.10:8181​​访问accp站点

第四章:配置Nginx虚拟主机

三、配置基于域名虚拟主机,​www.bdqn.com​​监听默认虚拟主机,​www.benet.com​​监听第一个虚拟主机,​www.accp.com​监听第二个虚拟主机

第四章:配置Nginx虚拟主机

1、网站服务器和DNS服务器配置IP地址和DNS服务器

1)网站服务器配置IP地址

[root@centos01 ~]# vim
/etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
DNS1=192.168.100.40

2)重启启动服务查看配置DNS

[root@centos01 ~]# systemctl restart network
[root@centos01 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.100.40

3)DNS服务器配置IP地址

[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.40
NETMASK=255.255.255.0
DNS1=192.168.100.40

4)重新启动网卡服务查看配置DNS服务器

[root@centos02 ~]# systemctl restart network
cat [root@centos02 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.100.40

2、安装DNS服务器

1)安装系统光盘

第四章:配置Nginx虚拟主机

2)系统盘关在到/mnt目录

[root@centos02 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos02 ~]# ls /mnt/
CentOS_BuildTag
EULA images LiveOS
repodata
RPM-GPG-KEY-CentOS-Testing-7
EFI
GPL isolinux Packages
RPM-GPG-KEY-CentOS-7 TRANS.TBL

3)安装DNS服务

[root@centos02 ~]# rpm -ivh
/mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥
准备中...
################################# [100%]
正在升级/安装...
1:bind-32:9.9.4-50.el7 #################################
[100%]
[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm

警告:/mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm:
头V3 RSA/SHA256 Signature, 密钥
准备中...
################################# [100%]
正在升级/安装...
1:bind-chroot-32:9.9.4-50.el7 ################################# [100%]
[root@centos02 ~]# rpm -ivh
/mnt/Packages/bind-utils-9.9.4-50.el7.x86_64.rpm
警告:/mnt/Packages/bind-utils-9.9.4-50.el7.x86_64.rpm:
头V3 RSA/SHA256 Signature, 密钥
准备中... #################################
[100%]
软件包 bind-utils-32:9.9.4-50.el7.x86_64 已经安装

4)修改DNS服务器主配置文件

[root@centos02 ~]# vim /etc/named.conf
options {

listen-on port 53 { any; };

directory "/var/named/";
};
zone "bdqn.com" IN {
type
master;
file
"/var/named/bdqn.com.zone";
};
zone "benet.com" IN {
type
master;
file
"/var/named/benet.com.zone";
};
zone "accp.com" IN {
type
master;
file
"/var/named/accp.com.zone";
};

5)配置DNS区域配置文件

[root@centos02 ~]# vim /var/named/bdqn.com.zone                     //默认站点监听域名
$TTL 86400
@ SOA bdqn.com. root.bdqn.com.
(
2022082910
1H
15M
1W
1D
)
@ NS centos02.bdqn.com.
centos02 A 192.168.100.40
www A 192.168.100.10
[root@centos02 ~]# vim /var/named/benet.com.zone //第一个虚拟主机监听域名
$TTL 86400
@ SOA benet.com. root.benet.com.
(
2022082910
1H
15M
1W
1D
)
@ NS centos02.benet.com.
centos02 A 192.168.100.40
www A 192.168.100.10
[root@centos02 ~]# vim /var/named/accp.com.zone //第二个虚拟主机监听域名
$TTL 86400
@ SOA accp.com. root.accp.com.
(
2022082910
1H
15M
1W
1D
)
@ NS centos02.accp.com.
centos02 A 192.168.100.40
www A 192.168.100.10

6)验证DNS服务器

[root@centos02 ~]# nslookup www.benet.com
Server: 192.168.100.40
Address: 192.168.100.40#53

Name: www.benet.com
Address: 192.168.100.10

[root@centos02 ~]# nslookup www.accp.com
Server: 192.168.100.40
Address: 192.168.100.40#53

Name: www.accp.com
Address: 192.168.100.10

[root@centos02 ~]# nslookup www.bdqn.com
Server: 192.168.100.40
Address: 192.168.100.40#53

Name: www.bdqn.com
Address: 192.168.100.10

3、修改Nginx主配置文件支持域名虚拟主机

1)修改Nginx主配置文件

[root@centos01 ~]# vim
/usr/local/nginx/conf/nginx.conf
user nginx; //管理Nginx服务用户
worker_processes
1; //Nginx进程根据CPU核心数设置
events {

worker_connections 1024; //nginx服务最大并发数1024
}
http {

include mime.types;

default_type
application/octet-stream;

sendfile on;

keepalive_timeout 65;
server { //配置第一个虚拟主机

listen 80; //第一个虚拟主机监听端口

server_name www.benet.com; //第一个虚拟主机监听域名

charset utf-8; //虚拟主机使用默认字符编码

access_log
logs/www.benet.com.access.log; //第一个虚拟主机日志文件

location / {

root /www/benet/; //第一个虚拟主机网站根目录

index index.html index.htm; //第一个虚拟主机主页
}
}
server {

listen 80;

server_name www.accp.com;

charset utf-8;

access_log
logs/www.accp.com.access.log;

location / {

root /www/accp/;

index index.html index.htm;
}
}
}

2)检查主配置文件

[root@centos01 ~]# nginx -t
nginx: the configuration file
/usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file
/usr/local/nginx/conf/nginx.conf test is successful

3)停止服务

[root@centos01 ~]# killall nginx
[root@centos01 ~]# nginx

4)查看服务运行状态

[root@centos01 ~]# netstat -anptu | grep nginx
tcp
0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5236/nginx: master

4、配置客户端

1)客户端配置IP地址和DNS

第四章:配置Nginx虚拟主机

2)客户端使用域名www.bdqn.com访问默认站点

第四章:配置Nginx虚拟主机

3)客户端使用域名www.benet.com访问benet站点

第四章:配置Nginx虚拟主机

4)客户端使用域名www.accp.com访问accp站点

第四章:配置Nginx虚拟主机