1.基本配置
1.1 默认网站
查看配置、修改首页,略…
1.2 网站根目录
创建新的根目录和首页
mkdir /www
echo "<h1>hello</h1>" > /www/index.html
编辑主配置文件
vim /usr/local/httpd/conf/httpd.conf
修改参数
修改前:
修改后:
重启服务,并测试
2.虚拟主机
2.1 配置虚拟主机
编辑主配置文件
vim /usr/local/httpd/conf/httpd.conf
Require all denied 改为 Require all granted
引入虚拟主机的子配置文件 httpd-vhosts.conf
编辑 httpd-vhosts.conf
创建网站目录和首页
mkdir /my
echo "<h2>my web site</h2>" > /my/index.html
重启服务
systemctl restart httpd.service
修改hosts文件,实现本机域名解析(编辑:C:\Windows\System32\drivers\etc\hosts)
此时用浏览器访问
http://192.168.9.4 、http://www.my.com 、 http://www.myweb.com 都会访问到
2.2 练习
要求再配置一个虚拟主机
域名:www.your.com
网站目录:/your
2.3 基于端口的虚拟主机
编辑主配置文件
编辑子配置文件 httpd-vhosts.conf
创建网站目录和首页
mkdir -p /my/8088
echo "<h2>my web site 8088</h2>" > /my/8088/index.html
mkdir -p /my/8089
echo "<h2>my web site 8089</h2>" > /my/8089/index.html
重启服务,并测试
3.域名跳转
编辑主配置文件,开启域名跳转模块
编辑虚拟主机子配置文件,配置域名跳转
RewriteEngine On
RewriteRule ^(.*)$ http://newsite.com/$1 [R=301,L]
创建新域名对应的目录和首页
mkdir /newmy
echo "<h2>new my site</h2>" > /newmy/index.html
编辑windows本机hosts,模拟域名解析
重启服务,并测试
输入的网址是 http://www.my.com ,会自动跳转至 http://www.newmy.com/
4.日志切割
4.1 配置日志格式等
在虚拟主机的子配置中测试即可
ErrorLog "|/usr/local/httpd/bin/rotatelogs -l /usr/local/httpd/logs/my_error_%Y%m%d.log 86400"
CustomLog "|/usr/local/httpd/bin/rotatelogs -l /usr/local/httpd/logs/my_access_%Y%m%d.log 86400" common
重启服务,访问虚拟主机,查看日志文件是否生成
使用 date 07220000 命令改变日期,再次访问虚拟主机,测试是否有新的日志生成
4.2 忽略某些日志
SetEnvif Request_URI ".*\.gif$" image-request
SetEnvif Request_URI ".*\.png$" image-request
SetEnvif Request_URI ".*\.bmp$" image-request
SetEnvif Request_URI ".*\.swf$" image-request
SetEnvif Request_URI ".*\.js$" image-request
SetEnvif Request_URI ".*\.css$" image-request
env=!image-request
重启服务,访问并查看日志,发现 png 等类型文件的访问日志不再记录,而 jpg 的还会记录
5.静态缓存
编辑主配置文件,开启缓存模块
编辑主配置文件,配置某种文件的缓存时间
也可以配置多种文件类型,如下:
重启服务,使用 curl 访问测试
curl -x192.168.9.4:80 'http://192.168.9.4/b.png' -I
6.防盗链
再准备一台虚拟机,安装apache,盗取 www.my.com 上图片
原服务器上的图片:
盗图网站 www.other.com 上的图片:
在原服务器上的虚拟主机子配置文件中进行配置:
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
SetEnvIfNoCase Referer "^http://.*\.my\.com" local_ref
<filesmatch "\.(txt|png|gif|doc|mp3|zip|rar|jpg|css|js)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>
此时 www.other.com 的网页效果:
.com" local_ref
<filesmatch “.(txt|png|gif|doc|mp3|zip|rar|jpg|css|js)”>
Order Allow,Deny
Allow from env=local_ref
[外链图片转存中...(img-mdUzASb5-1733799805562)]
此时 www.other.com 的网页效果:
[外链图片转存中...(img-k6FuRU0A-1733799805562)]