第 十 九 天 :架 构 下 Apache 的 基 本 配 置

Q:我们都希望喝酒的时候有个人会深情的看着我温柔的说,少喝点,伤身体,

麻痹现实中却总是有个煞笔在旁边吼,闹啥那,养鱼啊,喝完。。。。。。

今天国庆放假了,大家都回去了,剩我自己在宿舍默默的奋斗,挺孤单的;不过我一直告诉自己强者往往是孤独的,我做不了强者,不过我也要能适应这分孤独;

今天主要是紧接着前几天LAMP架构和discuz论坛来配置Apache的各个配置模块,

来实现服务器网站的一些配置。

Apache 切割日志:

底部有截图介绍

有时候我们访问一个网站,随便点几下,就会在他的日志文件下产生几百条数据,当一个网站点击率多时,我们的磁盘压力就太大了。为了解决问题,我们不仅需要一个大的磁盘,还要进行切割这样我们就能有选择地实时删除分割日志,来记录重要数据。

进入虚拟主机配置文件 :

/usr/local/apacje2/conf/extra/httpd-vhosts_conf

将 ErrorLog ········ 和 CustomLog ········· common 注释去掉,

引号内可自定义日志所在的相对路径 后者的common格式解释在Apache2配置文件

common 和 combined 格式介绍:

%h 来源IP   %I 不存在,用-表示   %u 用户   %t 时间    "\%r\" 动作    %>s 访问的东西

%b 状态码   %refer 网址的路径     "%{User-Agent 浏览器的标识

最好将common格式改为combimed格式

配置分割日志:添加

CustomLog “|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%y%m%d_log 86400 ”

此时用绝对路径,为防止命令找不到路径; -l 好像是指示中国时间 86400 以秒为单位,便是以天分割日志,可以用更改系统时间的方式更新检验

而 ErrorLog 错误日志,一般不用,毕竟出错的记录不多

Apache 不记录指定类型:

底部有截图

我们刷新一下网站就会看到的日志记录了大量的信息,但是大部分信息都是由静态图片方块产生的,无用而且站磁盘,在我们需要查看来访IP做了什么时也不方便找,我们就要想办法去掉这些无用的文件类型;

进入虚拟主机配置文件:

vim     /usr/local/apache2/conf/extra/httpd-vhost.conf

在主模块,即日志文件上下插入即可

SetEnvIf    Request_URI   ".*\.gif$"    image-request

SetEnvIf    Request_URI   ".*\.jpg$"   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

EorrLog ··················

CustomLog ```````````````` combined 加 (显示)env = ! image-request 只记录不是 image-request 的文件,要加在customlog 同一行;

静态配置缓存:

底部有截图

比如有一个网站,每个页面都会有大量的图片logo方块等文件,不止占内存,在更新页面时还浪费带宽;每次请求(进入或刷新)网页时,服务器都要发送界面信息到浏览器,期间的传输就会有大量的带宽流失,为了解决这个,我们把一些静态的配置都缓存到了浏览器,

用户请求时,就可以直接调用浏览器的缓存资源,

可以大量节省服务器传送消耗的带宽。

进入虚拟主机配置:

vim /usr/local/apache2/conf/extrs/httpd-vhost.conf

主模块下加静态缓存模块:

<IfModule mod_expires.c>

ExpiresActive on

ExpiresByType    image/gif     "access plus 1 days" gif            文件缓存时间为一天

ExpiresByType    image/jpeg   "access plus 24 hours"

ExpiresByType    image/png    "access plus 24 hours"

ExpiresByType    image/css     "access plus 2 hours" css          文件缓存大约两小时

ExpiresByType    application/x-javascripts    "now plus 2 hours"

ExpiresByType    application/x-shockwave     "now plus 2 hours"      两小时立刻吧

ExpiresDefault "now plus 0 min"

</IfModule>

保存    检测      重启或重加载

curl测试: curl    -x127.0.0.1:80      ‘图片或者什么的衔接网址’      -I

127.0.0.1 也是localhost 在/etc/hosts里面有定义,是个回环地址,windows linux上都有的,包括你的安卓手机,这个网络通信必须要有的

输出中有一行:

Cache-Control: max-age=86400     就代表的缓存时间,以秒为单位

配置防盗链:

