centos7 安装apache 后安全性能设置

Apache2.2安全配置和性能优化

主要修改配置文件

1、Apache禁止遍历目录

将Options Indexes FollowSymLinks中的Indexes 去掉,就可以禁止Apache

显示该目录结构。Indexes 的作用就是当该目录下没有index.html文件时,就显示目录结构。

二、apache 隐藏版本信息

1.隐藏Apache版本信息

测试默认apache 的状态信息

[root@1314it conf]# curl -Is localhost

HTTP/1.1 200 OK

Date: Tue, 16 Nov 2010 04:20:15 GMT

Server: Apache/2.2.3

(CentOS) DAV/2 PHP/5.1.6

mod_perl/2.0.4

Perl/v5.8.8

X-Powered-By: PHP/5.1.6

Connection: close

Content-Type: text/html;

charset=GB2312

修改主配置文件httpd.conf,将下面两行添加到配置文件的末尾

ServerSignature Off

ServerTokens ProductOnly

重启apache

测试

测试隐藏版本号后apache 的状态信息

[root@1314it conf]# curl -Is localhost

HTTP/1.1 200 OK

Date: Tue, 16 Nov 2010 04:21:41 GMT

Server: Apache

X-Powered-By: PHP/5.1.6

Connection: close

Content-Type: text/html; charset=GB2312

三、关闭trace-method

配置文件添加一行

TraceEnable off

安全设置

另外,为了防止黑客上传可执行脚本到777目录下,必须设置该目录为不能执行或访问脚本,比如:

# vim /usr/local/apache/conf/httpd.conf   

    Options None

    AllowOverride None

    Order deny,allow

    Deny from all

   

        Order deny,allow

        Allow from all

   



四、Apache并发数调整

查看Apache的工作模式:apache -l

如果出现prefork.c,则是工作在prefork模式下

查看当前的连接数:

ps aux|grep httpd|wc -l

pgrep httpd|wc -l

计算httpd占用内存的平均数:

ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'

使用ulimit -n 65535 增加文件打开数量

# prefork MPM

# StartServers:启动时服务器的进程数

# MinSpareServers:保有的备用进程的最小数目

# MaxSpareServers:保有的备用进程的最大数目

# MaxClients:服务器允许启动的最大进程数

# MaxRequestsPerChild:一个服务进程允许的最大请求数

// 设置使用预生派(Prefork MPM)运行方式的参数,此方式是Redhat默认的方式

StartServers 8 // 设置服务器启动时运行的进程数为8

MinSpareServers 5 // 如果低于5个空闲子进程,就会创建新的子进程为客户提供服务

MaxSpareServers 20 // 如果存在高于20个空闲子进程,就创建逐一删除的子进程来提高系统性能

MaxClients 150 // 限制同一时间连接数不能超过150

MaxRequestPerChild 1000 // 限制每个子进程在结束请求之前能处理的连接请求为1000

# worker MPM

# StartServers:启动时的服务进程数目

# MaxClients:允许同时连接的最大用户数目

# MinSpareThreads:保有的最小工作线程数目

# MaxSpareThreads:允许保有的最大工作线程数目

# ThreadsPerChild:每个服务进程中的工作线程常数

# MaxRequestsPerChild:服务进程中允许的最大请求数目

// 设置使用工作者模式(worker MPM)运行方式的参数

StartServers 2

MaxClients 150

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0

# perchild MPM

# NumServers:服务进程数量

# StartThreads:每个服务进程中的起始线程数量

# MinSpareThreads:保有的最小线程数量

# MaxSpareThreads:保有的最大线程数量

# MaxThreadsPerChild:每个服务进程允许的最大线程数

# MaxRequestsPerChild:每个服务进程允许连接的最大数量

// 设置使用独立子进程(Perchild MPM)运行方式的参数

NumServers 5

StartThreads 5

MinSpareThreads 5

MaxSpareThreads 10

MaxThreadsPerChild 20

MaxRequestsPerChild 0

用户敲下一个域名访问服务器的过程是如何进行的?

这是DNS解析的问题。

首先客户的服务器会检查自己的缓存,如果有对应的ip,

则直接返回ip,客户使用ip去访问服务器,与服务器进行TCP三次握手,

三次握手建立完毕,发送HTTP数据请求到服务器,服务器进行响应。

如果没有,则请求会发往本地DNS服务器,本地的DNS服务器负责解析,

如果没有对应ip,发起迭代查询,直到查询到所需的ip地址,

然后再使用ip去访问服务器,进行tcp三次握手,三次握手建立完毕后,

发送http请求,服务器进行响应。

你可能感兴趣的:(centos7 安装apache 后安全性能设置)