apache 虚拟主机配置

注意:

  1. 虚拟主机可以开很多个
  2. 虚拟主机配置之后,原来的默认/etc/httpd/httpd.conf中的默认网站就不会生效了

练习:

要求:配置2个虚拟主机,域名分别为
1、www0.example.com
2、其他任意的域名,只要是可以访问到server0的域名,也可以用server0的ip和机器名进行访问

准备环境:

  1、server0机器

    ip:172.25.0.11

    机器名:server0.example.com

    /etc/hosts文件中写入了desktop0的信息

    firewalld和selinux开启

    可以使用yum源来安装httpd服务

  2、desktop0机器

    ip:172.25.0.10

    机器名:desktop0.example.com

    /etc/hosts文件中写入了server0的信息 

一、安装web服务端软件包

[root@server0 conf.d]# yum install httpd -httpd-manual -y
httpd-manual 帮助文档可以不用安装

二、配置虚拟主机的配置文件

1、其他域名访问配置文件

[root@server0 conf.d]# vim /etc/httpd/conf.d/default-vhosts.conf

	<VirtualHost _default_:80>                      ---> 匹配本机其他虚拟主机不能匹配的其他任何域名
DocumentRoot  /srv/default/www/              ---> 定义网站目录
CustomLog    "logs/default-vhost.log" combined    ---> 日志存放位置 <Directory /srv/default/www/>                ---> 指定网站目录访问控制
Options Indexes FollowSymLinks           ---> 可以复制httpd.conf中的<Directory /var/www/html>参数
AllowOverride None                  --->
Require all granted                  ---> 所有人都可以访问
</Directory>
</VirtualHost>

  

2、www0.example.com域名配置文件

[root@server0 conf.d]# vim /etc/httpd/conf.d/www0.example.com-vhosts.conf

<VirtualHost *:80>
Servername   www0.example.com        ---> 绑定域名
ServerAlias  www0 ---> 其他域名
DocumentRoot /srv/www0.example.com/www/ ---> 定义网站目录
CustomLog "logs/www0.example.com-vhost.log" combined ---> 日志存放位置 <Directory /srv/www0.example.com/www/> ---> 指定网站目录访问控制
Options Indexes FollowSymLinks --->
AllowOverride None --->
Require all granted ---> 所有人都可以访问
</Directory>
</VirtualHost>

  

注意配置文件格式,换行符

三、建立虚拟主机的网站目录

[root@server0 conf.d]# mkdir -p /srv/{default,www0.example.com}/www

四、建立测试网站的index.html

[root@server0 conf.d]# echo "I'm other" >> /srv/default/www/index.html
[root@server0 conf.d]# echo "I'm www0.example.com" >> /srv/www0.example.com/www/index.html

五、修改网站目录权限

[root@server0 conf.d]# chown apache"apache -R /srv/* 

六、配置selinux安全上下文

首先查看原来的目录安全上下文为var_t
[root@server0 conf.d]# ll -Zd /srv/
drwxr-xr-x. root root system_u:object_r:var_t:s0 /srv/
修改安全上下文
[root@server0 conf.d]# semanage fcontext -a -t 'httpd_sys_content_t' '/srv(/.*)?'
[root@server0 conf.d]# restorecon -Rv /srv/
可以看到安全上下文已经改变
[root@server0 conf.d]# ll -Zd /srv/default
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /srv/despotic/

注释:

1、安全上下文记不住可参考httpd默认网站目录的安全上下文
      ls -lZd /var/wwwt/html/
2、/srv(/).*? 正则表达式,?是修饰()的,表示括号里的内容可有可无
      当括号里的内容存在时,匹配到/srv/.*内容
      当括号里的内容不存在时,那么就匹配到的是/srv
3、restorecon -Rv /srv/ 刷新,使安全上下文生效

七、修改防火墙配置

[root@server0 conf.d]# firewall-cmd --permanent --add-service=http
[root@server0 conf.d]# firewall-cmd --reload 查看防火墙规则,可以看到services中已经有了http的服务,表明http的服务已经放行
[root@server0 conf.d]# firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client http ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

八、设定apache开启自启动,并且重新启动apache服务

[root@server0 conf.d]# systemctl enable httpd
[root@server0 conf.d]# systemctl restart httpd

以上就是apache虚拟主机完整的配置方法

desktop0机器访问以上地址:

  • curl www0                               返回 I'm www0.example.com
  • curl www0.dxample.com         返回 I'm www0.example.com
  • curl server0.example.com       返回 I'm other
  • curl 172.25.0.11               返回I'm other

本实验到此结束,还记得刚开始安装的httpd-manual包吗?下面我们来看一下效果。

使用浏览器访问172.25.0.11/manual可以打开Apache的帮助页面,如果配置的时候有不懂的地方,可以访问这个页面来查询帮助。

文中有什么不对或者不明白的地方,请大家私信我或者留言区发评论,我看到之后第一时间处理。

本人Linux菜鸟,欢迎各位Linux届大咖指导,共同进步,谢谢。

