Apache使用简介

1.全局配置配置信

1) 配置持久连接

KeepAlive <On|Off>             #是否开启持久连接功能

MaxKeepAliveRequest 100     #一次持久连接最大的请求个数

KeepAliveTimeout 15            #持久连接的超时时间

2) 配置监听IP和端口

Listen [IP:]Port                  #设置监听的IP地址以及端口,本选项可以指定多个,以支持监听多个IP及端口

3) 模块动态装卸载

LoadModule ModuleName /path/to/module

#可以在终端使用如下命令查看已装载的模块

httpd -t -D DUMP_MODULES

Loaded Modules:

core_module (static)

mpm_prefork_module (static)

......

dnssd_module (shared)

php5_module (shared)

ssl_module (shared)

Syntax OK

4) 指定站点根目录

DocumentRoot /path/to/documentroot #定义网页文件所在的目录

5) 定义默认主页信息

DirectoryIndex index.html index.php .... #各参数之间以空格分割

6) 路径别名

Alias url/ /path/ #注意,末尾的“/”要保持一致,有则都有,无则均无

7) 默认字符集设置

AddDefaultCharset 字符集

#常用中文字符集有:GB2310,GB18030,GBK

#通用字符集:UTF-8,UTF-16

8) 配置支持CGI脚本

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" #将CGI脚本执行路径定义到指定路径

<Directory "/var/www/cgi-bin"> #设置cgi脚本路径的访问控制,下方对其中参数有详细说明

AllowOverride None

Options None

Order allow,deny

Allow from all

</Directory>

2.访问控制

a) 基于IP地址的访问控制

Order allow,deny #默认拒绝所有

Order deny,allow #默认允许所有

Allow|Deny from {all|ipaddr|NetworkAddress}

其中Networkaddress格式可以为以下几种

172.16

172.16.0.0

172.16.0.0/16

172.16.0.0 255.255.0.0

b) 基于用户认证的访问控制

#基于用户的访问认认证有basic和digest两种

#认证文件有文本文件:.htpasswd,SQL数据库,DBM:数据库引擎以及ldap

#下面我们以基于文本文件的basic认证来配置

#=========================================================

#1.确保基本认证模块已经加载

LoadModule auth_basic_module modules/mod_auth_basic.so

#2.创建认证文件,添加用户

#htpasswd FILE USERNAME

#-c:文件不存在时则创建文件

#-m:使用MD5加密密码

#-D:删除用户

[root@princessd ~]# htpasswd -c -m /etc/httpd/.passwd test1

New password:

Re-type new password:

Adding password for user test1

[root@princessd ~]# htpasswd  -m /etc/httpd/.passwd test2

New password:

Re-type new password:

Adding password for user test2

[root@princessd ~]# cat /etc/httpd/.passwd

test1:$apr1$dgaArWEk$U04MnXH2HBRT/P5fUoj2P0

test2:$apr1$N4uhZ492$1L70450o982fZPQmbd594/

#3.为目录配置用户认证

<Directory /var/www/html/auth>

options none

AllowOverride AuthConfig

AuthType Basic  #定义认证类型

AuthName "Please inout your crendential" #定义认证提示信息

AuthUserFile /etc/httpd/.passwd  #定义认证文件

Require valid-user  #定义可访问用户,可以为vbalid-user表示文件中所有用户,也可使用user USERNAME 定义指定用户

</Directory>

3.日志功能

#错误日志定义

ErrorLog “path/to/error/logfile”

#定义错误日志级别

LogLevel {debug|info|notice|warn|error|crit|alert|emerg}

#自定义日志

CustomLog “/path/to/customlog/file” 日志格式名

#自定义日志格式定义

LogFormat “格式” 格式名

#格式中常用的宏

#%h:客户端地址

#%l:远程登录名

#%u:远程认证名称,没有认证为"-"

#%t:收到请求时间

#%r:请求报文的起始行

#%>s:响应状态吗

#%b:响应报文长度bits

#%{HEADER_NAME}i:记录指定首部对应的值

4.MPM参数配置

<IfModule prefork.c> #如果启用prefork模块,下列参数生效

StartServers 8#表示启动服务器时启动多少线程

MinSpareServers 5 #定义最小空闲进程数

MaxSpareServers 20 #定义最大空闲进程数

ServerLimit 256 #最大进程数

MaxClients 256 #最大客户端个数

MaxRequestsPerChild 4000 #每个进程允许在其生命周期处理多少请求

</IfModule>

#==========================

<IfModule worker.c>

StartServers 4 #表示启动服务器时启动多少线程

MaxClients 300 #最多客户端个数

MinSpareThreads 25 #最小空闲进程数

MaxSpareThreads 75 #最大空闲进程数

ThreadsPerChild 25 #每个进程生成多少线程

MaxRequestsPerChild 0 #每个进程允许在其生命收起处理多少请求

</IfModule>

5.虚拟主机

在httpd.conf文件中去掉下面行的注释符号

Include /etc/httpd24/extra/httpd-vhosts.conf

