Apache使用简介
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使用简介的更多相关文章
- Apache Storm简介
Apache Storm简介 Storm是一个分布式的,可靠的,容错的数据流处理系统.Storm集群的输入流由一个被称作spout的组件管理,spout把数据传递给bolt, bolt要么把数据保存到 ...
- Apache Ant 简介和配置
Apache Ant 简介 Apache Ant是目前事实上的Java应用的标准build脚本工具.使它大受欢迎的一个主要愿意是它的和灵活,允许程序员创建自己的Task来对Ant进行扩展. ...
- Netty学习——Apache Thrift 简介和下载安装
Netty学习——Apache Thrift 简介和下载安装 Apache Thrift 简介 本来由Facebook开发,捐献给了Apache,成了Apache的一个重要项目 可伸缩的,跨语言的服务 ...
- 【Shiro】一、Apache Shiro简介
一.Apache Shiro简介 1.简介 一个安全性框架 特点:功能丰富.使用简单.运行独立 核心功能: Authentication(认证):你是谁? Authorization(授权):谁能干什 ...
- Apache Kafka简介与安装(二)
Kafka在Windows环境上安装与运行 简介 Apache kafka 是一个分布式的基于push-subscribe的消息系统,它具备快速.可扩展.可持久化的特点.它现在是Apache旗下的一个 ...
- Shiro学习总结(1)——Apache Shiro简介
1.1 简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比springSecurity,可能没有Spring Securit ...
- Apache poi简介及代码操作Excel
一.简介 在我们进行企业的系统开发时,难免会遇到网页表格和Excel之间的操作问题(POI是个不错的选择) Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序 ...
- Apache Mahout 简介 通过可伸缩、商业友好的机器学习来构建智能应用程序
在信息时代,公司和个人的成功越来越依赖于迅速有效地将大量数据转化为可操作的信息.无论是每天处理数以千计的个人电子邮件消息,还是从海量博客文章中推测用户的意图,都需要使用一些工具来组织和增强数据. 这其 ...
- Apache Ignite简介以及Ignite和Coherence、Gemfire、Redis等的比较
一.Ignite简介 Apache Ignite 内存数组组织框架是一个高性能.集成和分布式的内存计算和事务平台,用于大规模的数据集处理,比传统的基于磁盘或闪存的技术具有更高的性能,同时他还为应用和不 ...
随机推荐
- Mina小例子
此例子解决了中文乱码问题. 客服端: MimaTimeClient.java package minaExamle.client; import java.net.InetSocketAddress; ...
- 【C语言】17-预处理指令3-文件包含
这讲介绍最后一个预处理指令---文件包含 一.基本概念 其实我们早就有接触文件包含这个指令了, 就是#include,它可以将一个文件的全部内容拷贝另一个文件中. 二.一般形式 1.第1种形式#inc ...
- grep 命令搜索 带空格的字符
grep - n ' a[[:space:]]b' 就能搜索到 'a b'类似的字符了 如果要搜索带单引号的 用双引号括起来 如果要搜索带双引号的 用单引号括起来
- linux中执行命令权限不够怎样处理
在linux中执行命令权限不够就要增加权限,先看遇到的情况 查看权限情况 那就赋予权限 执行命令
- 几个与时间相关的php的函数
这些函数很常用,但是不用的话,像我这样的初学者放下就记不清了,这时最好的办法就是去查文档,写一下印象会更深一些 1.时间戳函数strtotime():一个就是string to time(我自己这样理 ...
- Java泛型总结
1. 什么是泛型?泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型的 ...
- Scrum会议4
组名称:天天向上 项目名称:连连看 参会成员:王森(Master)张金生 张政 栾骄阳 时间:2016.10.19 已完成内容: 1.连连看生成一关功能. 2.目前测试发现没有问题. 计划完成: 1. ...
- visio studio2008 删除最近的项目
visio studio2008 删除最近的项目 创建move.bat: @echo off @REG Delete HKCU\Software\Microsoft\VisualStudio\9.0 ...
- Web 在线文件管理器学习笔记与总结(11)获取文件夹信息 (12)返回上一级操作
(11)获取文件夹信息 文件夹没有修改操作. index.php: <?php require 'dir.func.php'; require 'file.func.php'; require ...
- artDialog ( v 6.0.2 ) content 参数引入页面 html 内容
/*! artDialog v6.0.2 | https://github.com/aui/artDialog */ 将页面某一隐藏的 div 的 html 内容传到 artdialog 的弹窗中,并 ...