Apache之虚拟主机
虚拟主机:
部署多个站点,每个站点,希望用不同的域名和站点目录,或者是不同的端口
不同的IP,需要虚拟主机
一句话,一个http服务要配置多个站点,就需要虚拟主机。
虚拟主机分类:
1.基于域名.
2.基于端口。
3.基于ip。
域名 站点目录
www.zr.com /var/html/www
blog.zr.com /var/html/blog
bbs.etiantian.org /var/html/bbs
第一步:创建3个站点目录及首页文件:
[root@localhost ~]# mkdir /var/html/{www,blg,bbs} -p [root@localhost ~]# touch /var/html/{www,blg,bbs}/index.html
第二步,在首页文件内写入内容:
[root@localhost ~]# for name in www blg bbs;do echo "http://$name.zr.org" >/var/html/$name/index.html;done
第三步,修改apach的一个配置文件
[root@localhost extra]# vim httpd-vhosts.conf <VirtualHost *:80> ServerAdmin 1481673412@qq.com DocumentRoot "/var/html/www"#站点目录 ServerName www.zr.org#域名 ServerAlias zr.org#别名 ErrorLog "logs/www-error_log"#错误日志存放地点 CustomLog "logs/www-access_log" common </VirtualHost> <VirtualHost *:80> ServerAdmin 1481673412@qq.com DocumentRoot "/var/html/blg"#站点目录 ServerName blg.zr.org#域名 ServerAlias zr.org#别名 ErrorLog "logs/blg-error_log"#错误日志存放地点 CustomLog "logs/blg-access_log" common </VirtualHost> <VirtualHost *:80> ServerAdmin 1481673412@qq.com DocumentRoot "/var/html/bbs"#站点目录 ServerName bbs.zr.org#域名 ServerAlias zr.org#别名 ErrorLog "logs/bbs-error_log"#错误日志存放地点 CustomLog "logs/bbs-access_log" common </VirtualHost>
第四步:修改apach著配置文件:httpd.conf
主要修改的目的就是启用httpd-vhosts.conf和httpd-mpm.conf这个文件,让他的配置生效。去掉#
注意配置完事之后要检查语法:/bin/apache -t
平滑启动apache
第五步:本地解析自己的网站,修改host文件
第六步:需要再修改httpd.conf,目的是增加站点目录,在最后一行加上
<Directory "/var/html"> Options FollowSymlinks AllowOverride None Options None Order allow,deny Allow from all </Directory>
重启apache服务
第七步:访问自己的网站用域名,发现成功了
基于端口:
1.修改httpd.conf文件增加监听端口
2.再修改httd-vhost-conf文件增加NameVirtualHost *:任意端口
3.再将下面的<VirtualHost *:80>修改相应的端口
4.在访问的时候网址后面要加上端口号
基于IP地址:
增加临时IP地址:ifconfig etho:0 192.168.157.155
1.修改vhost.conf这个配文,把网站对应的域名修改成对应的ip地址,如下把blg.zr.org改成IP地址
<VirtualHost *:80> ServerAdmin 1481673412@qq.com DocumentRoot "/var/html/blg"#站点目录 ServerName blg.zr.org#域名 ServerAlias zr.org#别名 ErrorLog "logs/blg-error_log"#错误日志存放地点 CustomLog "logs/blg-access_log" common </VirtualHost>
统计不同ip的访问次数:
[root@localhost tools]# awk '{print $1}' www-access_2019-10-11log |sort|uniq -c|sort -rn -k1|head -10
原文地址:https://www.cnblogs.com/zrxuexi/p/11652703.html
- 在 Mac OS X 装不上 TensorFlow?看了这篇就会装
- 利用python内置函数,快速统计单词在文本中出现的次数
- 物化视图刷新结合ADG的尝试(二)(r8笔记第57天)
- python 下利用os模块创建目录以及巧妙使用if not os.path.exits()创建
- Python读取json文件,并转化为字典进行提取字段(出现索引must be int,not str)解决方案
- Python 把字典的key和value的值取出来,按照顺序存入到list中
- Go语言 如果实现http重连?
- python strip()函数 删除字符串中无空白字符或者是无用字符
- 闪回归档的简单测试(r8笔记第68天)
- sql语句查询到整个数据库的容量
- 神奇的go语言
- 备库查询导致的ORA-01110错误及修复(r8笔记第67天)
- SQL客户端DBvisualize直接导入数据出现中文乱码
- Python基础整理操作积累
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法