【I am a coder】Linux虚拟主机配置终极篇

Linux虚拟主机配置一、概述

虚拟主机(中对虚拟主机的解释。

虚拟主机的实现方式主要有三种:基于域名的方法(

注:实验环境为

二、实战演练1.http配置文件讲解

httpd

[root@Slaver conf]# grep '\&;Section\&;' /etc/httpd/conf/httpd.conf -n33:### Section 1: Global Environment245:### Section 2: 'Main' server configuration977:### Section 3: Virtual Hosts[root@Slaver conf]#

其中:

2

3

与虚拟主机相关的配置项有:

2.基于域名的多站点配置

适用场景:在一台主机上配置两个站点,其域名分别为:

满足此应用的相关配置:

a.修改/etc/httpd/conf/httpd.conf中的配置

i.端口监听开启:Listen80

ii.虚拟主机配置开启:

b.在/etc/httpd/conf.d/中添加站点的配置文件

注意:在

[root@Slaver conf.d]# cat <VirtualHost *:80> DocumentRoot /var/www/html/test01 ServerName <Directory /var/www/html/test01>Options Indexes FollowSymLinksAllowOverride AllOrder Allow,DenyAllow from all</Directory></VirtualHost>[root@Slaver conf.d]#

[root@Slaver conf.d]# cat <VirtualHost *:80> DocumentRoot /var/www/html/test02 ServerName <Directory /var/www/html/test02>Options Indexes FollowSymLinksAllowOverride AllOrder Allow,DenyAllow from all</Directory></VirtualHost>[root@Slaver conf.d]#

重启

c.上述配置项分析

i.VirtualHost*:80

指定虚拟主机的

ii.OptionsIndexesFollowSymLinks

Options

iii.AllowOverrideAll

AllowOverride

iv.OrderAllow,Deny

Order

3.基于IP的多站点配置

适用场景:

a.存在主服务器1)基本配置

还记得在

192.168.17.128上主服务器配置:

i.监听

ii.主服务器配置区:ServerName

iii.主服务器配置区:DocumentRoot/var/www/html/test01

192.168.17.131上多虚拟主机配置:

虚拟主机配置:VirtualHost192.168.17.131:80

/etc/httpd/conf.d/

注意:设置主服务器后,所有不是针对

2)测试场景

需要测试两种情况:

一、不是针对192.168.17.131的请求都将由主服务器来伺服

二、提交给

现在为web服务器配置三个网络,如下图所示:

并在本机的

访问

访问

b.不存在主服务器

适用场景:假设

服务器可以配置为向来自内部和外部的请求提供同样的内容,只需要一个VirtualHost配置段就可以达到这个目的,服务器配置如下:

监听

配置虚拟主机:NameVirtualHost192.168.17.128:80

NameVirtualHost172.20.30.40:80

/etc/httpd/conf.d/www.test01.conf配置内容:

[root@Slaver conf.d]# cat <VirtualHost 192.168.17.128:80 172.20.30.40:80> DocumentRoot /var/www/html/test01 ServerName <Directory /var/www/html/test01>Options Indexes FollowSymLinksAllowOverride AllOrder Allow,DenyAllow from all</Directory></VirtualHost>[root@Slaver conf.d]#

现在从不同网络提交的请求都会由同一个VirtualHost来伺服。

4.基于端口的多站点配置

适用场景:让同一个

具体配置如下:

i.配置

Listen:8080

ii.配置

NameVirtualHost192.168.17.128:8080

iii.配置/etc/httpd/conf.d/www.test01.conf,配置如下:

[root@Slaver conf.d]# cat <VirtualHost 192.168.17.128:80> DocumentRoot /var/www/html/test01 ServerName <Directory /var/www/html/test01>Options Indexes FollowSymLinksAllowOverride AllOrder Allow,DenyAllow from all</Directory></VirtualHost><VirtualHost 192.168.17.128:8080> DocumentRoot /var/www/html/test02 ServerName <Directory /var/www/html/test02>Options Indexes FollowSymLinksAllowOverride AllOrder Allow,DenyAllow from all</Directory></VirtualHost>[root@Slaver conf.d]#  5.只允许某个网段访问站点

适用场景:发布到外网的

配置如下:

[root@Slaver conf.d]# cat <VirtualHost 192.168.17.128:80> DocumentRoot /var/www/html/test01 ServerName ErrorLog /var/log/httpd/www.test01.err CustomLog /var/log/httpd/www.test01.access common <Directory /var/www/html/test01/administrator>Options Indexes FollowSymLinksAllowOverride AllOrder Allow,DenyAllow from 192.168.17.0/24 </Directory></VirtualHost>[root@Slaver conf.d]#

当不是通过这个网段进来的访问请求,会出现如下的提示错误:

6.只允许通过认证的用户访问站点

适用场景:当访问后台时,,通过提供用户名和密码进行认证,只有通过认证的用户才能访问后台。

这一次是一个告别,或者一个永远的告别,

【I am a coder】Linux虚拟主机配置终极篇

相关文章:

你感兴趣的文章:

标签云: