Ubuntu Server最佳方案11.25

第3章 用Apache做Web服务器

LAMP服务器:Linux,Apache,MySQL,Perl/Python/PHP的组合

Apache服务器是Linux上使用最多的Web服务器。(Ubuntu中只有Apache 2)

Ubuntu和Debian对Apache2做了大量定制。以下是/etc/apache2目录下的说明:

apache2.conf全局配置文件,不要轻易修改它
conf.d/该目录存放一些一般性的配置
envvars存放环境变量,一般不需要修改
httpd.conf用户配置文件
mods-available该目录下是已经安装的可用模块
mods-enabled该目录下是已经启用的模块
ports.confhttpd服务的端口
sites-available该目录下是可用的虚拟主机
aites-enabled该目录下是已经启用的虚拟主机
使用命令 a2enmoda2dismod分别可以查看可用和已经启用的模块。

默认情况下,Apache把网站文件放在/var/www目录下

Apache不仅支持基于域名的虚拟主机,还支持基于IP的虚拟主机。

(域名的)虚拟主机配置文件放在/etc/apache2/sites-available目录下。

创建新的虚拟主机:复制一份default虚拟主机,编辑复制的配置文件,修改路径,此外修改ErrorLog和CustomLog的路径,创建目录并写入index.html文件,禁用default虚拟主机。

虚拟主机配置详情

NameVirtualHost指令是用来指定服务器的IP地址,只适用于基于名字的虚拟主机。如果这个指令后面不指定IP地址而以星号代替的话,该虚拟主机就可以从所有网卡走。

ServerAdmin指令用于指定站长E-mail地址

DocumentRoot指令(比较重要)用来指定网站的根目录

<VirtualHost></VirtualHost>指令就像一对括号,只针对当前的虚拟主机。

<Directory></Directory>指令中间包含的指令,仅对指定的目录有效,该目录可以是特指的某个目录

Options指令用来配置指定目录的特性。

AllowOverride指令是针对 .htaccess 文件,可以允许该文件的全部或部分或没有指令

Order指令用来控制默认访问状态,以及Allow和Deny指令的生效顺序。

Allow指令用来控制哪些主机可以访问

Deny指令用来限制主机访问

ErrorLog指令定义了错误日志的位置

LogLevel指令用来控制日志的详细程度的级别

CustomLog指令定义了访问日志的路径和格式

ServerSignature指令用来定义服务器所生成页面的页脚

Alias指令提供路径别名,让你用起来更方便。

HTTPS的实现

如果web应用对安全性要求比较搞,需要加密的话可以用SSL模块。这时开头将变为 https://

实现步骤:1.启用mod_ssl模块;2.生成证书,安装证书;3.修改虚拟主机配置文件,重启Apache服务。

有可能重启Apache服务以后会有一些错误或警告哦,要按照提示排除

------------------------------------------------------------------------------------------------------

Apache性能优化

正确选择MPM——1.event 比较适用于有大量持续连接的,对包含大量图片的HTML文档可以实现加速;2.prefork 虽然不快,但是很稳定,3.worker 是新开发的,速度比prefork快很多,也比较节省资源。

关闭DNS查询:HostnameLookups在默认情况下已经被设置为off,因为开启的话会降低Apache的性能。
优化MaxClients:可以把MaxClients的值设定为更高,如果超过256,就要修改ServerLimit的值。是否需要修改MaxClients是通过查看/var/log/apache2/error.log来发现的

优化KeepAlive:可以吧KeepAliveTimeout设置得小一点,那么为客户保存连接的时间就会短一些

启用压缩:启用deflate压缩

禁用不必要的日志:

使用缓存(mod_cache):mod_disk_cache和mod_mem_cache

Apache压力测试(ab)

Apache 2自带的性能测试工具(ab)可以测试当前的Apache每秒钟能够处理的请求的数量

ab [options] [http[s]://]hostname[:port]/path

Apache安全

安全更新:有时候需要运行 apt-get dist-upgrade才能升级所有软件包

隐藏敏感信息:为了防止黑客得到关于服务器和操作系统的版本信息等,可以使用ServerTokens指令(该指令不能用于虚拟机中)

不要以root身份运行Apache:如果发现是root用户运行的话,应该检查服务器是否被攻击过

密码认证:分为基本认证(需要提供正确的用户名和密码)和摘要式认证(启用摘要式认证的模块)。

检查文件权限:不要设置为777,也就是其他用户,群组的权限要限制

关闭不用的模块:不需要的模块就一定不要启动

DDoS攻击防范:使用mod-evasive模块可以很大程度防范DDoS攻击。

Apache日志分析

用Webalizer分析Apache日志:配置的时候可以修改被分析的文件名,文件路径等

用AWStats分析Apache日志:需要配置Apache文件(输入一段文字,不写了),还要修改/etc/apache2/apache2.conf,告知Apache你配置的文件,此外还要配置AWStats,

Apache日志合并:一定不能将多台服务器的日志写入同一个文件中。可以使用合并工具,比如logresolvemerge.pl工具

文件同步,可以使用rsync。     合并的命令有点点像cat里面的合并哦……不过这个会去掉重复的内容

合并操作可以写成cron任务,让系统定期自动运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值