httpd 虚拟主机建立之访问机制及其日志定义

注:关闭防火墙,selinux

VirtualHost定义:

基于IP地址VirtualHost:

编辑httpd.conf文件:

#DocumentRoot "/web/html"                 #注释主服务配置

下面来建立虚拟主机,如果不在httpd.conf文件内编辑虚拟主机,也可以新建一个虚拟主机文件来工作.

在/etc/httpd/conf.d/下新建虚拟主机配置文件

vim /etc/httpd/conf.d/virtualhost.conf

编辑

<VirtualHost 10.140.165.169:80>    #指定iip地址和端口
        ServerName www.izyno.com    #指定主机名
        DocumentRoot "/www/izyno.com"   #指定主机根目录,需要新建.
</VirtualHost>

<VirtualHost 10.140.165.170:80>
        ServerName www.51cache.top
        DocumentRoot "/www/51cache.top"
</VirtualHost>

新建主机根目录和编辑主页文件:

[[email protected] ~]# mkdir /www/{izyno.com,51cache.top}

<h1> Welcome to my 51cache.top</h1>   #在51cache.top下新建index.html文件,添加内容;

<h1> Welcome to my izyno.com</h1>   #在izyno.com下新建index.html文件,添加内容;

指定网卡别名IP地址:

[[email protected] ~]# ip addr add 10.140.165.170/24 dev eth0

测试:

基于端口的VirtualHost:

编辑virtualhost.conf文件添加以下:

<VirtualHost 10.140.165.170:8080>     #指定端口
        ServerName www.51cache.org
        DocumentRoot "/www/51cache.org"
</VirtualHost>

在httpd.conf文件中添加监听端口:

listen 8080端口

测试:

基于主机名的VirtualHost:

编辑virtualhost.conf文件添加:

<VirtualHost 10.140.165.169:80>
        ServerName www.b.com
        DocumentRoot "/www/b.com"
</VirtualHost

mkdir /www/b.com

vim index.html

<h1>Welcome to my b.com site</h1>

设置windows hosts文件或者设置dns,这里设置hosts文件:

10.140.165.169 www.b.com
10.140.165.169 www.izyno.com

重启httpd服务出现如下警告:

Starting httpd: [Mon Oct 10 10:50:06 2016] [warn] VirtualHost 10.140.165.169:80 overlaps with VirtualHost 10.140.165.169:80, the first has precedence, perhaps you need a NameVirtualHost directive
[Mon Oct 10 10:50:06 2016] [warn] NameVirtualHost *:80 has no VirtualHosts

注:以上意思是说当前虚拟主机未配置基于域名的虚拟主机。指向同一条IP地址的多个文件目录基于名都会被第一条覆盖。即此时访问xxx.com或者yyy.com都会转向到xxx.com。

需要在virtualhost.conf添加: NameVirtualHost 10.140.165.169:80

测试:

完成.

virtualHost 访问机制定义:

定义izyno.com主机用户访问认证机制:

编辑virtualhost.conf:

<VirtualHost 10.140.165.169:80>
        ServerName www.izyno.com
        DocumentRoot "/www/izyno.com"
        <Directory "/www/izyno.com">
                Options none
                AllowOverride authconfig  #允许使用与认证授权相关的指令,他们包括AuthDBMGroupFile AuthDBMUserFile  AuthGroupFile  AuthName AuthTypeAuthUserFile和Require
                AuthType basic 
                AuthName "my site."
                AuthUserFile "/etc/httpd/.htpasswd" #指定用户认证文件,需要使用htpasswd生成.
                Require valid-user  #定义为所有认证用户可以访问
        </Directory>
</VirtualHost>

使用htpasswd生成用户: 这里创建了两个用户分别是tom 和  jory

htpasswd –c –m /etc/httpd/.htpasswd tom   #-c第一次创建时需要添加,第二次创建如果加上会覆盖掉之前的.-m,使用md5格式加密密码.

测试:

   

可以访问,当然也可以正对于某个用户设置或者某个组.

设置某个网段或者固定的IP地址的访问权限:

