系列文章目录
RHCE第0章:RHCE开始前的准备
RHCE第1章:Web服务器(上)
RHCE第1章:Web服务器(下)
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
这次博客继续web服务器的内容,现在还原快照继续做实验。上一次博客中我们将所有html文件都存放于特定的文件夹中,但如果大型网页,文件非常多,那样很难管理,所以要将网页文件放在其他目录,方便管理。
一、任意目录存放html
安装服务器以及启动就不说了。
1.软连接
创建测试目录以及文件
mkdir /local
echo localtest > /local/index.html
创建网页所在文件夹的软链接,是文件夹,不是html文件
ln -s /local/ /var/www/html/soft
查看结果
2.编辑conf
mkdir /disk
echo disttest > /disk/index.html
vim /etc/httpd/conf.d/0.conf
编写主配置文件(一般情况下可以不编写),但是要演示实验还是写一下。
可以看到现在是找不到的
继续添加目录信息
这些格式都是apache设置后好的,不用硬记,用的时候粘贴一个就行。
重启服务器或者重读配置文件刷新浏览器。
现在变成了可以找到,但没有权限访问,这里说明一下,前边也说过,为了安全性,apache将所有目录都禁掉,需要那个在开启那个,现在我们需要开启/disk的目录权限。
可以直接从apache的默认配置文件中拷一份
vim /etc/httpd/conf/httpd.conf
直接加到后边,然后再改一改
然后重启刷新浏览器
可以看到已经能够正常访问了。
二、apache调用脚本
现在还原快照,继续实验。
不解释了
apache常用的脚本一般是shell perl python
先创建三个脚本,一般存放于/var/www/cgi-bin/目录
shell
#!/bin/bash
echo -en "Content-Type: text/html; charset=UTF-8\n\n";
date +%c
perl
#!/usr/bin/perl
print "Content-Type: text/html; charset=UTF-8\n\n";
$now=localtime();
print "$now\n";
python
#!/usr/bin/env python
import time
def application (environ, start_response):
response_body = 'UNIX EPOCH time is now: %s\n' % time.time()
status = '200 OK'
response_headers = [('Content-Type', 'text/plain'),
('Content-Length', '1'),
('Content-Length', str(len(response_body)))]
start_response(status, response_headers)
return [response_body]
1.shell perl调用
先写个主配置文件,怎么写上边有。
给脚本加执行权限
chmod a+x /var/www/cgi-bin/shell.sh /var/www/cgi-bin/perl.pl
再主配置文件中加一个脚本调用模块,这里也可以直接去默认配置文件里拷一份
可以看到,大部分都是注释,那都不需要
修改以后主配置文件就这样
然后重启服务器调用脚本
2.python调用
安装需要的模块
yum install python3-mod_wsgi.x86_64 -y
继续修改主配置文件
之后重启服务器。
调用脚本
可以看到,这个脚本已经被正常调用了,但是结果好像不太对,回来博主查看发现,python代码使用2写的,所以咱们换一些代码就行
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
再次刷新浏览器
已经可以正常调用了。
三、增加限制
创建测试文件
mkdir /var/www/html/secret
echo chaogesecret > /var/www/html/secret/index.html
1.限制主机
用另一台虚拟机访问
现在我们要限制这台主机的访问,继续修改主配置文件。
里面三行简单说一下
第一行:进行允许和拒绝的判断
第二行:全部允许
第三行:拒绝个别主机。
然后重启服务器,用另一台虚拟机访问。
可以看到已经无法访问了。
2.密码验证
htpasswd -cm /etc/httpd/.chaogepasswd chaoge
-c新建
-m进行md5加密
密码文件存放目录,用隐藏文件提高安全性
chaoge 第一个用户
之后输入两次密码,可以为空
如果需要继续添加用户,去掉-c 其他不变。
继续修改主配置文件
第一行:认证名称(随意)
第二行:基础认证(固定)
第三行:密码文件所在位置
第四行:对象认证(固定)
重启,用另一台虚拟机再次访问。
已经添加了密码认证