在extra/httpd-vhosts.conf文件中配置虚拟主机,以下的配置全在httpd-vhosts.conf文件中.

1) 搭建基于IP的虚拟主机

<VirtualHost 172.16.21.250:80>

DocumentRoot "/web/172"

ServerName www.linuxidc.com

</VirtualHost>

<Directory /web/172>

  AllowOverride None

Options None

Order allow,deny

Allow from all

</Directory>

<VirtualHost 192.168.1.123:80>

DocumentRoot "/web/192"

ServerName www.linuxidc.com

</VirtualHost>

<Directory /web/192>

  AllowOverride None

Options None

Order allow,deny

Allow from all

</Directory>

[root@princessd extra]mkdir -p /web/{192,172}

[root@princessd extra]echo "Access from 192" >/web192/index.html

[root@princessd extra]echo "Access from 172" >/web/172/index.html

#重启服务

[root@princessd extra]# service httpd24 restart

#验证

[root@princessd extra]# curl 192.168.1.123

Access from 192

[root@princessd extra]# curl 172.16.21.250

Access from 172

2) 搭建基于端口的虚拟主机

[root@princessd extra]# cat httpd-vhosts.conf

Listen 8080

<VirtualHost 172.16.21.250:80>

DocumentRoot "/web/80"

ServerName www.linuxidc.com

</VirtualHost>

<Directory /web/80>

Require all granted

</Directory>

<VirtualHost 172.16.21.250:8080>

DocumentRoot "/web/8080"

ServerName www.linuxidc.com

</VirtualHost>

<Directory /web/8080>

Require all granted

</Directory>

[root@princessd extra]# mkdir -v /web/{80,8080}

[root@princessd extra]# echo "Access from port8080" >/web/8080/index.html

[root@princessd extra]# echo "Access from port80" >/web/80/index.html

#重启服务

[root@princessd extra]# service httpd24 restart

#验证

[root@princessd extra]# curl 172.16.21.250:8080

Access from port8080

[root@princessd extra]# curl 172.16.21.250:80

Access from port80

3)搭建基于域名的虚拟主机

#在httpd2.2版本定义基于域名的虚拟主机时,需要加入如下现象,在2.4则不再需要,直接定义即可

#NameVirtualHost IP:PORT

[root@princessd extra]# vim httpd-vhosts.conf

<VirtualHost 172.16.21.250:80>

DocumentRoot "/web/www1"

ServerName www1.linuxidc.com

</VirtualHost>

<Directory /web/www1>

Require all granted

</Directory>

<VirtualHost 172.16.21.250:80>

DocumentRoot "/web/www2"

ServerName www2.linuxidc.com

</VirtualHost>

<Directory /web/www2>

Require all granted

</Directory>

[root@princessd extra]# mkdir -v /web/{www1,www2}

[root@princessd extra]# echo "www1.linuxidc.com" >/web/www1/index.html

[root@princessd extra]# echo "www2.linuxidc.com" >/web/www2/index.html

#由于没有DNS服务器,方便起见,在/etc/host中添加以下两行

172.16.21.250  www1.linuxidc.com

172.16.21.250  www2.linuxidc.com

#验证

[root@princessd extra]# curl www1.linuxidc.com

www1.linuxidc.com

[root@princessd extra]# curl www2.linuxidc.com

www2.linuxidc.com

6.Apache内嵌处理器server-status使用

[root@princessd conf.d]# cat serverstatus.conf

<Location /server-status>

options none

SetHandler server-status

Order allow,deny

allow from 192.168.1

</Location>

7.配置实用https协议实现安全连接

#安装mod_ssl

[root@princessd conf.d]# yum install mod_ssl

#为httpd生成私钥并生成证书

mkdir /etc/httpd/ssl

cd httpd/ssl

umask 077

openssl genrsa -out /etc/httpd/httpd.key 1024

openssl req -new -key httpd.key -out httpd.csr

#在CA证书服务器上为其签署证书并传回

openssl ca -in httpd.csr -out httpd.crt -days 1000

#配置ssl认证

SSLCertificateFile /etc/httpd/ssl/httpd.crt #指定证书位置

SSLCertificateKeyFile /etc/httpd/ssl/httpd.key #指定私钥位置

8.httpd自带工具使用

httpd

-t:测试

-l:列出静态模块

-D DUMP_MODULES:列出DSO模块

-M,相当于-t -DDUMP_MODUKLES

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

htpasswd

-c:创建文件,第一次添加用户使用

-m:用MD5加密

-d:删除用户

apachectl: httpd服务控制工具

start

stop

restart

ab: apache基准性能测试工具

ab [options] URL

-c #:并发数

-n #:总请求数

-n的值一定大于-c的值

-c #:指定并发数

-n #:指定总的请求数

