s0509笔记

Apache默认虚拟主机

一台服务器可以访问多个网站,每个网站都是一个虚拟主机 概念:域名(主机名)、DNS、解析域名、hosts 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机。
linux下配置虚拟主机
第一步:编辑配
置文件httpd.conf,
Include conf/extra/httpd-vhosts.conf //去掉#号
加载虚拟主机的配置文件以下的#号,使虚拟主机的配置文件生效
第二步:
<VirtualHost *:80>
DocumentRoot “/data/wwwroot/abc.com” //定义网站的根目录
ServerNameabc.com //定义域名,只能写1个
ServerAliaswww.abc.comwww.123.com //定义别名,可以写多个
ErrorLog “logs/abc.com-error_log” //定义错误日志
CustomLog “logs/abc.com-access_log” common //定义访问日志

<VirtualHost *:80>
DocumentRoot “/data/wwwroot/111.com”
ServerName111.com
ServerAliaswww.example.com
ErrorLog “logs/111.com-error_log”
CustomLog “logs/111.com-access_log” common

第三步: 创建和虚拟主机对应的站点根目录,以及新建相应index.php
第四步:ping 设置的www.abc.com,此时明显是外网的域名;
第五步:用curl -x192.168.112.136:80 abc.com 来测试

全局用户认证

在虚拟主机配置文件 httpd-vhosts.conf ,配置另一台虚拟主机信息;

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
DocumentRoot “/data/wwwroot/111.com”
ServerName 111.com
ServerAlias www.example.com
<Directory /data/wwwroot/111.com> //指定认证的目录
AllowOverride AuthConfig //这个相当于打开认证的开关
AuthName “111.com user auth” //自定义认证的名字,作用不大
AuthType Basic //认证的类型,一般为Basic
AuthUserFile /data/.htpasswd //指定密码文件所在位置
require valid-user //指定需要认证的用户为全部可用用户

ErrorLog “logs/111.com-error_log”
CustomLog “logs/111.com-access_log” common

为用户创建密码:/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd ying
新增加一个用户:/usr/local/apache2.4/bin/htpasswd -m /data/.htpasswd feng 不用-c

单个文件进行认证

1.在虚拟主机配置文件 httpd-vhosts.conf ,按下面修改信息;
<VirtualHost *:80>
DocumentRoot “/data/wwwroot/111.com”
ServerName 111.com
ServerAlias www.example.com
#<Directory /data/wwwroot/111.com> //加上#,这行不执行
<FilesMatch 123.php> //匹配 123.php才认证
AllowOverride AuthConfig
AuthName “111.com user auth”
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user

#
ErrorLog “logs/111.com-error_log”
CustomLog “logs/111.com-access_log” common

2.在111.com目录下,新建123.php,然后测试;
vim /data/wwwroot/111.com/123.php //新建123.php
curl -x192.168.112.136:80 111.com/123.php -I //错误 提示需要输入用户名密码
用-u参数,把用户名 ying,密码 www123 带上,在测试123.php
[root@ying01 ~]# curl -x192.168.112.136:80 -uying:www123 111.com/123.php -I

域名跳转

配置域名跳转vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost :80>
DocumentRoot “/data/wwwroot/111.com”
ServerName 111.com
ServerAlias www.example.com 2111.com.cn
#<Directory /data/wwwroot/111.com> //去掉#,不执行
#<FilesMatch 123.php>
#AllowOverride AuthConfig
#AuthName “111.com user auth”
#AuthType Basic
#AuthUserFile /data/.htpasswd
#require valid-user
#
# //去掉#,不执行

修改配置文件/httpd.conf ,把rewrite模块 加载上 vim /usr/local/apache2.4/conf/httpd.conf

LoadModule rewrite_module modules/mod_rewrite.so //把#取消,让其加载#LoadModule php5_module modules/libphp5.so
LoadModule php7_module modules/libphp7.so

查看网络链接, :::80 代表全网都支持跳转;
[root@ying01 ~]# netstat -ntpl

Apache访问日志

1.打开日志的目录,/usr/local/apache2.4/logs/查看日志
2. 查看日志格式打开apache主配置文件,查找日志的格式内容
3. vim /usr/local/apache2.4/conf/httpd.conf

访问日志切割

首先还是配置文件,按下面更改 访问日志(CustomLog)的内容

[root@ying01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
CustomLog “|/usr/local/apache2/bin/rotatelogs -l logs/123test-access_log_%Y%m%d_log 86400” combined env=!img
语句释义:
*
/usr/local/apache2.4/bin/rotatelogs工具是apache自带的分割日志的工具
*
-l参数按当前系统时间为基准进行切割(我国为CST),否则默认UTC
*
%Y%m%d表示年月日,这样会每天记录一个带日期的日志文件,更方便
*
86400(s)表示每天都进行切割,一天24小时等于86400秒

猜你喜欢

转载自blog.csdn.net/weixin_42405611/article/details/90056010