程序地带

Linux系统学习(四)Linux网络服务(上)NFS、Apache配置


网络文件系统NFS
1. NFS概述

网络文件系统(NFS),多用于UNIX操作系统中,它是连接在网络上的计算机之间共享文件的一种方法。在这个系统上的文件就类似在本地计算机上的硬盘驱动器上,类似于Windows系统上的“网上邻居”,但NFS文件系统更适合以字符命令方式完成网络之间的文件共享。


NFS通常在局域网中使用,为了在不同的系统之间实现文件的共享。提供文件进行共享的系统称为主机,共享文件的计算机称为客户机。一个客户机可以从服务器上挂载一个文件或目录,然而事实上任何计算机都可以作为NFS服务器或NFS客户机,甚至可以同时作为NFS服务器和NFS客户机。 当主机系统把所共享文件进行权限指定后,远程的客户机就利用mount命令把remote所共享的文件系统挂载在自己的文件系统下,在使用远程文件时如何使用本地文件一样方便。


NFS特点
不占本地工作站的磁盘空间,因为数据存放在另一台计算机上,所以可以通过网络访问。通过同步写磁盘可以实现分布式处理功能。利用字符命令方式,高性能,灵活配置,即可实现远程计算机文件系统的共享。扩充新的资源或环境时不需要改变现有的工作环境。CDROM和USB等存储设备可以在网络上被其他计算机使用,这样减少了整个网络上的可移动介质设备的数量。用户不必在每个计算机中都有一个home目录,home目录可以放在NFS服务器,并且在网络上处处可用。
建立NFS的工作步骤
CentOS7 系统实现NFS服务功能必须安装nfs-utils、rpcbind软件包,系统安装软件包,并启动该服务。注意服务器端和客户机都要安装!
[root@localhost ~]# yum install -y nfs-utils
[root@localhost ~]# yum install -y rpcbind
主机对所提供的共享文件下放权限。客户机针对主机下放的权限把远程文件挂载到本地目录上。
2. NFS的主机服务器配置及启动
(1)配置exports文件

配置只需在配置文件“/etc/exports”中提供共享文件列表,然后启动NFS服务即可。 exports文件配置格式: 每行提供一个共享目录的设置,这些目录要保证已存在,实例如下:


#共享目录 分配给客户机的地址
/home/share192.168.1.1/200(sync,ro) 192.168.1.210(sync,rw)
/home/public*(sync,ro)
/home/ftp192.168.1.11(sync,rw)

其中指定客户机的地址非常灵活,可以是单个IP地址或者域名,也可以是指定网段中的客户机。举例如下表所示:


指定客户机地址说明192.168.1.10指定IP地址的客户机192.168.1.10/20指定网段中的所有客户机nfs.wdg.com指定域名的客户机*所有客户机

设置选项如下表:


设置选项说明sync用户之间同步写磁盘,这样不会丢数据,NFS服务建议使用ro输出的共享目录只读,不能与rw共同使用rw输出的共享目录可读写,不能与ro共同使用
(2)启动NFS服务

需要使用NFS,必须安装RPC服务,NFS的RPC服务,在CentOS5版本下名为portmap,在CentOS 6之后版本下名为rpcbind。 必须先启动rpcbind服务,再启动NFS服务,才能使NFS服务正常工作。


systemctl start rpcbind
systemctl start nfs
(3)开放NFS服务端口

CentOS7系统的防火墙默认没有开放NFS服务的端口号,所以必须开放NFS服务相关的端口号,通过命令rpcinfo可以查到。


[root@localhost ~]# rpcinfo -p 192.168.140.135(主机IP)
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 39020 status
100024 1 tcp 51470 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 58416 nlockmgr
100021 3 udp 58416 nlockmgr
100021 4 udp 58416 nlockmgr
100021 1 tcp 36351 nlockmgr
100021 3 tcp 36351 nlockmgr
100021 4 tcp 36351 nlockmgr

从示例中可以看出,NFS服务的主要端口有以下几种: ① portmapper端口(udp/tcp):111; ② nfs端口(udp/tcp):2049; ③ mountd端口(udp/tcp):20048。(随机)


