一、基本介绍
1、版本
httpd-1.3
httpd-2.0
httpd-2.2
httpd-2.4
目前为止最新的版本是httpd-2.4.6,但是这里我用的是系统自带的RPM包安装的httpd-2.2.15版本的,最新版本配置可能会有所不同
2、模型:
高度模块化:DSO
MPM:Multipath Processing Module #多处理模块
prefork:一次一个进程响应一个请求
worker:一个进程生成多个线程,一个线程响应一个请求
event:基于事件驱动,一个进程响应多个请求
3、安装
这里就直接rpm包安装了,光盘上就有软件包
yum install httpd
4、httpd安装完后的基本信息
服务脚本:/etc/rc.d/init.d/httpd
运行目录:/etc/httpd/
配置文件:/etc/httpd/conf
主配置文件:/etc/httpd/conf/httpd.conf
扩展配置:/etc/httpd/conf.d/*.conf
socket:http:80/tcp,https:443/tcp
网页文件目录(DocumentRoot):/var/www/html
CGI:/var/www/cgi-bin/
默认主页面文件:/var/www/html/index.html
5、主配置文件结构
全局配置:对主服务器或虚拟主机都有效,且有些功能是服务器自身工作属性;
主服务器配置:主站属性
虚拟服务器:虚拟主机及属性定义
6、测试配置和查看的命令
所使用的
service httpd configtest #测试配置文件有没有语法错误
httpd -t #同上
httpd -l #当前服务器所使用的模型及开启模块
httpd -D DUMP_MODULES #当前服务器支持的模块
service httpd reload #重新加载配置文件
service httpd restart #重启httpd服务
注意:修改配置文件后要重新加载配置文件,修改服务器监听端口后要重启服务
二、基本配置
温馨提示:配置httpd的工作属性时,指令不区分大小写,但有约定俗成的习惯:单词的首字母大写;指令的值很有可能区分大小写;有些指令可以重复使用多次;
1、配置监听的端口:
Listen [IP:]PORT
例如:Listen 172.16.3.1:80
2、配置所选用的MPM的属性
安装完默认使用prefork模型
StartServers 8 #服务启动后默认开启的进程数
MinSpareServers 5 #最少空闲进程数
MaxSpareServers 20 #最多空闲进程数
ServerLimit 256 #每个进程允许开启最多的子进程数
MaxClients 256 #每个进程最多用户链接数
MaxRequestsPerChild 4000 #长连接时每个用户最多请求数
worker模型:要支持worker模型需要配置/etc/sysconfig/httpd,开启以下行:
HTTPD=/usr/sbin/httpd.worker
StartServers 4 #服务启动默认开启的进程数
MaxClients 300 #最多同时客户连接数
MinSpareThreads 25 #最少空闲进程数
MaxSpareThreads 75 #最好空闲进程数
ThreadsPerChild 25 #每个进程开启的线程数
MaxRequestsPerChild 0
3、配置服务器支持keep-alived(长连接)
KeepAlive {On|Off} #是否支持长连接
KeepAliveTimeout 2 #长连接超时时间
MaxKeepAliveRequests 50 #超时时间内允许请求的次数
4、配置加载模块
# LoadModule foo_module modules/mod_foo.so
#
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
5、配置网站根目录
DocumentRoot "/var/www/html" #指定网站的主目录
#容器内定义站点的访问权限
#容器内限定用户的访问方法
6、配置页面文件的访问属性
Options
Indexes #是否允许索引页面文件,建议关闭
FollowSymLinks #是否跟随软连接文件
SymLinksifOwnerMatch #跟随符号链接,只允许访问运行apache的用户有属主权限的文件
ExecCGI: #是否允许执行CGI脚本;
All
None
7、基于客户端访问控制
系统默认允许所有人访问
Order #定义allow和deny那个为默认法则;写在后面的为默认法则:写在前面的指令没有显示定义的即受后面的指令控制:
Order allow,deny
Allow from all #所有人可以访问
配置允许172.16.0.0/16访问,但不允许172.16.3.1访问
Order allow,deny
Deny from 172.16.3.1 #禁用一个IP访问
Allow from 172.16.0.0/16 #允许一个网段访问
8、userdir个人站点
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
#UserDir disabled #注释此项
#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
UserDir public_html #开启此项
重新加载配置文件后用:http://HOST/~username/
例如:http://172.16.3.1/~centos/
9、定义默认主页
1DirectoryIndex index.php index.jsp index.html
10、配置日志功能
日志有两类:访问日志(格式自定义)、错误日志
错误日志:
ErrorLog "/path/to/error_log_file"
访问日志:
CustomLog "/path/to/custom_log_file" logformat
日志格式:{combined|common|agent}
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
%h #主机名
%l #
%u #用户名
%t #请求到达的时间
%r #请求报文的起始行,方法
%s #
%b #响应报文的大小
%{Foobar}i #显示从发那个站点跳转过来
%{User-Agent}i #用户代理
11、支持的字符集
1AddDefaultCharset UTF-8
12、路径别名
可以隐藏网站的真实目录,
Alias /test/ "/www/test/" #配置别名
#可以给别名目录定义访问权限
Options None
AllowOverride None
Order allow,deny
Allow from 172.16.0.0/16
13、脚本路径别名
调用服务器上的脚本程序,但不希望脚本放在网站的目录下
ScriptAlias /cgi-bin/ "/www/cgi-bin/" #定义cgi脚本路径别名
# vi /wwww/cgi-bin/test.sh #写一个测试脚本
#!/bin/bash
#cat << EOF
Content-Type:text/html
#这里要有一个空行否则可能会测试不成功
The hostname is: `hostname`. #输出当前系统的主机名 The timeis: `date`. #显示时间
EOF
测试:显示的是脚本执行后的结果
14、基于用户访问控制
当你的网站或者站点的某个路径只想让你授权的用户访问时,就可以使用基于用户的访问控制
这里使用htpasswd命令建立用户帐号文件
htpasswd
-c #第一次使用-c创建新文件,不是第一次不要使用此选项
-m #用户密码使用MD5加密后存放
-s #用户密码使用SHA加密后存放
-p #用户密码不加密
-d #禁用一个账户
-e #启用一个账户
例如:
# htpasswd -c -m /etc/httpd/conf/.htpass tom
命令 选项 生成的用户文件路径及文件名 用户名
# htpasswd -m /etc/httpd/conf/.htpass jerry
# 再次添加用户时就不要使用-c选项了,否则会覆盖之前内容先生成
(1)建立用户帐号文件
# htpasswd -c -m /etc/httpd/conf/.htpass tom
(2)修改主配置文件
# vi /etc/httpd/conf/httpd.con
DocumentRoot "/www/html" #此时网站根目录就是/www/html
Optins Indexes
AllowOverride AuthConfig
AuthName "Oaly for employees." #登录提示信息,可自定义
AuthType Basic #认证方式
AuthUserFile /etc/httpd/conf/.htpass #用户帐号文件
Require valid-user #允许的用户
Require 指定可以访问的用户,可以指定单个用户,直接写用户名就可以了,用户名可以写多个用空格分开,也可以指定所有用户就用 valid-user
15、配置虚拟主机
(1)注释主服务器,添加虚拟主机
# DocumentRoot "/www/html" #注释主服务器
NameVirtualHost 172.16.3.1:80 #开启虚拟主机
DocumentRoot /www/web1 #虚拟主机的网站根目录
ServerName web1.lyd.com #主机名
DocumentRoot /www/web2
ServerName web2.lyd.com
(2)给虚拟主机提供测试文件
mkdir /www/web{1,2}
echo web1.lyd.com > /www/web1/index.html
echo web2.lyd.com > /www/web2/index.html
(3)配置完后用 httpd -t 测试配置文件有没有错误
(4)重启服务 service httpd restart
(5)验证,修改验证客户端的hosts文件,
windows客户端
开始-->运行-->输入"c:\windows\system32\drivers\etc\hosts"用记事本打开并添加以下行
172.16.3.1web1.lyd.com
172.16.3.1web2.lyd.com
16、配置支持https
(1)安装httpd支持ssl模块
yum install mod_ssl -y
(2)自建CA
#cd /etc/pki/CA
# (umask 077; openssl genrsa -out private/cakey.pem 2048)
#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
(3)生成私钥
cd /etc/httpd/conf/
mkdir ssl
cd ssl
(umask 077; openssl genrsa -out httpd.key 1024)
(4)生成证书申请
1openssl req -new -key httpd.key -out httpd.csr
(5)ca签署证书
1openssl ca -in httpd.csr -out httpd.crt -days 365
(6)修改httpd的ssl配置文件
vi /etc/httpd/conf.d/ssl.conf
DocumentRoot "/www/web1"
ServerName www.lyd.com
SSLCertificateFile /etc/httpd/conf/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/httpd.key
(7)将ca证书导入到客户端可信任证书服务器,并验证
相关推荐
apache的HTTPD.conf文件配置详解及基本配置和示例说明
Linux httpd命令 Linux httpd命令是Apache HTTP服务器程序。 httpd为Apache HTTP服务器程序。直接执行程序可启动服务器的服务。 语法httpd [-hlLStvVX][-c][-C][-d][-D][-f] 参数说明: -c 在读取配置文件前,先执行...
1)安装步骤详解:http://blog.csdn.net/magicalcode/article/details/45393115 2)欢迎大家关注我博客更多的精彩内容: http://blog.csdn.net/MagicalCode
Apache是一个历史悠久并且功能十分强大...本文主要从简化安装==>性能调优==>维护方便的角度,介绍了WEB服务的规划、HTTPD安装/应用模块配置、升级/维护等过程。让Apache和PHP,Resin等应用模块的独立升级,完全互不影响
Apache作为一款开源软件,是广泛应用的web应用之一,Apache有两个主要版本1.X和2.X,一般我们使用2.X版本,比起1.X版本它支持很多新的功能,下载Apache源码包的地址为:https://httpd.apache.org ,下载到源码包后...
7.3.1 主配置文件httpd.conf 7.3.2 根目录设置(ServerRoot) 7.3.3 超时设置 7.3.4 客户端连接数限制 7.3.5 设置管理员邮件地址 7.3.6 设置主机名称 7.3.7 设置文档目录 7.3.8 设置首页 7.3.9 网页编码设置 7.3.10 ...
这篇文章介绍下linux网站服务apache的安装与配置方法,包括挂载光盘,安装http服务,管理httpd服务,httpd的配置文件几大部分。具体详情可以参考下文。 1.挂载光盘 自己习惯将光盘挂载在/media/cdrom目录,在做本地...
本文实例讲述了Linux环境下Apache服务器配置二级域名的方法。分享给大家供大家参考,具体如下: (以域名www.csdn.net为例,现在需要配置一个二级域名blog.csdn.net指向主机地址) 首先,确认开启Apache配置文件...
安装LAMP分为两种稍有不同的方法,方法的不同主要是因为所使用的PHP的版本不同... 1 PHP 4.4.4 安装环境:Red Hat Linux 注意事项:安装LINUX的时候,不要安装系统自带的apache(在Linux下名为httpd),也不要安装mysql
01. LAMP 系列教程(一)| 详解 Linux 环境下部署 HTTPD 服务 02. LAMP 系列教程(二)| 如何在 Linux 环境下部署 AWStats 分析系统来监控 Web 站点? 03. LAMP 系列教程(三)| 一文读懂 HTTPD 服务的访问控制 04. ...
本文实例讲述了Linux环境下Apache开启https服务的方法。分享给大家供大家参考,具体如下: 首先申请SSL证书,以阿里云为例,找到域名管理: 免费开启SSL证书: 配置单域名免费证书:(有效期一年) 点击确定,...
入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不...
mysql SHOW STATUS 详解_病毒的BLOG_新浪博客.mht MYSQL系统优化与系统设置参数的一次调查-(2)_Linux技术文章_Linux_操作系统.mht Mysql优化.txt 让apache支持shtml.txt shtml语法介绍.txt IIS Insider – 2003 年 3...
一.上一章我们了解到可以直接再yum仓库当中安装程序,但是需要网络,而且不用解决依赖关系。...10.输入安装httpd服务的命令 11.我们试一试能不能使用访问这个网站 后续的博客我会出一个源代码安装,这是
2.2.2 struts 2属性配置文件struts.properties详解 55 2.2.3 struts 2核心配置文件struts.xml详解 57 2.3 struts 2应用开发实务 61 2.3.1 struts 2应用开发环境的搭建 62 2.3.2 struts 2应用基本开发步骤—搭建...
如果系统默认安装了httpd服务,卸载之。不卸载也没关系,这里只是方便默认80端口的处理。 yum -y remove httpd 解压 tar -xzvf nginx-xxxxxx.tar.gz 安装编译器和依赖库 yum install gcc gcc-c++
众所周知在window下,Apache的配置文件是httpd.conf,但在Linux下安装了Apache后发现其配置并不像window下那么简单,Linux下Apache将各个设置项分在了不同的配置文件中,想想也是有很大的理由的,这样子可以使用户在...
网上百度了很多教程,发现大家都是在配置httpd.conf文件,但我自己在Linux下面的apache并没有这个文件,本着试一试,我就自己新建了个httpd.conf,然后用网上的代码复制进去.。 ServerAdmin webmaster@localhost ...
我当时只在windows下用 APACHE2.3,django1.4,wsgi 部署过,还没有在 linux 下部署。前几天有时间,我在 centos 上测试部署了一下。也不难。唯一的差别是,在windows 下有已经编译好的 wsgi.so 文件,放到 apache 的...