优化方式一:后台优化,启用页面缓存
如果是动态网站应当尽量减少sql查询和代码执行,最好生成静态文件,或者开启sql缓存来减少代码执行时间。

阅读更多:About your home page

Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等。
本文主要讲解如何在Apache中配置启用rewrite和htaccess。

阅读更多:About your home page

简介

Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等。

阅读更多:About your home page

.htaccess文件称为分布式配置文件,它负责相关目录下的网页配置。

任何版本的Apache Web服务器都是支持.htaccess的,只要开启了AllowOverride选项。

启用.htaccess,需要修改httpd.conf开启AllowOverride选项,并可以用AllowOverride限制特定命令的使用,还可以用AccessFileName指令来改变默认的文件名。

开启选项:AllowOverride All
限制特定命令:AccessFileName .config

.htaccess文件中的配置指令作用于.htaccess文件所在的目录及其所有子目录,子目录的.htaccess文件指令会覆盖上级目录针对下级目录的指令。

注:能不使用.htaccess文件是尽量不要开启AllowOverride选项,因为它会增加服务器CPU的负荷,影响服务器的性能。开启了AllowOverride选项时Apache需要在每个目录和它的所有上级目录中中查找.htaccess文件,即使目录中没有.htaccess文件。

疑难解答:
问:我开启了httpd.conf中的AllowOverride选项,为何我的.htaccess文件不管用?
答:要查看开启AllowOverride选项所在的<Directory >标签对应的虚拟主机目录是否为您.htaccess文件所在的虚拟主机目录;有的虚拟主机<Directory >配置选项在httpd-vhosts.conf文件中;还要查看是否有覆盖。

    如果我们要想访问一个地址而重定向到另一个地址而地址栏的地址不变化时就需要使用代理服务器了。它可以让我们访问http://www.test.com/1.html而返回http://www.proxypass.com/1.html的内容。这种可以使用反向代理,比如一些翻墙google就是反向代理技术的实现。

阅读更多:About your home page

在Apache配置文件中注释用“#”

ServerRoot:软件安装目录,后面参数中最后目录不加“/”
Listen:默认服务器监听的IP地址和端口号,后面参数中可以是IP、端口、IP:端口
ServerAdmin:默认管理员的邮件地址
ServerName:默认网站的主机名
DocumentRoot:默认网站的根目录,后面参数中最后目录不加“/”
ErrorLog:默认错误日志的保存位置
LogLevel:默认错误日志的保存级别
CustomLog:访问文件保存目录
LoadModule:态加载Apache模块
DirectoryIndex:用于指定目录中默认的索引文件名称
ServerAdmin:设置在返回给客户端的错误信息中包含的管理员邮件地址
ServerName:设置服务器用于辨识自己的主机名和端口号
ServerAlias:服务器别名
DocumentRoot:设置Web文档根目录,默认存放网页位置
Timeout:服务器在断定请求失败前等待的秒数
KeepAlive On:启用HTTP持久链接
MaxKeepAliveRequests 100:一个持久链接中允许的最大请求数量
KeepAliveTimeout 5:持久链接中服务器在两次请求之间等待的秒数
HostnameLookups Off:启用对客户端IP的DNS查找

**********服务器优化**********
<IfModule prefork.c>
StartServers 5 #启动apache时启动的httpd进程个数。
MinSpareServers 5 #服务器保持的最小空闲进程数。
MaxSpareServers 10 #服务器保持的最大空闲进程数。
MaxClients 150 #最大并发连接数。
MaxRequestsPerChild 1000 #每个子进程被请求服务多少次后被kill掉。0表示不限制
</IfModule>

**********配置文件说明**********
/etc/httpd/httpd.conf 主配置文件
httpd-autoindex.conf 配置目录列表的辅配置文件
httpd-dav.conf 配置DAV的辅配置文件
httpd-default.conf 配置与Apache服务自身相关的辅配置文件
httpd-info.conf 配置用于服务器信息和状态显示的辅配置文件
httpd-languages.conf 配置语言支持的辅配置文件
httpd-manual.conf 配置提供Apache文档访问的辅配置文件
httpd-mpm.conf 配置多路处理模块(MPM) 的辅配置文件
httpd-multilang-errordoc.conf 配置多语言错误应答的辅配置文件
httpd-ssl.conf 配置SSL模块的辅配置文件
httpd-userdir.conf 配置用户主目录的辅配置文件
httpd-vhosts.conf 配置虚拟主机的辅配置文件

**********设置Apache服务器目录默认的访问控制**********

<Directory />
</Directory>

**********设置虚拟主机**********

<VirtualHost *:80>
ServerAdmin
DocumentRoot
ServerName
ServerAlias
ErrorLog
CustomLog
</VirtualHost>

什么是robots.txt文件?

搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信息。
您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被robot访问的部分,
这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜索引擎只收录指定的内容。

robots.txt文件放在哪里?

robots.txt文件应该放在网站根目录下。需要注意的是这个根目录是每个域名的根目录。

robots.txt文件的格式

robots.txt文件包含一条或更多的记录,这些记录通过空行分开;
在该文件中可以使用#进行注解,。该文件中的记录通常以一行或多行User-agent开始,后面加上若干Disallow行;
User-agent:该项的值用于描述搜索引擎robot的名字;
Disallow:该项的值用于描述不希望被访问到的一个URL,这个URL可以是一条完整的路径,也可以是部分的。
Allow:该项的值用于描述希望被访问到的一个URL,这个URL可以是一条完整的路径,也可以是部分的。

我们设置robots.txt时可以使用
http://zhanzhang.baidu.com/robots/generator
http://tool.chinaz.com/robots/

参考:
robots.txt 常见设置

禁止所有搜索引擎访问网站的任何部分

User-agent: *
Disallow: /

允许所有的robot访问

User-agent: *
Disallow:

允许所有的robot访问

User-agent: *
Allow: /

仅禁止Baiduspider访问您的网站

User-agent: Baiduspider
Disallow: /

仅允许Baiduspider访问您的网站

User-agent: Baiduspider
Disallow:

User-agent: *
Disallow: /

禁止spider访问特定目录

User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/

允许访问特定目录中的部分url

User-agent: *
Allow: /cgi-bin/see
Allow: /tmp/hi
Allow: /~joe/look
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/

使用"*"限制访问url

User-agent: *
Disallow: /cgi-bin/*.htm

注:* 表示多个字符

使用"$"限制访问url

User-agent: *
Allow: .htm$
Disallow: /

注:$ 表示结尾

禁止访问网站中所有的动态页面

User-agent: *
Disallow: /*?*

 

在 某些服务器配置中,mod_rewrite要求有followsymlinks,否则会显示500内部服务器错误。
在任何情况下,只要您没有指定FollowSymLinks的选项(即Options FollowSymLinks),或者指定了 SymLinksIfOwnerMatch选项,Apache将不得不调用额外的系统函数来检查符号链接。每次针对文件名的请求都将触发一次检查。
如果你没有使用followsymlinks规则而网站访问正常,说明你的服务器配置已经默认调用followsymlinks的重写规则,你无需 再为你的htaccess文件定义了。但在有些服务器500 Server Error之后的错误日志中提示需要定义SymLinks使得rewrite重写规则起作用。

另一个问题是 RewriteBase / 注释到底起什么作用,去掉了,伪静态照样有效。
RewriteBase / 是设置了重写的基准为该域名的根目录,写了这个的话,RewriteRule . index.php 就可以了;但是没写的话,就要多一个斜杠了RewriteRule . /index.php

今天看到有人攻击服务器,记录下日志,正好也学习下服务器安全技术相关的知识。

阅读更多:About your home page