开放端口命令示例:


[root@localhost ~]# firewall-cmd --permanent --add-port=111/tcp
success
[root@localhost ~]# firewall-cmd --permanent --add-port=111/udp
success
[root@localhost ~]# firewall-cmd --permanent --add-port=2049/tcp
success
[root@localhost ~]# firewall-cmd --permanent --add-port=2049/udp
success
[root@localhost ~]# firewall-cmd --permanent --add-port=20048/tcp
success
[root@localhost ~]# firewall-cmd --permanent --add-port=20048/udp
success
[root@localhost ~]# firewall-cmd --reload
success

注意:在CentOS 7系统中的NFS服务,有的是随机端口号,且每次使用NFS服务,多个端口开放比较麻烦,可以把mountd等随机端口号指定为固定端口号。若用户使用NFS服务不考虑端口号,简单的办法就是使防火墙暂时开放NFS服务。


firewall -cmd --add -service=nfs
(4)查看NFS服务器状态

输入命令service nfs status检查NFS服务器的状态。


[root@localhost ~]# service nfs status
Redirecting to /bin/systemctl status nfs.service
* nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
Drop-In: /run/systemd/generator/nfs-server.service.d
`-order-with-mounts.conf
Active: active (exited) since 四 2020-12-17 08:21:39 CST; 11min ago
Process: 3256 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
Process: 3242 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
Process: 3241 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Main PID: 3242 (code=exited, status=0/SUCCESS)
Tasks: 0
CGroup: /system.slice/nfs-server.service
12月 17 08:21:39 localhost.localdomain systemd[1]: Starting NFS server and se...
12月 17 08:21:39 localhost.localdomain systemd[1]: Started NFS server and ser...
Hint: Some lines were ellipsized, use -l to show in full.
(5)显示共享目录状态

设置了NFS共享目录并正确启动NFS服务后,可以利用showmount命令查看NFS共享目录状态。


showmount [-ae] hostname

参数: -a:在屏幕上显示目前主机与Client所连上的使用目录状态。 -e:显示hostname这台机器的/etc/exports文件中的共享目录


[root@localhost home]# showmount -e
Export list for localhost:
/home/public *
/home/share 192.168.140.133

到这里服务器准备工作结束了,可以创建一个克隆机作为客户机。


3. 客户端挂载NFS文件系统

客户机要想挂载网络中的NFS文件系统,必须查看是否提供给客户机访问权限,即客户机是否满足NFS主机指定的客户机IP地址范围。如果满足,方可挂载使用。


(1)查看NFS服务输出的共享目录状态

提供NFS服务的主机IP为192.168.140.135,客户机为192.168.140.133,则查看主机NFS所提供的服务信息的命令为:


[root@localhost home]# showmount -e 192.168.140.135
Export list for 192.168.140.135:
/home/public *
/home/share 192.168.140.133

从结果可以看出,NFS主机为该客户机提供了两个可共享挂载的目录,即/home/public和/home/share。


(2)挂载NFS服务器中的共享目录

在客户机上使用mount命令挂载NFS服务器的共享目录到本地目录上,语法如下:


mount NFS 服务器地址:共享目录 本地挂载点目录

示例:


[root@localhost ~]# mount 192.168.140.135:/home/share /mnt/share

其中,/mnt/share是客户机本地的挂载点目录,必须是已经存在的。


(3)查看及卸载已挂载的目录

NFS正确挂载到本地之后,可以用mount命令查看目录的挂载情况。


[root@localhost ~]# mount | grep nfs
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
192.168.140.135:/home/share on /mnt/share type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.140.136,local_lock=none,addr=192.168.140.135)

卸载已挂载的目录使用umount命令。


[root@localhost ~]# umount /mnt/share

卸载已挂载的目录时如果报错device is busy,原因是有进程在占用/home/test目录,可以使用fuser -m /home/test命令查看哪些进程占用目录,然后使用kill -9 PID命令杀死进程就可以卸载挂载目录了。


Web服务

Internet上最热门的服务之一就是WWW(World Wide Web)服务,Web服务已经成为很多人在网上查找、浏览信息的主要手段,它是一种交互式图形界面的服务。因为Web系统是客户/服务器模式的,所以应该由服务器程序和客户端程序两个部分组成。常用的Web服务器有Apache及Microsoft IIS等,常用的客户端程序有IE及Netscape等。


Apache服务器简介

Apache HTTP Server(简称Apache)是软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行。 Apache的特点是简单、速度快、性能稳定。Apache本来只用于小型或试验Internet网络,后来逐步扩充到各种UNIX系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的UNIX、Windows、Linux系统平台上)及它的可移植性等方面。如果要创建一个每天有数百万人访问的web服务器,Apache是最佳选择。


Apache服务器的安装及启动
1.检测与安装Apache

基本上和NFS的一样,就不赘述了。


[root@localhost ~]# rpm -qa | grep httpd
[root@localhost ~]# yum list httpd#查找httpd服务软件
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
可安装的软件包
httpd.x86_64 2.4.6-93.el7.centos local
[root@localhost ~]# yum install httpd.x86_64#查找到后进行安装
2.启动Apache服务

安装完之后,可以使用下面的命令查看Apache服务“httpd.service”的运行状态。


[root@localhost ~]# systemctl status httpd
* httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:httpd(8)
man:apachectl(8)

从上面可以看出,服务inactive并没有开启。也可以不看直接重启Apache服务。


[root@localhost ~]# systemctl restart httpd.service
3.测试Apache服务器运行状态

在IE浏览器中输入Linux系统中Apache服务器的IP地址,连接成功则出现下图所示画面。 在这里插入图片描述 如果出现错误,需要关闭Linux系统的防火墙,使用命令systemctl stop firewalld。


Apache服务器的配置

主配置文件为httpd.conf,存储在/etc/httpd/conf目录下,Apache服务器的配置可以直接修改httpd.conf文件,也可以在X窗口中用CentOS 7系统自带的图形化HTTP配置工具来进行配置。 除了主配置文件外,还有/etc/httpd/conf.d/*.conf等很多附属配置文件。这些附属配置文件功能与主配置文件功能相同。


1.默认基本指令配置

下面是CentOS 7系统中的Apache服务在配置文件/etc/httpd/conf/httpd.conf中默认的基本信息汇总。 在这里插入图片描述


2.默认成组容器配置

在httpd服务的主配置文件/etc/httpd/conf/httpd.conf中,除了关键字指令配置信息外,还有类似于伪HTML的成组容器配置信息。常用的有以下几种: (1)设置httpd服务的网站目录访问权限。


<Directory "/var/www/html">
Options Indexes FollowSymLinks#找不到主页时以目录方式呈现,并允许链接
AllowOverride None#none不使用.htaccess控制,all允许
Require all granted#granted表示运行所有访问,denied拒绝
</Directory>

(2)防止用户看到以“.ht”开头的预设文件,如保护“.htaccess”“.htpasswd”等文件设置的用户名及密码等内容。


<Files ".ht*">
Require all denied#denied表示拒绝所有访问
</Files>

(3)设置站点全局的索引页,包括虚拟目录、用户站点及其子目录等。


<IfModule dir_module>
DirectoryIndex index.html#设置站点全局的索引页
</IfModule>
3.使用基本指令配置

(1)web站点主目录


在配置文件中,检索指令关键字DocumentRoot,可以看到DocumentRoot "/var/www/html",Apache配置文件默认的web站点主目录在/var/www/html中,在该目录中建立Web站点,如访问该目录下的站点子目录teach下的网页default.html,则在浏览器中访问地址为http://192.168.1.200/teach/default.html(其中,192.168.1.200为Web站点服务器主机IP地址)。


(2)web站点主页检索列表设置


浏览该站的第一个页面即为主页或起始页,web服务器一般已经设置好网站访问的主页检索列表。 在配置文件中,检索指令关键字DirectoryIndex 可以看到DirectoryIndex index.html。 默认站点主页检索文件列表为一个index.html文件,若多个文件则用空格隔开,检索顺序依次从左到右,当然用户可以重新设置修改,如添加对index.php、index.htm、default.htm3个文件的检索可以把该行信息更改如下。


DirectoryIndex index.html index.php index.htm default.htm

更改完后保存该配置文件,若要立即生效必须重启httpd服务,执行命令systemctl restart httpd.service。


搭建虚拟主机

虚拟主机,也称“网站空间”,就是把一台运行的服务器划分为多个“虚拟”服务器,一台物理服务器通过不同的访问地址,访问不同的Web空间,使用户感觉有多个对外的Web服务器。虚拟主机一般有以下3种类型。 (1)基于IP的虚拟主机:要求主机配有多个IP地址诉并为每个站点分配唯一的IP地址,对外用户通过不同的IP访问不同的Web站点。 (2)基于端口号的虚拟主机:要求不同的站点通过不同的端口号监听,这些端口号不能和系统其他端口号重复,以免发生冲突。对外用户通过不同的端口号访问不同的站点。 (3)基于主机名的虚拟主机:要求主机配有多个主机名,并为每个站点分配一个主机名。对外用户通过不同的主机名访问不同的站点。


1.基于IP的虚拟主机配置

基于IP的虚拟主机配置,是先把一块网卡映射成多个IP地址,然后在配置文件中配置其不同的IP对应不同的主机本地地址。其操作步骤如下:


(1)设置多个IP


使用ifconfig命令可以为一块网卡绑定多个不同的临时的虚拟IP地址,所以采用永久方式来设定给一块网卡分配多个IP地址。 首先查看网卡的IP配置信息,使用DHCP动态分配IP:


[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=9a859d29-d2ed-4d94-b022-bd2a5de9507c
DEVICE=ens33
ONBOOT=yes
MM-CONTROLLED=yes

更改配置文件,在该配置文件中将dhcp改为static,并把ens33网卡映射成不同的IP地址,如下:


[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static#dhcp改为static
IPADDR=192.168.140.135#添加IP
IPADDR1=192.168.140.136#添加IP1
IPADDR2=192.168.140.137#添加IP1
GATEWAY=192.168.140.1
NETMASK=255.255.255.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=9a859d29-d2ed-4d94-b022-bd2a5de9507c
DEVICE=ens33
ONBOOT=yes
MM-CONTROLLED=yes

更改完后存盘,重新启动网卡并检查IP。


[root@localhost ~]# systemctl restart network
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:37:75:b9 brd ff:ff:ff:ff:ff:ff
inet 192.168.140.135/24 brd 192.168.140.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.140.136/24 brd 192.168.140.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.140.137/24 brd 192.168.140.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::736f:aa5d:a396:cf11/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:c2:d7:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever

测试新IP是否生效。


[root@localhost ~]# ping -c 4 192.168.140.136
PING 192.168.140.136 (192.168.140.136) 56(84) bytes of data.
64 bytes from 192.168.140.136: icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from 192.168.140.136: icmp_seq=2 ttl=64 time=0.082 ms
64 bytes from 192.168.140.136: icmp_seq=3 ttl=64 time=0.071 ms
64 bytes from 192.168.140.136: icmp_seq=4 ttl=64 time=0.070 ms
--- 192.168.140.136 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3030ms
rtt min/avg/max/mdev = 0.055/0.069/0.082/0.012 ms

(2)建立基于IP方式的虚拟主机存放站点的根目录,并创建首页index.html文件。


[root@localhost ~]# cd /var/www
[root@localhost www]# mkdir 136
[root@localhost www]# mkdir 137
[root@localhost www]# echo "192.168.140.136's Web Site" > 136/index.html
[root@localhost www]# echo "192.168.140.137's Web Site" > 137/index.html

(3)编辑每个IP的不同配置文件 在服务器的根目录/etc/httpd下,创建一个虚拟主机配置文件目录vhost,在该目录下分别创建136.conf、137.conf两个配置文件,再在主配置文件中包含这两个虚拟主机IP配置文件即可。


[root@localhost httpd]# mkdir vhost
[root@localhost httpd]# vi vhost/136.conf
<VirtualHost 192.168.140.136>
DocumentRoot "/var/www/136"
DirectoryIndex index.html
<Directory "/var/www/136/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
[root@localhost httpd]# vi vhost/137.conf
<VirtualHost 192.168.140.137>
DocumentRoot "/var/www/137"
DirectoryIndex index.html
<Directory "/var/www/137/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

编辑完以上两个配置文件后,再打开httpd.conf文件,在结尾处添加如下信息:


[root@localhost httpd]# vi conf/httpd.conf
...
IncludeOptional vhost/*.conf#包含虚拟主机IP方式的配置文件
[root@localhost httpd]# systemctl restart httpd#重启服务使配置生效

(4)测试虚拟主机主页 在浏览器URL栏中输入新的IP地址192.168.140.136,就可以看到192.168.140.136’s Web Site!页面了。


2.基于端口号的虚拟主机配置

基于端口号的虚拟主机,系统只有一个IP地址,通过其不同的端口号映射成不同的主机本地地址。假设主机的IP为192.168.140.135,需要配置的虚拟主机端口号分别为8081和8082。 (1)在主配置文件中加入不同监听端口号。 在主配置httpd.conf文件中的结尾处加入如下内容:


Listen 192.168.140.135:8081#新加入8081端口配置信息
Listen 192.168.140.135:8082#新加入8081端口配置信息
IncludeOptional vhost/*.conf#原先包含配置文件保留

(2)建立基于端口号方式的虚拟主机存放站点的根目录,并创建首页index.html文件。


[root@localhost ~]# cd /var/www
[root@localhost www]# mkdir 8081
[root@localhost www]# mkdir 8082
[root@localhost www]# echo "port 8081's Web Site." > 8081/index.html
[root@localhost www]# echo "port 8082's Web Site." > 8082/index.html

(3)编辑每个端口号的不同配置文件 同样在服务器的根目录/etc/httpd/下,创建一个虚拟主机配置文件目录vhost,并在该目录下分别创建8081.conf和8082.conf两个虚拟主机基于不同端口号的配置文件。因为在上一个基于IP方式的配置文件也在vhost目录下,且在主配置httpd.conf文件中包含该虚拟主机目录的配置文件,所以这部分不用配置。其操作步骤如下:


[root@localhost httpd]# vi vhost/8081.conf
<VirtualHost 192.168.140.135:8081>
DocumentRoot "/var/www/8081"
DirectoryIndex index.html
<Directory "/var/www/8081/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
[root@localhost httpd]# vi vhost/8082.conf
<VirtualHost 192.168.140.135:8082>
DocumentRoot "/var/www/8082"
DirectoryIndex index.html
<Directory "/var/www/8082/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

(4)测试虚拟主机主页


需要防火墙开放新的端口号,以及重新启动httpd服务,就可以测试基于端口号方式的虚拟主机了。


firewall-cmd --permanent --add-port=8081/tcp#开放8081端口
firewall-cmd --permanent --add-port=8082/tcp#开放8082端口
systemctl restart firewalld#修改配置后要重启防火墙
systemctl restart httpd#重新启动httpd服务

在异地的客户机浏览器上访问192.168.140.135:8081可以访问到Apache页面,配置成功。


如果重新启动httpd服务报错,


[root@localhost httpd]# systemctl restart httpd.service
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.

应该是SELinux强制模式的限制,改为宽容模式再重新启动就可以了,命令如下。


getenforce#查看当前模式
setecforce 0#设置宽容模式
getenforce#再次查看发现已改为宽容模式
3.基于域名方式的虚拟主机配置

也叫基于不同主机名的虚拟主机,其方法是在本地主机上的hosts文件中同一个IP注册对应不同的域名,并在Apache的配置文件中不同的域名映射成其对应不同的主机本地地址。 (1)在网卡上设置新的虚拟网卡地址。


[root@localhost ~]# ifconfig ens33:192.168.140.139/24#建立新的虚拟IP
[root@localhost ~]# ip addr#查看IP
...
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:37:75:b9 brd ff:ff:ff:ff:ff:ff
inet 192.168.140.135/24 brd 192.168.140.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.140.136/24 brd 192.168.140.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.140.137/24 brd 192.168.140.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.140.139/24 brd 192.168.140.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever

(2)同一个IP映射成多个不同的主机名。 用vi编辑/etc/hosts文件,添加如下信息。


192.168.140.139www.wdg131.com
192.168.140.139www.wdg132.com

(3)建立基于域名方式的虚拟主机存放站点的根目录,并创建首页index.html。


[root@localhost ~]# cd /var/www
[root@localhost www]# mkdir wdg131
[root@localhost www]# mkdir wdg132
[root@localhost www]# echo "www.wdg131.com's Web Site." > wdg131/index.html
[root@localhost www]# echo "www.wdg132.com's Web Site." > wdg132/index.html

(4)编辑每个域名的不同配置文件。 在/etc/httpd/vhost下分别创建wdg131.conf和wdg132.conf两个配置文件并编辑。


[root@localhost httpd]# vi vhost/wdg131.conf#配置www.wdg131.com的虚拟主机
<VirtualHost 192.168.140.139>
ServerName www.wdg131.com#指定主机名
DocumentRoot "/var/www/wdg131"#指定其对应的主机本地目录地址
DirectoryIndex index.html
<Directory "/var/www/wdg131/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
[root@localhost httpd]# vi vhost/wdg132.conf#配置www.wdg132.com的虚拟主机
<VirtualHost 192.168.140.139>
ServerName www.wdg132.com
DocumentRoot "/var/www/wdg132"
DirectoryIndex index.html
<Directory "/var/www/wdg132/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

(5)测试虚拟主机主页 重新启动httpd服务,就可以测试了。但是虚拟主机域名www.wdg131.com和www.wdg132.com没有注册,所以在异地Windows下不能直接使用这两个域名。但可以通过IP地址访问,以及通过SSH终端使用curl命令访问,测试结果如下。


[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# curl www.wdg131.com
www.wdg131.com's Web Site.

以上建立的这3种方式的虚拟主机并不冲突,可以按照这3种方式同时访问不同的虚拟主机。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ITmincherry/article/details/111246401

随机推荐

vim 分屏 最大化_5分钟学会Vim分屏操作方方面面

Vim分屏功能是通过分割窗口来实现的,这是提高工作效率的一大利器。无论我们想同时显示两个文件,或者同时显示一个文件的两个不同的位置,又或者并排比较两个文件&#...

兰森环游世界 阅读(253)

try-with-resources

1、常规用法try{FileOutputStreamfos=newFileOutputStream(XXX);...}catch(Exceptione){e.printStackTrace()...

Mango_yoo 阅读(770)

Mac平台上的网络分析器

Mac平台上的网络分析器

WiresharkforMac是一款运行在Mac平台上的网络分析器,wiresharkmac版支持实时捕获、VoIP分析、离线分析等功能,非常的实用。WiresharkMa...

Hyacinth_xh 阅读(894)

python 档案管理系统_Python 写入档案的 4 个方法

在Python写入档案内容跟读取档案差不多,也很简单方便,以下会介绍用Python逐行读取档案内容的4种方法。在看例子前先要了解开启档案的参数,一般上读取档案会用“r”,即唯读的意思,如...

weixin_39549110 阅读(665)

vim 分屏 最大化_vim分屏功能总结

vim的分屏功能总结起来,基本都是ctrl+w然后加上某一个按键字母,触发一个功能。(1)在shell里打开几个文件并且分屏:vim-Onfile1file2......

苏莞尔 阅读(731)

高通平台如何修改特殊电压

转载:https://blog.csdn.net/qq_36781842/article/details/103721013高通平台如何设置LDO电压,以LDO17为例&#...

carl.xu 阅读(315)