底部有截图

比如我们有一个网站,里边有好多好玩的图片视频什么的;别人可以复制我们的衔接放到他们要放的地方(比如博客空间···),然后我们图片的衔接就会转变成,他所放位置的网站的一个衔接(就是说这个图片已经不再是只属于我们的了),而且他复制我们的衔接的时候,用的还是我们网站的带宽,

我们损失就有点大了;所以就有了防盗链,我们网站上的东西只要一更换衔接就看不到了;

期间涉及一个跳转(refere)的概念:我们现在所在的页面是通过点击的哪个refere过来的;

进入虚拟主机配置文件:

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

设置白名单(添加模块):

SetEnvIfNocase  Referer  "^http://.*\.test\.com"   local_ref

SetEnvIfNocase  Referer  "^http://.*\.test\.com"   local_ref

<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png|js|css)">

Order Allow,Deny

Allow from env=local_ref

</filesmatch>

模块放在域名跳转与静态缓存之间的 </IfModule>模块内即可

保存 退出 检测 重启



Apache的访问控制:

底部有截图

有时我们会发现阿哦们日志内会发现有个IP一直在重复一个错误的操作,有可能我们网站正在被黑,

所以我们要禁止这个IP访问,可以通过命令临时,或者把它加到黑名单;

我们可以去主机的配置文件 /usr/local.apache2/conf/httpd.onf 中拷贝个模板,见下

进入虚拟主机配置文件 :

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

添加模板:在主域名模块下

<Directory "/data/www">               网站所在地址

Options   None

AllowOverride   None

Order   allow,deny                 是指先执行谁,在这先执行allow

Allow  from  all

Deny   from  127.0.0.1 127.0.0.1   是回环网卡,系统自带,到时设置要改回来

</Directory>

上设置了一个黑名单限制127.0.0.1,我们也可以设置白名单,只要明白原理就好,但是注意

Order  deny,allow

Allow  from  all

Deny  from  127.0.0.1   这样就起无效果了,因为限制了IP,之后有allow允许了所有IP

还有一种方式,用我们上节防盗链引用的模块。我们的登录形式有可能是主页直接登陆

www.test.com/forum.php``````或者以www.test.com/admin.php·········

后台方式登陆,以后台登录为例限制

<filesmatch "(.*)admin(.*)">          引号内就是针对这种形式的域名,进行限制

Order Allow,Deny

Allow from all

Deny from 127.0.0.1                实验完要改回来

</filesmatch>

保存   检测   重加载

测试:curl   -x127.0.0.1:80    -I    www.baidu.com

对比: curl   -x192.168.1.103:80    -I    www.baidu.com 观察状态码


禁止解析php:

底部有截图

在我们安装discuz的时候,我们对data   config 文件设置了daemon为所属主,就是说所有人都可以访问这个目录下的文件,并可写(即可上传文档);有时我们的网站有一些漏洞,一些黑客就可以上传木马文档,当一点击网站就会自动解析,那后果就严重了;

解决方法有:我们可以改权限不让用户上传文件,显然是不行;另一种方法就是不让网站解

析php文件,so即使上传了木马文件,文件不去解析也没事;

禁止解析对我们保护重要文件也好,免得任何人都能看到我们的重要文件;

进入虚拟主机的配置文件:

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

添加模块:在防盗链上面

<Directory /data/www/data>                           要防止解析的目录

php_admin_flag engine off

<filesmatch "(.*)php">                          这几句话不添加的话,当你访问路径下的文件时,

Order Allow,Deny                           他会直接提示下载,源代码就被下载走了,也不行

Allow from 127.0.0.1

Deny from all

</filesmatch>

</Directory>

保存 检测 重加载

这样配置好之后,网站就不会自动解析这个目录下的任何文件,就会显示403错误

可用curl可测试






时间: 2024-10-05 14:49:52

第 十 九 天 :架 构 下 Apache 的 基 本 配 置的相关文章

第 二 十 天 :架 构 下 Apache 的 基 本 配 置 (二)

