当前位置: > 安全防御 > 软件安全防御 >

CentOS6.5下web服务安装配置

时间:2014-08-12 23:44来源:blog.51cto.com 作者:羊木狼 的BLOG 举报 点击:
本文主要是以 CentOS 6系列为操作系统,来安装配置web服务,并实现虚拟用户,https,和基本的用户认证等相关内容。
    写在前面:
操作系统: CentOS 6.5
服务器的IP: 172.16.10.9
httpd的版本:httpd-2.2.15 系列
SElINUX状态:disabled
    下面开始安装配置旅程:

一、web的安装配置

1、安装:yum install httpd  mod_ssl -y

    mod_ssl 是实现 https 协议时所依赖的包

2、配置文件的相关说明:

配置文件: 

/etc/httpd/conf/httpd.conf

/etc/httpd/conf.d/*.conf

服务脚本:

    /etc/rc.d/init.d/httpd

    脚本配置文件:/etc/sysconfig/httpd,这里可以定义MPM的类型

模块目录:

    /usr/lib64/httpd/modules

    /etc/httpd/modules

    /etc/httpd/modules是/usr/lib64/httpd/modules的链接文件

主程序:

    /usr/sbin/httpd: prefork 模式

    /usr/sbin/httpd.event: event模式

    /usr/sbin/httpd.worker: worker模式

日志文件:

    /var/log/httpd/access_log: 访问日志

    /var/log/httpd/error_log: 错误日志

站点文档的根目录:

/var/www/html

 

二、httpd的配置文件说明

# grep "Section" httpd.conf

### Section 1: Global Environment

### Section 2: 'Main' server configuration

### Section 3: Virtual Hosts

主要分为三部分:全局配置,主服务器配置,虚拟主机的配置。主服务器和虚拟主机一般不同时使用;默认仅启用了主服务器。在每个部分中有许多指令参数,这些指令参数不区分字符大小写,但其值有可能会区分大小写。

 

三、配置文件选项详细说明

1、持久连接

    通常的参数有:

        KeepAlive {On|Off} 是否开启持久连接功能。默认是 Off。

    以下这2个指令参数只有在KeepAlive On 时才有效

        KeepAliveRequests 100 允许的一次持久连接的最大请求数。

        KeepAliveTimeout  2次持久连接时间的间隔

wKioL1PnPX-DaGHsAAHnTVLxT5M700.jpg

    验证效果:

wKiom1PnPGfBAKFyAAFxXOQfpXo481.jpg

2、MPM 参数

 wKiom1PnPNyzJ7IYAASRp4h-X_A386.jpg

     ServerStart 参数的验证,共有9个相关的进程,其中一个是其他 8 个的父进程:

wKiom1PnPk-T7XyQAAIbD8V1_wk087.jpg

3、监听的端口

    指定格式:Listen [IP:]port 默认的端口号是80 

    这个端口可以自己指定,一般使用大家熟知的端口,常用的有 80 和 8080。

4、DSO 动态共享对象

    在这里可以实现动态库的装载,可以使用 httpd -D MODULES 或者 httpd -M 来查看已加载的模块名。

wKiom1PnP8mxIIibAAN4q9p9Tvw264.jpg

示例:

    使用 mod_deflate 模块压缩页面来优化传输速度。

未使用 mod_deflate 模块,访问 http;//192.168.1.66/messages 文件时相应的字节数大小是:316080 字节。

 wKiom1PnQKjiZ4nZAAPhFQiFT84397.jpg

加载 mod_deflate 模块,并进行配置 vim /etc/httpd/conf/httpd.conf。

wKiom1PnQQOSux12AAMYlY9JYZk144.jpg

加载后的验证,加载 mod_deflate 模块后的大小是 41902 字节,压缩比还是相当可观的。

wKioL1PnQjrwdKg3AAORt6-PSrY446.jpg

5、指定站点的根目录

    DocumentRoot “/var/www/html” 这是 rpm 安装方式的默认的根站点目录。当然这个可以根据自己的需求来设定。

6、基于目录和文件的访问控制

wKioL1PnQweCLqjJAAKkmWLjhBI987.jpg

    使用 directory 指令基于本地文件系统来实现对目录的访问控制。

    常见的控制指令有:

    Options:

        Indexes:Indexes: 当访问的路径下无默认的主页面,将所有资源以列表形式呈现给用户。

    FollowSymlinks: 跳跃符号链接

    AloowOverride: 支持在每个页面目录下创建.htaccess用于实现对此目录中资源访问时的访问控制功能。

    AuthCofig:用于实现用户认证的目的。

    Order结合deny from、allow from 一起使用,来基于 IP 地址设定访问控制

    例如:

        这是设置访问白名单的设置,只允许 172.16 网段的客户端来访问对应的目录。当然 from 后面的地址是比较灵活的,像:172.16,172.16.0.0,172.16.0.0/16,172.16.0.0/255.255.0.0这种形式的都是允许的。

        Order allow,deny

        Allow from 172.16.0.0/16

    当然,上面对目录的控制,也可以使用 Locaton 指令基于URL来实现。

        DocumentRoot “/var/www/html”

    <Directory "/var/www/html/admin">

            访问控制参数

        </Directory>

    等价于:

        <Location "/admin">

        访问控制参数

 

        </Location>

还的注释主配置下的 DocumentRoot "/var/www/html"

wKioL1PnVUvCNzIMAAIVfa8tvC8271.jpg

2、 创建对应的站点和提供密码文件

 
# 创建对应的站点目录并提供默认的页面
mkdir /web/vhosts/www1/ -p
mkdir /web/vhosts/www2/ -p
echo "<h1>welcom www1.guotig.com<h1>" > /web/vhosts/www1/index.html
echo "<h1>welcom www2.guotig.com<h1>" > /web/vhosts/www2/index.html
 
# 提供用户认证文件
htpasswd -cm /etc/httpd/conf/.htpasswd status
mkdir  /web/hosts/www1/server-status
chowm apache.apache /web/hosts/www1/server-status

3、提供主机名解析文件 在/etc/hosts中添加:(在测试客户端)

 
172.16.10.9  www1.stu10.com www2.stu10.com

 4、测试结果如下:

wKiom1PnWKjjGSQ4AAFLNmBiKeY406.jpg

用户认证测试:

 

wKiom1PnZhLT4cUYAAErbkbtwAY511.jpg

wKioL1PnZyyj7h37AAHfMR68ANE524.jpg

 

1
2
3
为上面的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;
(1)要求使用证书认证,证书中要求使用的国家(CN)、州(Henan)、城市(Zhengzhou)和组织(MageEdu)
(2)设置部门为Ops,主机名为web.magedu.com,邮件为web@magedu.com

1、编辑 vim /etc/httpd/conf.d/ssl.conf 添加以下内容

    当然在 /etc/httpd/conf/httpd.conf,要加载 mod_ssl 模块

wKiom1PnZr2TbFUGAAKvSJ-TWvA944.jpg

使用 httpd -S 来查看已经配置好的虚拟机

 wKioL1PnZ-_SzAu6AAHH6sns2TA729.jpg

2、提供证书

 
mkdir /etc/httpd/ssl && cd /etc/httpd/ssl
(umask 077; openssl genrsa -out httpd.key 1024)
openssl req -new -key httpd.key -out httpd.csr
去服务端签署证书:
openssl ca -in  httpd.csr -out /httpd.crt -days 300
签署后的证书存放到:/etc/httpd/ssl/httpd.crt

3、验证结果

    首次访问时会出现导入证书的问题,导入证书就可访问。

 

wKiom1Pnas6C2q3iAAKYgoKWekI339.jpg

    导入证书就可以访问了。

wKioL1Pna-ezxd5sAAB6dJW9hT8750.jpg

14、httpd程序包自带的工具介绍

  • httpd: apache服务器程序

         -t: 测试配置文件

         -l: 列表静态模块

        -D DUMP_MODULES:列出DSO模块

        -M:等价于 -t -D DUMP_MODULES

        -D DUMP_VHOSTS: 列出所有虚拟主机

  • htpasswd:  为基于文件的basic认证创建和更新用户认证文件

  • apachectl:  脚本,httpd服务控制工具,可启动,关闭,重新加载配置文件。

  • ab: (apache benchmark)httpd的基准性能测试工具; 

  • apxs:  httpd得以扩展使用第三方模块的工具;

  •  htcacheclean: 磁盘缓存清理工具;

  • htdigest: 为digest认证创建和更新用户认证文件

  • httxt2dbm: 为rewrite map创建dbm格式的文件

  •  rotatelogs: 日志滚动,不关闭httpd而切换其使用日志文件的工具

  •  suexec: 当httpd进程需要以另外的用户的身份去访问某些资源时,可以以suexec作临时切换;

15、ab工具的初步使用

    同类工具:http_load, webbench, seige

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

常用的参数:

    -c #: 模拟的并发数;

    -n #: 总的请求数,-n的值一定要大于等于-c的值; 

使用 ab -c 100 -n 5000 http://www.stu10.com/index.html测试的结果如下:

wKiom1Pnb9uioFzLAAIqD9N-XMc871.jpg

    但是当我们把并发量提高到2000的时候,就会出现以下的错误。

wKioL1PndMPCZ9vGAAEXN38X8OM248.jpg

    这是由于资源限定的问题,一般情况下,Linux默认打开的文件数是1024。

wKiom1PnfNPhLslMAACUEWp1mOQ213.jpg

16、资源限定

    软限定:可临时超出一定时长的上限

    硬限定:绝对不可超出的上限

管理员可使用ulimit命令临时性地修改各种资源的软限制;

ulimit -n #:能同时打开的文件数

   -u #: 能同时启动的进程数

配置文件:

/etc/security/limits.conf,里面限定了资源的各种属性,包括核心文件的大小,最大文件数,最大进程数等信息。如果想针对某个用户最限制,在domain字段使用@USER_NAME,如果针对全局的话,使用*就可以实现。/etc/security/limits.d/*.conf 也可以定义各种资源限定。

wKiom1PngiezBAIDAANFLxh_weI807.jpg

在 15 中使用ab 测试时,会出现打开过多文件的错误。使用以下设定就可以解决。

wKiom1PniCKRZEbZAAHRdzQvizM425.jpg

    关于httpd的基本搭建介绍到这里。其他的搭建在后续博文中介绍,像实现负载均衡。

本文出自 “逆水寒” 博客,请务必保留此出处http://guoting.blog.51cto.com/8886857/1538362

------分隔线----------------------------
发表评论
为了和诣的生活,我关闭了评论页面,请大家到QQ群里交流吧:348944156,也欢迎关注本站微信公众号:centoscn