Apache使用简介的更多相关文章

  1. Apache Storm简介

    Apache Storm简介 Storm是一个分布式的,可靠的,容错的数据流处理系统.Storm集群的输入流由一个被称作spout的组件管理,spout把数据传递给bolt, bolt要么把数据保存到 ...

  2. Apache Ant 简介和配置

    Apache Ant 简介     Apache Ant是目前事实上的Java应用的标准build脚本工具.使它大受欢迎的一个主要愿意是它的和灵活,允许程序员创建自己的Task来对Ant进行扩展.   ...

  3. Netty学习——Apache Thrift 简介和下载安装

    Netty学习——Apache Thrift 简介和下载安装 Apache Thrift 简介 本来由Facebook开发,捐献给了Apache,成了Apache的一个重要项目 可伸缩的,跨语言的服务 ...

  4. 【Shiro】一、Apache Shiro简介

    一.Apache Shiro简介 1.简介 一个安全性框架 特点:功能丰富.使用简单.运行独立 核心功能: Authentication(认证):你是谁? Authorization(授权):谁能干什 ...

  5. Apache Kafka简介与安装(二)

    Kafka在Windows环境上安装与运行 简介 Apache kafka 是一个分布式的基于push-subscribe的消息系统,它具备快速.可扩展.可持久化的特点.它现在是Apache旗下的一个 ...

  6. Shiro学习总结(1)——Apache Shiro简介

    1.1  简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比springSecurity,可能没有Spring Securit ...

  7. Apache poi简介及代码操作Excel

    一.简介 在我们进行企业的系统开发时,难免会遇到网页表格和Excel之间的操作问题(POI是个不错的选择) Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序 ...

  8. Apache Mahout 简介 通过可伸缩、商业友好的机器学习来构建智能应用程序

    在信息时代,公司和个人的成功越来越依赖于迅速有效地将大量数据转化为可操作的信息.无论是每天处理数以千计的个人电子邮件消息,还是从海量博客文章中推测用户的意图,都需要使用一些工具来组织和增强数据. 这其 ...

  9. Apache Ignite简介以及Ignite和Coherence、Gemfire、Redis等的比较

    一.Ignite简介 Apache Ignite 内存数组组织框架是一个高性能.集成和分布式的内存计算和事务平台,用于大规模的数据集处理,比传统的基于磁盘或闪存的技术具有更高的性能,同时他还为应用和不 ...

随机推荐

  1. ASP.NET C# 日期 时间 年 月 日 时 分 秒 格式及转换(转自happymagic的专栏)

    在平时编码中,经常要把日期转换成各种各样的形式输出或保持,今天专门做了个测试,发现DateTime的ToString()方法居然有这么多的表现形式,和大家一起分享. DateTime time=Dat ...

  2. [百科] - SIP(会话发起协议)

    SIP(会话发起协议)SIP是类似于HTTP的基于文本的协议.SIP可以减少应用特别是高级应用的开发时间.由于基于IP协议的SIP利用了IP网络,固定网运营商也会逐渐认识到SIP技术对于他们的深远意义 ...

  3. #undef

    #undef 是在后面取消以前定义的宏定义 该指令的形式为 #undef 标识符 其中,标识符是一个宏名称.如果标识符当前没有被定义成一个宏名称,那么就会忽略该指令. 一旦定义预处理器标识符,它将保持 ...

  4. C# - 杨涛分页控件AspNetPager

    http://www.webdiyer.com/downloads/ 前台 <%@ Page Language="C#" AutoEventWireup="true ...

  5. 戴尔PowerEdge服务器命名规则和型号分类

    从第十代服务器开始,戴尔重新规范了服务器的名字,以现在的第十二代主流PowerEdge R620服务器为例: 第一位是字母,R代表机架式服务器,其它有: R:Rack,机架式服务器 T:Tower,塔 ...

  6. 【iCore、iCore2、iBoard例程】【异步FIFO跨时钟域通信(通过ARM 读FPGA FIFO)】

    欢迎访问电子工程师学堂,以便了解更多内容:http://www.eeschool.org 一.本实验基于iCore2 完成,通过简单改动,即可用在 iCore 核心板.iBoard 电子学堂上. iC ...

  7. 漫谈Java虚拟机(JVM)

    Java 虚拟机(JVM)是可运行 Java 代码的假想计算机. 只要根据 JVM 规范描述将解释器移植到特定的计算机上,就能保证经过编译的任何 Java 代码能够在该系统上运行. 从上图中不难明白J ...

  8. 使用HIBERNATE的SQL查询并将结果集自动转换成POJO

    在某些场合下,我们可能想使用HIBERNATE的框架提供的SQL查询接口,但是,由于实体没有做映射,HIBERNATE不能把结果集转换成你想要的List<POJO>,本文讨论如何在这种情况 ...

  9. FZU 2195 思维

    很无聊的背景故事...求最短的时间原来就是省去了检查员最后上山的时间...还让不让人回家了... 感觉这是个最短路 思想是求出来dis 然后求里面最大的那条边 用总长减去最长边 就是答案 写了一个小时 ...

  10. HTML5 viewport 标签与 CSS3 background-size 属性 使图片完全适应区域内容

    要使一张图片不论在移动端还是在桌面端都能适应区域内容,可以使用 HTML5 的 viewport 标签结合 CSS3 的 background-size 属性. 适应区域内容是指图片的宽或高的长度满足 ...