web服务安装配置

本文主要是以 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次持久连接时间的间隔

验证效果:

2、MPM 参数

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

3、监听的端口

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

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

4、DSO 动态共享对象

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

示例:

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

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

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

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

5、指定站点的根目录

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

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

使用 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>

对于 Option Indexex参数示例,一般此选项作为文件服务器,提供下载使用时使用到此选项,其他情况应慎重使用。

7、指定默认访问的主页面

默认的使用格式如下:这里也可以自己定义主页面

DirectoryIndex index.html index.html.var

8、配置日志功能

ErrorLog "/path/to/error_log" 指明错误日志的路径,可以适应相对地址。相对于 ServerRoot 指令所定义的目录

LogLevel {debug|info|notice|warn|error|crit|alert|emerg} 指定日志的级别

LogFormat  指定日志文件的格式

CustomLog "/path/to/access_log" LogFormat_Name 指定 access_log 的路径个和使用的格式

  • %h: 客户端地址
  • %l: 远程登录名,通常为-
  • %u: 认证时输入用户名,没有认证时为-
  • %t: 服务器收到 用户请求时的时间
  • %>s: 响应状态码
  • %b: 响应报文的长度,单位是字节
  • %{HEADER_NAME}i: 记录指定首部对应的值

9、路径别名

使用指令参数:Alias     实现URL 路径映射时,访问的路径不在依赖于站点的根目录。

10、基于用户访问控制

基于用户的认证的方式有基本认证(Basic)和摘要认证(digest)。这里是基于虚拟用户来实现的。实现的方式有:文本文件、数据库、ldap、数据库引擎来提供API接口。

以基于文件的形式实现用户访问的控制来示例:

1、vim  /etc/httpd/conf/httpd.conf

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

Options none# optons 选项控制

AllowOverride AuthConfig  # 实现用户认证

AuthType Basic    # 认证方式是 Basic

AuthName "Admin Area."  # 提示信息

#AuthBasicProvider file  # 认证方式的提供者

AuthUserFile /etc/httpd/conf/.htpasswd  # 认证文件的路径

Require valid-user  # 登陆用户控制  require user USER_NAME

</Directory>

2、提供认证文件

由 htpasswd 命令得到。常用选项:

-c: 如果此文件事先不存在,则创建;注意,只能在创建第一个用户时使用

-m: 以md5的格式编码存储用户的密码信息

-D: 删除指定用户

例如:

htpasswd -c -m /etc/hhtpd/.htpasswd tom

3、组认证

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

Options none

AllowOverride AuthConfig

AuthType Basic

AuthName "Admin Area."

#AuthBasicProvider file

AuthUserFile /etc/httpd/conf/.htpasswd

AuthGroupFile /etc/httpd/conf/.htgroup  # 组文件的路径,自己手动建立

Require group GROUP_NAME

</Directory>

组文件格式:

组名:user1 user2 user3

11、虚拟主机

  • 虚拟主机:使用不同访问路径
  • 基于端口:通过不同的端口来提供不同的访问站点
  • 基于IP:基于不同的 ip 地址来访问不同的站点
  • 基于主机名:相同的 IP 地址通过不同的主机名来实现访问不同的站点

(1) 使用虚拟的前提:取消主服务器

注释主服务器的站点根路径指定:DocumentRoot

(2) 定义虚拟主机

NameVirtualHost IP:PORT  # 指定监听的地址和端口

<VirtualHost IP:PORT>

ServerName  # 主机名

ServerAlias   # 定义多个主机名,此时 ServerName 的名称应该是 UR

DocumentRoot  # 根站定目录

ServerAlias  # 主机别名

ErrorLog  # 错误日志的定义

CustomLog # 访问日志的定义

</VirtualHost>

配置文件语法检查:

httpd -t

service httpd configtest

配置完成虚拟主机后,可使用 httpd -S 显示配置的虚拟主机

测试:crul URL

12、https协议

由于http 协议在传输过程中使用的是明文传输。所以就出现了 https 协议来实现加密的 https 协议。ssl会话基于IP地址创建,所以,每一个IP仅创建一个SSL会话。https协议:是基于SSL二进制编码, 监听于443/tcp。

ssl握手要完成的工作:

  • 交换协议版本号
  • 选择双方都支持的加密方式
  • 客户端对服务器端实现身份验正
  • 密钥交换

客户端验正服务器端证书:

  • 有效性检测:证书是否仍然在有效期内
  • CA的可信度检测
  • 证书的完整性检测
  • 持有者的身份检测

配置httpd工作于https:

(1) 安装mod_ssl模块

# yum install mod_ssl

(2) 为服务端生成私钥,并为其提供证书;

在服务端(172.16.10.9):

# (umask 077;openssl genrsa -out /etc/pki/CA/private/cacert.key 2048)

# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 1000

# touch index.txt

# echo "01" > serial

在客户端:

#(umask 077;openssl genrsa -out /etc/httpd/httpd.key 2048)

#openssl req -new -key /etc/httpd/httpd.key -out /etc/httpd/httpd.csr

将 httpd.csr 传到服务端签名:

在服务端:

# openssl ca -in /root/httpd.csr -out /root/httpd.crt -days 1000

将签好的证书,httpd.crt 传回到客户端,放到 /etc/httpd/ 目录下

(3) 配置使用https的虚拟主机

<VirtualHost IP:443>

SSLCertificateFile   # 证书路径

SSLCertificateKeyFile  # 证书私钥文件

DocumentRoot  # 虚拟主机的根站点

ServerName    # 虚拟主机的主机名

</VirtualHost>

(4) 重新装载配置

httpd reload

(5) 测试

# openssl s_client -connect IP:PORT -CAfile /path/to/ca_certificate

