小c学Linux(21)--HTTP服务配置(一)

HTTP SERVER

进程名:httpd
俗称:apache

httpd的功能特性

路经别名:alias
用户认证:authentication
虚拟主机:virtual host
反向代理:负载均衡
用户站点:访问控制
默认网关接口--CGI:Comman Gateway Interface

安装httpd服务

查看当前主机是否安装有httpd

rpm -q httpd

当前没有则安装

yum -y install httpd

查看httpd配置文件

rpm -ql httpd

#1.服务脚本
/etc/rc.d/init.d/httpd

#2.服务配置脚本
/etc/sysconf/httpd

#3.运行目录
/etc/httpd

#4.主配置文件
/etc/httpd/httpd.conf

#5.扩展配置
/etc/httpd/conf.d/*.conf

#6.默认文档根目录(可修改)
/var/www/html

#7.CGI目录
/var/www/cgi-vin/

配置文件详解

面向三种区域的配置


  1. 全局配置
  2. 主机配置:用于仅提供一个站点
  3. 虚拟主机:用于提供多个站点

主机和虚拟主机不能同时存在
格式:指令 + 值

配置指令一般不区分字符大小写,但一般开头为大写,值有可能区分大小写,有些指令可以重复出现

常用配置指令介绍

1)监听套接字
#此指令可以出现多次,用于监听多个不同的套接字
Listen 80
Listen 172.16.36.207:8080

例:查看第二个8080端口是否起作用

#1.检测语法
httpd -t 

#2.重新加载配置文件
service httpd reload

#3.查看端口是否被监听
ss -tnl 

#4.浏览器测试
http://172.16.36.207:8080
2)持久连接
#1.开关
KeepAlive On / Off

#2.超时断开
KeepAliveTimeOut 15

#3.限制最大请求数,超过断开
MaxKeepAliveRequest 100

例:设置超时时间为5秒

#1.用telnet连接网站
telnet 172.16.36.207 80

#2.获取资源
GET /test.html http/1.1
Host:www.xiaoc.com

3.响应状态
connnection 连接状态不是马上关闭,还可以发送GET请求
5秒后自动关闭连接
3)MPM(multipath processing module)–多道处理模块

并不是指一个模块,而是对一种特性的称谓

类型
(1)prefork : 多个进程,每个进程对应一个请求(1对一)
(2)worker : 多个进程,每个进程有多个线程,每个线程对应一个请求(多对多)
(3)event : 单线程响应多个请求,一般只适合做测试使用

查看可使用模块

httpd -l

httpd服务默认启动的为prefork,修改服务配置脚本/etc/sysconfig/httpd,将HTTPD注释取消即可

#1.取消注释
HTTPD=/usr/sbin/httpd.worker

#2.重新启动服务
service httpd restart

#3.查看服务进程,已经是httpd.worker
ps -eFH | tail -5 

模块内控制指令

Module 模块格式

指令 值

指令
MODULE_NAMEprefork.c
StartServers8默认启动工作进程数
MinSpareServers5最少空闲进程数
MaxSpareServers20最大空闲进程数
ServerLimit256最大活动进程数
MaxClients256并发请求最大数
MaxRequestsPerChild4000每个子进程在生命周期内所能服务的请求最大数
MODULE_NAMEworker
StartServers4默认启动的进程数
MaxClients300最大请求并发
MinSpareThreads25最小空闲线程数
MaxSpareThreads75最大空闲线程数
ThreadsPerChild25每个子进程可生成的线程数
MaxRequestsPerChild0每个子进程在生命周期内所能服务请求最大数,0表示不限定
4)DSO(Dynamic Shared Object)

Apache HTTP Server是一个模块化程序,管理员可以通过选择一组模块来选择要包含在服务器中的功能。模块将被编译为与主httpd 二进制文件分开存在的动态共享对象(DSO)。

用法格式:

LoadModule MODULE_NAME /path/to/module

重载配置文件就能生效
如果使用相对路径,则对于ServerRoot所定义的位置而言

列出已经装载的所有DSO模块

httpd -M
5)站点根目录
#默认值
DocumentRoot "/var/www/html"
6)设置该站点网页访问属性
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Options
Indexes缺少指定的默认页面时,允许将目录中的所有文件已列表形式返回给用户:危险:慎用
FollowsymLinks允许跟随符号链接所指向的原始文件
None所有都不启用
All所有的都启用
ExecCGI允许使用mod_cgi模块执行CGI脚本
Includes允许使用mod_include模块实现服务器端包含(SSI)
IncludesNOEXEC允许包含但不允许执行脚本
MultiViews允许使用mod_negotiation实现内容协商
SymLinksIfOwnerMatch在链接文件属主属组与原始文件的属主属组相同时,允许跟随符号链接所指向的原始处
7)基于主机的访问控制
<Direcotry "/path/to/somewhere">
    Options 
    AllowOverride 
        None 不禁用下面
    order 次序,写在后面的为默认
        allow,deny: 没有允许的都拒绝
        deny,allow:没有拒绝的都允许
    Allow from
    Deny from
</Direcotry>
8)定义默认的主页面
DirectoryIndex index.html index.html.var
9)用户目录

允许每个用户都能创建个人站点

#默认为禁止状态
UserDir disabled

#取消注释开启
UserDir public_html

例:创建test用户,创建其个人站点

useradd test
su - test
mkdir public_html
cd public_html
vim index.html

#其他人如test2能够访问我的网站
setfacl -m u:test2:x /home/test

#打开浏览器访问test个人站点
http://172.16.36.207/~test
10)配置日志功能
#配置日志显示格式
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

#配置日志文件
CustomLog logs/access_log combined
Options
%h远程主机名
%l远程登录名
%u认证时远程用户名
%t收到请求的时间
%r请求报文的起始行
%>s响应状态码
%b响应报文的长度,单位为字节
%{referer}i指定请求报文首部的内容
%{User_Agent}i用户代理,上一次跳转到本次页面的位置,“-”表示直接访问
11)路经别名

访问http://server_ip/icons时,其页面来自于/var/www/icons

Alias /icons/ "/var/www/icons/"

<Directory "/var/www/icons">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
设定默认字符集

AddDefaultCharset UTF-8

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值