Linux Apache虚拟主机配置方法
apache 虚拟主机配置
注意:
- 虚拟主机可以开很多个
- 虚拟主机配置之后,原来的默认/etc/httpd/httpd.conf中的默认网站就不会生效了
练习:
主机server0
- ip:172.25.0.11
- hostname:server0.example.com
客户机
- desktop0
要求:配置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虚拟主机配置方法的更多相关文章
- linux apache虚拟主机配置(基于ip,端口,域名)
配置环境: linux版本:Centos6.4 httpd版本: [root@centos64Study init.d]# pwd/etc/init.d[root@centos64Study init ...
- Apache 虚拟主机 配置方法
打开httpd.conf文件 去掉LoadModule vhost_alias_module modules/mod_vhost_alias.so前面的#号 去掉Include conf/extra/ ...
- Linux下Apache虚拟主机配置
Linux下Apache虚拟主机的三种配置.这样可以实现一台主机架构多个独立域名网站.其中基于域名的最为常见.性价比也最高.下面PHP程序员雷雪松详细的讲解下Linux下Apache虚拟主机配置的具体 ...
- ubuntu apache2配置详解(含虚拟主机配置方法)
ubuntu apache2配置详解(含虚拟主机配置方法) 在Windows下,Apache的配置文件通常只有一个,就是httpd.conf.但我在Ubuntu Linux上用apt-get inst ...
- windows环境下,apache虚拟主机配置
在windows环境下,apache从配置文件的相关配置: Windows 是市场占有率最高的 PC 操作系统, 也是很多人的开发环境. 其 VirtualHost 配置方法与 Linux 上有些差异 ...
- Apache虚拟主机配置
在一个Apache服务器上可以配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录.Apache虚拟主机配置有3中方法:基于IP配置.基于域名配置和基于端口配置,这里介 ...
- Apache虚拟主机配置(多个域名访问多个目录)
Apache虚拟主机配置(多个域名访问多个目录) 为了方便管理虚拟主机,我决定使用一种方法,那就是修改httpd-vhosts.conf文件. 第一步首先要使扩展文件httpd-vhosts.conf ...
- Apache虚拟主机配置(多个域名访问多个目录)(转)
Apache虚拟主机配置(多个域名访问多个目录) 为了方便管理虚拟主机,我决定使用一种方法,那就是修改httpd-vhosts.conf文件. 第一步首先要使扩展文件httpd-vhosts.conf ...
- apache虚拟主机配置及解析
Apache虚拟主机配置及解析 1.修改httpd-vhosts.conf 打开apache(Apache24)/conf/extra/httpd-vhosts.conf文件,添加虚拟主机信息,可以这 ...
随机推荐
- go语言学习--go中godep的使用小结
go中的godep 本文参考:http://www.cnblogs.com/me115/p/5528463.html#h20 http://studygolang.com/articles/4385 ...
- note 12 集合Set
集合Set +无序不重复元素(键)集 +和字典类似,但是无"值" 创建 x = set() x = {key1,key2,...} 添加和删除 x.add('body') x.re ...
- postgis创建空间数据库,导入shp数据
使用向数据库中导入数据
- 封装poi导入篇
前言 有封装的想法好久了,项目中有不少地方需要使用导入功能,导入虽说不能,但是每次都要为了特定类写一个特定方法,很麻烦,我很讨厌一直写这种东西了,正好趁着这次机会就写一个可以解决这种问题的小项目. m ...
- Android开发 android沉浸式状态栏的适配(包含刘海屏)转载
原文地址:https://blog.csdn.net/liup1211/article/details/86583015 写在前面: 1,本文阐述如何实现沉浸式状态栏 2,部分代码有从其他博客摘抄,也 ...
- Exp5 MSF基础应用 20164313 杜桂鑫
1. 实践目标 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 1.1一个主动攻击实践,如ms08_067; (1分) 1.2 一个针对浏览器的攻击, ...
- Docker技术应用场景(转载)
场景一:节省项目环境部署时间 1.单项目打包 每次部署项目到测试.生产等环境,都要部署一大堆依赖的软件.工具,而且部署期间出现问题几率很大,不经意就花费了很长时间. Docker主要理念就是环境打包部 ...
- python练习题_03
1.写函数: 根据范围获取其中3和7整除的所有数的和,并返回调用者: 符合条件的数字个数以及符合条件的数字的总和,如:def func(start,end): def func(start,end): ...
- sql中的常见报错;
1.对于某些写的sql懒得判断的: SELECT * FROM sys_part WHERE part_no =(SELECT part_no FROM dbo.sys_part) --字查询的结果 ...
- requests和session的区别
简单说 request对象和session对象的最大区别是生命周期. -request request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一次请求,当请求完毕之后,req ...