13、status页面

httpd内嵌有handler,其中有一个handler用于输出当前httpd服务相关状态信息handler: server-status

启用handler要使用SetHandler指令

handler: 当文件被调用时,apache内部表示形式;一般每种文件类型都有其隐式处理器

示例:基于 10、11、12、13

建立httpd服务器(基于编译的方式进行),要求:
提供两个基于名称的虚拟主机:
a www1.stu10.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access;
(b)www2.stu10.com,页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access;
(c)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名;
(d)通过www1.stu10.com/server-status输出httpd工作状态相关信息,且只允许提供帐号密码才能访问(status:status);

1、配置文件的的编辑,vim /etc/httpd/httd.conf

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

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、测试结果如下:

用户认证测试:

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

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

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

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

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、验证结果

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

导入证书就可以访问了。

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测试的结果如下:

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

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

16、资源限定

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

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

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

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

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

配置文件:

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

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

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

web服务安装配置

时间: 2024-10-07 02:14:15

web服务安装配置的相关文章

第四篇(1):企业常用Linux web环境安装配置(apache、php、mysql)

上篇我们讲了基本的软件包管理和文件操作什么的,现在也要动手安装点有用的东西了吧! 本篇我会写出一个用yum安装apache.php.mysql的方法,最后再运行phpMyAdmin来管理数据库. 1.如何在Linux主机上安装apache 由于之前我们安装了完成的centos系统,所以可能系统有可能已经安装好了apache,所以我们先检查下是不是真的安装过了 先敲命令吧,yum list installed httpd* ,如果看到httpd已经安装,那么就yum -y remove httpd

Rsyslog日志服务安装配置

rsyslog服务端配置  centos6.4 x64系统  系统自带rsyslog 5.8版本 rsyslog 是一个 syslogd 的多线程增强版. 现在Fedora和Ubuntu, rhel6默认的日志系统都是rsyslog了 rsyslog负责写入日志, logrotate负责备份和删除旧日志, 以及更新日志文件 ################################### #首先部署好lamp环境,详情见lamp安装文档 #更新系统时间   rsyslog-mysql是rs

Web服务Https配置和代码访问方法

一.Https方式及证书 Web服务使用Https方式需要SSL证书,证书可从两个渠道获取:公开可信认证机构申请或自己生成. 公开可信认证机构优势在于校验方便,但是会有租金. 自己生成工具成本低,但用浏览器访问时会提示风险,需要用户手动确认可信. Https还分单向认证和双向认证,单向认证只需要服务器端部署1份证书,双向认证要Client和Server端都有证书,而且还会增加Client和Server握手步骤. 单向认证已经能够满足传输数据的加密需求,所以登录服务器与客户端通讯采用自己生成SSL

详解“FTP文件传输服务”安装配置实例

"FTP文件传输服务"安装配置实例 家住海边喜欢浪:zhang789.blog.51cto.com 目录 简介 ftp工作原理 常见的FTP服务 Vsftpd服务器的安装 Vsftpd.conf配置文件详解 配置FTP服务器实例 实例:配置匿名用户 实例:配置本地用户登录 实例:配置虚拟用户登录(MySQL认证) 实例:控制用户登录 实例:设置欢迎信息 分析vsftpd日志管理 FTP服务器配置与管理 简介 FTP 是File Transfer Protocol(文件传输协议)的英文简

ubuntu 下telnet服务安装配置

1. sudo apt-get install xinetd telnetd 2. sudo vim /etc/xinetd.conf并加入以下内容进行下一步的Ubuntu Linux telnet设置: # Simple configuration file for xinetd # # Some defaults, and include /etc/xinetd.d/ defaults { # Please note that you need a log_type line to be a

Hadoop系列之zookeeper(分布式协调服务)安装配置

Hadoop系列之zookeeper(分布式协调服务)安装配置 1.安装cd /root/softtar zxvf zookeeper-3.4.6.tar.gzmv zookeeper-3.4.6 /usr/local/hadoop/zookeeper2.修改配置文件mkdir -p /data/zookeeper/data //3个节点都需要创建此目录cd /usr/local/hadoop/zookeeper/confcp zoo_sample.cfg zoo.cfg#vim zoo.cfg

Rsync+Sersync服务安装配置

环境要求: 准备两台服务器(VM) 两个IP 1.A服务器=主服务器===>安装软件(rsync+sersync) 2.B服务器=从服务器===>安装软件(rsync) ip划分 A服务器:192.168.1.200 B服务器:192.168.1.201 操作系统: [[email protected] ~]# hostnamectl Static hostname: localhost.localdomain Icon name: computer-vm Chassis: vm Machin

web服务_apache配置(2)v1.0

httpd-2.2的基础配置 /etc/httpd:ServerRoot conf/httpd.conf.conf.d/*.conf:配置文件 logs:日志文件 modules:模块文件 主配置文件:/etc/httpd/conf/httpd.conf directive value directive:不区分字符大小写:例如:ServerRoot: value:除了文件路径这外,大多数不区分字符大小写: ### Section 1: Global Environment           

Openstack 实战讲解之-----05-控制节点Nova服务安装配置

一.Nova介绍 Nova是openstack最早的两块模块之一,另一个是对象存储swift.在openstack体系中一个叫做计算节点,一个叫做控制节点.这个主要和nova相关,我们把安装为计算节点nova-compute,把除了nova-compute叫做控制节点.nova-compute是创建虚拟机的,只是创建虚拟机,所有的控制都在另一台上. 1.1 功能和特点: 实例生命周期的管理 管理计算资源 网络和认证管理 REST风格的API 异步的一致性通信 Hypervisor透明:支持Xen