Apache常见问题汇总.docx
《Apache常见问题汇总.docx》由会员分享,可在线阅读,更多相关《Apache常见问题汇总.docx(5页珍藏版)》请在冰豆网上搜索。
![Apache常见问题汇总.docx](https://file1.bdocx.com/fileroot1/2022-11/25/7261188a-59ef-45fa-b3d6-fcd0fe9291df/7261188a-59ef-45fa-b3d6-fcd0fe9291df1.gif)
Apache常见问题汇总
Apache常见问题汇总
文档维护:
NetSeek linuxsir1987
1.Apache虚拟主机配置解释
复制内容到剪贴板
代码:
NameVirtualHost*:
80
80>
ServerAdminwebmaster@linuxtone.org #网站管理员邮件地址
DocumentRoot"/data/www/wwwroot" #网站存放的根目录
ServerName[url]www.linuxtone.org [/url] #网站域名
ServerAlias bbs.linuxtone.org#网站域名别名
# ErrorLog/data/logs/error-www.linuxtone.org_log #记录错误日志
CustomLog"|/usr/sbin/cronolog/data/logs/access_[url]www.linuxtone.org.%Y%m%d[/url]"combinedenv=!
dontlog#记录网 站日志
更详细的参照:
[url]http:
//bbs.linuxtone.org/thread-209-1-1.html[/url]
2.Apache如何防盗链?
首先确定已经加载apacherewrite模块
LoadModulerewrite_modulemodules/mod_rewrite.so
1)利用rewrite确认你的apache能使用rewritemod
复制内容到剪贴板
代码:
RewriteEngineon
RewriteCond%{HTTP_REFERER}!
^[url]http:
//linuxtone.org/.[/url]*$ [NC]
RewriteCond%{HTTP_REFERER}!
^[url]http:
//linuxtone.org$ [/url] [NC]
RewriteCond%{HTTP_REFERER}!
^[url]http:
//www.linuxtone.org/.[/url]*$ [NC]
RewriteCond%{HTTP_REFERER}!
^[url]http:
//www.linuxtone.org$ [/url] [NC]
RewriteRule.*\.(gif|jpb|png|css|js|swf])$[url]http:
//www.linuxtone.org/about/nolink.png[/url][R,NC]#指定图片.
2)利用SetEnvIfNoCase和access
复制内容到剪贴板
代码:
SetEnvIfNoCaseReferer"^[url]http:
//linuxtone.org[/url]"local_ref=1
SetEnvIfNoCaseReferer"^[url]http:
//www.linuxtone.org[/url]"local_ref=1
OrderAllow,Deny
Allowfromenv=local_ref
本站相关详细配置贴:
[url]http:
//bbs.linuxtone.org/thread-101-1-1.html[/url]
3.Apache日志处理
利用cronlog分割日志
利用Awstats分析网站日志
本站相关详细配置贴[url]http:
//bbs.linuxtone.org/thread-102-1-1.html[/url]
4.httpd.conf中文翻译帮助你理解apache配置含义
[url]http:
//bbs.linuxtone.org/thread-103-1-1.html[/url]
5.需要多大内存合适?
mod_status查看某一时间下所运行的apache进程总数.
RAM=运行apache进程平均所需的内存容量x最大负荷量(同时服务的客户端的最大数目)
参考:
[url]
最新的status配置在:
/usr/local/apache2/conf/extra/httpd-info.conf 配置
且可以看出网站当前运行状态:
复制内容到剪贴板
代码:
SetHandler server-status
ExtendedStatuson
[url]http:
//servername/server-status[/url]查看结果
6. 最佳化符号链接
为了启用最严格的安全防护,如果很少用符号连接,请使用OptionsSymLinksIfOwnerMatch或Options-FollowSyLinks
为了最佳性能,使用:
OptionsFollowSyLinks(注:
如果要考虑安全,就永远不要允许遵循符号连接)
7.尽量降低.htaccess文件对性能的影响
只有在必要目录中才启用AllowOverride,并告知apache不要浪费时间在别的位置查找.htaccess文件:
AllowOverrideNone
然后以区块启用必要的.htaccess文件.
8.停止使用网页内容协商
停用非必要的内容协商,如果真的需要使用网页内容协容,请使用type-map处理器而非MultiViews选项
Options-MultiViews
AddHandlertype-mapvar
如果多语言网站,应该使用type-map处理器而非MultiViews指令.
9.使用mod_proxy分担服务间的负载
ProxyPass及ProxyPassReverse让apache从其它服务器的截取网页内空.
ProxyPass/other/[url][/url]
ProxyPassReverse/other/[url][/url]
10.DNS轮询试(DNSround-robin)将请求平均分配给服务器
[url]www.linuxtone.org.[/url]86400 IN A192.168.0.2
[url]www.linuxtone.org.[/url]86400 IN A192.168.0.3
[url]www.linuxtone.org.[/url]86400 IN A192.168.0.4 //增加多个A记录.
11.将目录列表存入高带缓存区.
如果想提供目录列表,但又要减少对性能的影响,请使用IndexOptions的TrackModified,让游览器将自动产生的目录索引存入高速缓存区.IndexOptions+TrackModified
12.WEB应用的容量规划
Apache主要是一个内存消耗型的服务应用经验公式:
apache_max_process_with_good_perfermance<(total_hardware_memory/apache_memory_per_process)*2
apache_max_process=apache_max_process_with_good_perfermance*1.5
为什么会有一个apache_max_process_with_good_perfermance和apache_max_process呢?
原因是在低负载下系统可以使用更多的内存用于文件系统的缓存,从而进一步提高单个请求的响应速度。
在高负载下,系统的单个请求响应速度会慢不少,而超过apache_max_process,系统会因为开始使用硬盘做虚拟内存交换空间而导致系统效率急剧下降。
此外,同样的服务:
2G内存的机器的apache_max_process一般只设置到1G内存的1.7倍,因为Apache本身会因为进程过多导致性能下降。
例子1:
一个apache+mod_php的服务器:
一个apache进程一般需要4M内存
因此在一个1G内存的机器上:
apache_max_process_with_good_perfermance<(1g/4m)*2=500
apache_max_process=500*1.5=750
所以规划你的应用让服务尽量跑在500个进程以下以保持比较高的效率,并设置Apache的软上限在800个。
例子2:
一个apache+mod_resin的服务器:
一个apache进程一般需要2M内存
在一个2G内存的机器上:
apache_max_process_with_good_perfermance<(2g/2m)*2=2000
apache_max_process=2000*1.5=3000
以上估算都是按小文件服务估算的(一个请求一般大小在20k以下)。
对于文件下载类型站点,可能还会受其他因素:
比如带宽等的影响
13.Apache基本Rewrite应用规则总结
[url]http:
//bbs.linuxtone.org/thread-105-1-1.html[/url]
14.设置正确的文件使用权限.
在serverRoot下的bin目录应该属于root用户及root组,而且其文件权限应设为755(rwxr-xr-x).其中在任何情况下,其他所含的文件也应该属于root.root用户和组。
而且文件权限也是755。
(数据页面也要设置成755的权限)
15.隐藏apache版本号。
大家可以看到sina所使用的apache是2.0.54
#curl-I[url][/url]
HTTP/1.0200OK
Date:
Fri,30May200812:
36:
30GMT
Server:
Apache/2.0.54(Unix)
Last-Modified:
Fri,30May200812:
05:
34GMT
Accept-Ranges:
bytes
X-Powered-By:
mod_xlayout_jh/0.0.1vhs.markII.remix
Cache-Control:
max-age=60
Expires:
Fri,30May200812:
37:
30GMT
Vary:
Accept-Encoding
Content-Type:
text/html
Age:
5
X-Cache:
HITfrom153-
nnCoection:
close
Connection:
Keep-Alive
大家可以用下面语句来让人看不到你apache版本号
复制内容到剪贴板
代码:
ServerSignatureoff
ServerTokensprod//禁止显示apache版本号。
大家在看看Server:
Apache(Unix)
#curl-I[url][/url]
HTTP/1.0200OK
Date:
Fri,30May200812:
36:
30GMT
Server:
Apache(Unix)
Last-Modified:
Fri,30May200812:
05:
34GMT
Accept-Ranges:
bytes
X-Powered-By:
mod_xlayout_jh/0.0.1vhs.markII.remix
Cache-Control:
max-age=60
Expires:
Fri,30May200812:
37:
30GMT
Vary:
Accept-Encoding
Content-Type:
text/html
Age:
5
X-Cache:
HITfrom153-
nnCoection:
close
Connection:
Keep-Alive
16.禁止搜索引擎服务器(搜索机器人)
搜索机器人通过ROBOTS在网络上沿着网页上的链接(一般是http和src链接)不断抓取资料建立自己的数据库。
在数据页面根目录。
比如(/usr/local/apache/var/html)下创建robots.txt文本文件
然后编辑以下内容
复制内容到剪贴板
代码:
User-agent:
*
Disallow:
/
保存即可。
17.apache常见虚拟主机部分问题解答。
[url]http:
//bbs.linuxtone.org/thread-209-1-1.html[/url]
18.apache防DDOS模块.
[url]http:
//bbs.linuxtone.org/thread-210-1-1.html[/url]
19.php模块精简压缩。
编译完,php的时候进入
复制内容到剪贴板
代码:
#cd/opt/app/apache2/modules
#striplibphp5.so//这样就能把一些调试信息从模块中删除掉,减少libphp5.so模块容量
20.设定默认的“收藏夹图标”
请将默认的favicon.ico文件放到ServerRoot下的/icons/字目录中,并在服务器配置文件中想要作用的范围内(例如在特定的区块中,或在所有的区快之外)加入下面内容
复制内容到剪贴板
代码:
AddTypeimage/x-ion .ico
ErrorDocument404/icon/favicon.ico