编辑virtualhost.conf文件添加以下:

<VirtualHost 10.140.165.170:80>
        ServerName www.51cache.top
        DocumentRoot "/www/51cache.top"
        <Directory "/www/51cache.top">
                Options none
                AllowOverride none
                Order deny,allow
                Deny from 10.140.165.93   #拒绝93IP进行访问,如果是一个网段也可以添加为:10.140.165.0/24,allow机制不再2.4中支持.
        </Directory>
</VirtualHost>

测试:

  

设置virtualhost日志记录机制:

编辑virtualhost.conf文件,添加日志记录功能:

<VirtualHost 10.140.165.169:80>
        ServerName www.izyno.com
        DocumentRoot "/www/izyno.com"
        CustomLog /var/log/httpd/izyno.com/access_log combined   #添加日志记录,需要新建izyno.com文件.
        <Directory "/www/izyno.com">
                Options none
                AllowOverride authconfig
                AuthType basic
                AuthName "my site."
                AuthUserFile "/etc/httpd/.htpasswd"
                Require valid-user
        </Directory>
</VirtualHost>

新建日志目录:

mkdir /var/log/httpd/{izyno.com,b.con,51cache.top,51cache.org} –pv

测试:

客户端访问b.com,查看b.com生成的日志:

[[email protected] b.com]# ls
access_log
[[email protected] b.com]# cat access_log
10.140.184.166 - - [10/Oct/2016:12:34:37 +0800] "GET / HTTP/1.1" 200 34 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3)"
10.140.184.166 - - [10/Oct/2016:12:34:37 +0800] "GET /favicon.ico HTTP/1.1" 404 284 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3)"

完成日志机制.

设置访问的页面不存在default页面跳转:

在virtualhost.conf添加默认跳转:

<VirtualHost 10.140.165.169:80>
        ServerName _default_
        DocumentRoot "/www/default"
</VirtualHost>

新建default/index.html

测试:

Apache的日志又多又杂,如果靠分析日志或者查看服务器进程来监视Apache运行状态的话,比较繁冗。其实在Apache 1.3.2及以后的版本中就自带一个查看Apache状态的功能模块server-status

定义Location server-status 机制:

编辑httpd.conf文件取消以下的#号注释.

<Location /server-status>
    SetHandler server-status
    Order allow,deny
    Allow from 10.140.184.166
</Location>

测试:在10.140.184.166进行访问:

这是一个完整的server-status的配置。
第一行的ccvita-server-status表示以后可以用类似http://www.ccvita.com/ccvita-server-status来访问,同时
http://www.ccvita.com/ccvita-server-status?refresh=N将表示访问状态页面可以每N秒自动刷新一次;
Deny from表示禁止的访问地址;
Allow from表示允许的地址访问;
ExtendedStatus On表示的是待会访问的时候能看到详细的请求信息,另外该设置仅能用于全局设置,不能在特定的虚拟主机中打开或关闭。启用扩展状态信息将会导致服务器运行效率降低。

在10.140.165.93下访问:

完成.

时间: 2024-10-07 01:38:09

httpd 虚拟主机建立之访问机制及其日志定义的相关文章

实例讲解httpd虚拟主机的配置以及https的配置

要求: 1.建立httpd服务器,要求: 提供两个基于名称的虚拟主机: (a)www1.stuX.com,页面文件目录为/web/vhosts/www1;错误日志 为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access (b)www2.stuX.com,页面文件目录为/web/vhosts/www2:错误日志 为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access (c)为两个虚拟

httpd虚拟主机配置及基于用户的访问控制

本文旨在实践httpd虚拟主机及基于用户的访问控制 知识储备 虚拟主机有三种实现方案: 基于ip: 为每个虚拟主机准备至少一个独有ip地址: 基于port: 为每个虚拟主机使用至少一个独有的port: 基于FQDN: 为每个虚拟主机使用至少一个FQDN: 注意:一般虚拟机不要与中心主机混用:因此,要使用虚拟主机,得先禁用'main'主机: 禁用方法:注释中心主机的DocumentRoot指令即可: 基于用户的访问控制: http协议认证方式2种 basic:明文 digest:消息摘要认证 本次