小Q:别人删你的时候,系统不会告诉你,是怕你伤心:你删别人的时候,系统会 提示你,是怕你后悔:系统尚且如此,人那.... 今天完成昨天未完的任务,Apache的配置:不过自己在宿舍,效率感觉下降了,虽说安静才有学习的气氛,但是我是真不这么认为了:至少对于我来说,不是了.心情都不好了,这么一直待着. Apache禁止指定的user_agent: 在我们设置分割日志格式的时候,我们用了combine格式,各式末尾就是user_agent,代表网络标识或搜索引擎内核? 有时当我们网站访问量很大时,其实

第 二 十 二 天 :LNMP 架 构 的 基 本 配 置(一)

小Q:把委屈和泪水都咽下去,输不起就不要输,死不了就站起来,告诉所有看不 起你的人:我很好. LNMP架构和LAMP架构一样,其实都是配置web服务的nginx或Apache中的虚拟主机配置文件:因为配置Apache的时候用了很长时间去理解,所以在nginx时,感觉轻松好多,配置的内容都一样:现在介绍第一部配置. nginx用户认证: [后有截图] 同Apache的认证类似:比如我们要在后台管理界面进行双重加密(即在www.test.com/admin.php界面加一个用户认证). cd   /

第 二 十 二 天 :LNMP 架 构 的 基 本 配 置(二)

小Q:生活从来都不容易,当你觉得容易的时候,肯定有人再替你承担属于你的不 容易:而身为我们的我们,应该扛起那些不容易,至少至少要扛起自己的. 同样的说法,nginx配置是比Apache简单,所以可以称为新一代的主流:紧接着上一节,我们还有几个配置要说一下.期间千万要配置完之后检查·加载,有时候出的错累积太多,真的都不想去检查,但是工作中有必须得去检查. 配置静态缓存文件: [后有截图] 第一加快响应速度:第二节省我们带宽. 进入虚拟主机配置文件: vim    /usr/local/nginx/

swift详解之十九--------------UITableView的基本操作(下拉刷新,新增删除,分组,检索等)

UITableView的基本操作(下拉刷新,新增删除,分组,检索等) 注:本小结总结UITableview的一些基本用法 UITbleView继承自UIScrollView,只能用来显示一列数据(目前就只认识到这里),纵向滑动. 一般有两种方式来实现,直接用UITableViewController , 占满整个屏幕 .不用手动实现UITableViewDataSource 和UITableViewDelegate .另一种方式在UIViewController 中.我们看看这种方式 let t

Android实战简易教程-第十九枪(SwipeRefreshLayout下拉刷新使用实例)

我们来看SwipeRefreshLayout的具体用法,顾名思义此组件就是一个布局,只不过要注意的是此布局内只能有一个直接子View.其实通过文档我们可以知道SwipeRefreshLayout只不过是继承了ViewGroup. 查看文档,我们可以知道,在SwipRefreshLayout中存在一个接口,通过此接口我们可以监听滑动手势,其实使用此组件最重要的步骤就是实现此接口的onRefresh方法,在此方法中实现数据的更新操作.如下: 接口中的方法: 除了OnRefreshListener接口

第 十 八 天 : 构 建 一 个 基 础 的 discuz 论坛

小Q:其实我就想一直像个孩子一样,不愿看太多的事,听太多的不是,单纯走完 这段简单的路:但是事与愿违,总得像个墙一样直面社会. 昨天构建了LAMP架构,今天练习构建了一个简单的 discuz 论坛,然后进行了一 些配置, 现在组成了一个本地的论坛. 下载安装discuz: wget  (curl -O)  http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip 或去 comsenz网站找需要的 最好下载到 /data/www

linux下apache服务搭建

实验拓扑:                          Linux Client -----RHEL5.9(vmnet1)----------(vmnet1)                          Win7 Client 实验一:查看默认HTTP配置     找到默认红帽欢迎页面 (/etc/httpd/conf/httpd.conf ---->Include ----> /etc/httpd/conf.d  ----> welcome.conf  ----> /

第十九课预习任务

第十九课预习任务 11.25 配置防盗链11.26 访问控制Directory11.27 访问控制FilesMatch11.28 限定某个目录禁止解析php11.29 限制user_agent11.30/11.31 php相关配置11.32 php扩展模块装安扩展几种限制ip的方法 http://ask.apelearn.com/question/6519apache 自定义header http://ask.apelearn.com/question/830apache的keepalive和k

Python之路【第十九篇】:爬虫

Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫. Requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. import