Linux Apache虚拟主机配置方法的更多相关文章

  1. linux apache虚拟主机配置(基于ip,端口,域名)

    配置环境: linux版本:Centos6.4 httpd版本: [root@centos64Study init.d]# pwd/etc/init.d[root@centos64Study init ...

  2. Apache 虚拟主机 配置方法

    打开httpd.conf文件 去掉LoadModule vhost_alias_module modules/mod_vhost_alias.so前面的#号 去掉Include conf/extra/ ...

  3. Linux下Apache虚拟主机配置

    Linux下Apache虚拟主机的三种配置.这样可以实现一台主机架构多个独立域名网站.其中基于域名的最为常见.性价比也最高.下面PHP程序员雷雪松详细的讲解下Linux下Apache虚拟主机配置的具体 ...

  4. ubuntu apache2配置详解(含虚拟主机配置方法)

    ubuntu apache2配置详解(含虚拟主机配置方法) 在Windows下,Apache的配置文件通常只有一个,就是httpd.conf.但我在Ubuntu Linux上用apt-get inst ...

  5. windows环境下,apache虚拟主机配置

    在windows环境下,apache从配置文件的相关配置: Windows 是市场占有率最高的 PC 操作系统, 也是很多人的开发环境. 其 VirtualHost 配置方法与 Linux 上有些差异 ...

  6. Apache虚拟主机配置

    在一个Apache服务器上可以配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录.Apache虚拟主机配置有3中方法:基于IP配置.基于域名配置和基于端口配置,这里介 ...

  7. Apache虚拟主机配置(多个域名访问多个目录)

    Apache虚拟主机配置(多个域名访问多个目录) 为了方便管理虚拟主机,我决定使用一种方法,那就是修改httpd-vhosts.conf文件. 第一步首先要使扩展文件httpd-vhosts.conf ...

  8. Apache虚拟主机配置(多个域名访问多个目录)(转)

    Apache虚拟主机配置(多个域名访问多个目录) 为了方便管理虚拟主机,我决定使用一种方法,那就是修改httpd-vhosts.conf文件. 第一步首先要使扩展文件httpd-vhosts.conf ...

  9. apache虚拟主机配置及解析

    Apache虚拟主机配置及解析 1.修改httpd-vhosts.conf 打开apache(Apache24)/conf/extra/httpd-vhosts.conf文件,添加虚拟主机信息,可以这 ...

随机推荐

  1. 微信小程序中的组件使用1

    不管是vue还是react中,都在强调组件思想,同样,在微信小程序中也是使用组件思想来实现页面复用的,下面就简单介绍一下微信小程序中的组件思想. 组件定义与使用 要使用组件,首先需要有组件页面和使用组 ...

  2. IE6设置li的float:left,不能自适应宽的解决方法

    原文地址:https://blog.csdn.net/u012299002/article/details/50589453 做个divcss页面,发现在IE6下,设置了li的float:left,L ...

  3. ES timeout 的一些笔记

    首先解释下Timeout的作用: 比如,一个search,可能要10分钟才能搜完,那么,es就会等10分钟,直到结果出来.然而,在某些场景下,客户是等不了10分钟的.比如,淘宝搜东西的时候,客户宁可等 ...

  4. 通过nginx日志,统计最近两天的交易笔数

    #!/bin/bash yesterday=`date -d last-day +%Y-%m-%d` dayago=`date -d '2 days ago' +%Y-%m-%d` #echo $ye ...

  5. hanlp使用自定义词典抽取关键词

    1.在data/dictionary/custom/路径下新建文件 myDict.txt.,添加新的单词,单词,词性,词频.并删除当前文件夹下的bin文件, 2.在hanlp配置文件中的CustomD ...

  6. CentOS安装MySQL的完整步骤

    1.官方安装文档 http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 2.下载 Mysql yum包 http://dev.mysql.co ...

  7. mysql 5.5数据导入5.7 Failed - Error on Table user - 1067 - Invalid default value for 'CREATE_date'

    表结构是这样 DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (....省略了一些无关紧要的字段 `CREATE_DATE_` timestamp NO ...

  8. 彻底搞懂Scrapy的中间件(一)

    中间件是Scrapy里面的一个核心概念.使用中间件可以在爬虫的请求发起之前或者请求返回之后对数据进行定制化修改,从而开发出适应不同情况的爬虫. "中间件"这个中文名字和前面章节讲到 ...

  9. LWIP之ARP协议

    描述ARP缓存表的数据结构: struct etharp_entry { struct etharp_q_entry *q; //数据包缓冲队列指针 ip_addr_t ipaddr; //目标IP地 ...

  10. 李清华201772020113《面向对象程序设计(java)》第十三周学习总结

    1.实验目的与要求 (1) 掌握事件处理的基本原理,理解其用途: (2) 掌握AWT事件模型的工作机制: (3) 掌握事件处理的基本编程模型: (4) 了解GUI界面组件观感设置方法: (5) 掌握W ...