web服务之httpd虚拟主机配置你造吗?

一.httpd虚拟主机的分类 1.基于ip地址的虚拟主机 2.基于端口的虚拟主机 3.基于域名的虚拟主机 二.配置虚拟主机 实验环境:centos6,使用Yum安装的httpd服务 准备工作:注释中心主机的DocumentRoot站点根目录,创建/etc/httpd/conf.d/vhosts.conf配置文件,创建实验需的站点目录: mkdir -pv /www/{a.com,b.net,c.org}/htdocs,每次修改配合文件时检查语法:httpd -t   重启服务:service h

Linux系统学习 十九、VSFTP服务—虚拟用户访问—为每个虚拟用户建立自己的配置文件,单独定义权限

为每个虚拟用户建立自己的配置文件,单独定义权限 可以给每个虚拟用户单独建立目录,并建立自己的配置文件.这样方便单独配置权限,并可以单独指定上传目录 1.修改配置文件 vi /etc/vsftpd/vsftpd.conf user_config_dir=/etc/vsftpd/vusers_dir    #指定保存虚拟用户配置文件的目录 2.建立目录 3.为每个虚拟用户建立配置文件 vi /etc/vsftpd/vusers_dir/cangls anon_upload_enable=YES an

运维学习之Apache的配置、访问控制、虚拟主机和加密访问https

apache 一.安装Apache服务 yum install httpd -y systemctl start httpd systemctl stop firewalld systemctl enable httpd systemctl disable firewalld 二.apache信息 1.apache的默认发布文件 index.html 在默认发布文件内写入要展示的内容,在浏览器中输入本机http://172.25.254.126可以看到内容 2.apache的配置文件 /etc/

httpd虚拟主机

Apache虚拟主机相关概念 若不考虑虚拟的话,安装好Apache后可以提供一个网站或站点的运行平台给我们.需要注意的是,Apache本身不是一个站点,只是一个运行的服务器.这个服务器有时候又被称为Host也被称为物理主机,它指的是服务器本身能够运行的站点. 那么为什么要用到虚拟主机呢?我们要想实现Web站点而且能够在互联网上被访问,首先它得能够运行在一个操作系统上而且这个操作系统得运行在一个物理主机上,这是第一个前提.所以它是一个主机如果想要在互联网上能够被访问那我们需要一个主机.一个IP地址

CentOS7配置httpd虚拟主机

本实验旨在CentOS7系统中,httpd-2.4配置两台虚拟主机,主要有以下要求: (1) 提供两个基于名称的虚拟主机: www1.stuX.com,页面文件目录为/web/vhosts/www1:错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log: www2.stuX.com,页面文件目录为/web/vhosts/www2:错误日志为/var/log/httpd/www2/error_log,访问日志为

apache开启虚拟主机localhost无法访问

今天在集成环境下配虚拟主机,没想到虚拟主机开启后,localhost竟然无法访问了,解决办法是这样的: 实例一,Apache 配置localhost虚拟主机步骤 1,用记事本打开apache目录下httpd文件(如:D:\wamp\bin\apache\apache2.2.8\conf),找到如下模块 # Virtual hosts #Include conf/extra/httpd-vhosts.conf 去掉前面的#,这样就开启了httpd-vhosts虚拟主机文件.这时候重启wamp环境,

01 安装apache php配置 时区 环境变量 安装mysql 虚拟主机 文件夹访问权限 目录别名

php介绍 简介与历史 应用领域: php运行环境 php语言运行原理 安装apache: PHP的命令行运行模式(独立运行): 配置apache以运行php网页 配置php的基本运行环境 确定php配置文件(php.ini)的位置: 配置时区: 设置环境变量 检测apache配置文件语法 配置数据库连接机制 安装mysql数据库 虚拟主机配置 端口监听: 主机配置关键项 配置文件夹访问权限 主机别名设置 文件夹访问控制的文件控制方式 目录别名设置Alias 多站点配置: php介绍 简介与历史