常用配置
分类:pc28.am神测网

hpptd

  • mod_flate模块
  • https实现
  • http重定向https
  • HSTS
  • httpd相关程序
  • httpd-2.4
  • 编写翻译安装httpd-2.4

#apache ##apache介绍 ``` apache是个开源的网页服务器,也是个模块化的服务器。 apache能够支撑SSL技艺,援助多个虚构主机。 apache是以进度为底子的架构,进度要比线程消耗更加的多的系列开荒,不太相符多微机意况,因而在一个apache web 站点扩大体积时,平日是充实服务器或增添集群节点实际不是加多微电脑。 ``` ##apache的特性 ``` 1.支撑HTTP/1.1通讯左券2.具有轻便而有力的基于文件的配置进度 3.支撑通用网关接口 4.扶植基于IP和借助域名的虚构主机 5.支撑各个方式的HTTP认证 6.集成Perl管理模块 7.集成代理服务器模块 8.辅助实时监视服务器状态和定克服务器日志 9.支撑服务器端包罗指令(SSI) 10.帮忙百色Socket层(SSL) 11.提供顾客会话进程的追踪 12.补助法斯特CGI 13.透过第三方模块能够支撑JavaServlets ``` ##apache的功能 ``` 设想主机 IP 、Port 、FQDN CGI :Common Gateway Interface ,通用网关接口 反向代理 负载均衡 路线小名 丰硕的顾客认证机制 basic digest 帮助第三方模块 ``` apache优缺点 ``` apache的帮助和益处 rewrite ,比nginx的rewrite 强盛rewrite是意气风发种服务器的重写脉冲技艺,它能够使得服务器能够扶持 U牧马人L 重写,它还足以实现限定特定IP访谈网址的作用。 模块比较多,基本想到的都得以找到 少bug ,nginx 的bug绝对超多 超牢固须求质量的web服务就用nginx ,要是无需品质只求安定那就apache apache切合做动态,稳固且效果强 apache的顽固的病痛apache相对于nginx占用的内部存款和储蓄器及财富相当多apache的抗并发手艺尚无nginx强,apache管理央浼是运用窒碍型的。 apache稳固性好但质量未有nginx好。 ``` ##httpd介绍 ``` 1》httpd 20世纪90时代初,国家一流Computer应用中央NCSA开荒,1991年开源社区公布apache (a patchy server卡塔 尔(英语:State of Qatar) ASF:apache software foundation FSF:Free Software Foundation 2》天性: 高度模块化:core modules DSO: Dynamic Shared Object 动态加/卸载 MPM:multi-processing module 多路管理模块 3》MPM职业形式 1卡塔 尔(阿拉伯语:قطر‎prefork: 多进度I/O 模型,每一个进程响应八个央浼,私下认可模型。 四个主进程: 生成和回笼n个子进度,创立套接字,不响应央浼。 几个子进度: 工作work进度,每种子过程处理大器晚成央求。 系统初步时,预先生成四个空闲进度,等待央浼,最大不超过10二十四个。 ![]() 2卡塔尔worker: 复用的多进度I/O 模型, 多进度八线程,IIS 使用此模型。 三个主进程: 生成m个子进度,每种子进度肩负生成n个线程,各种线程响应三个央求,并发响应须要为m*n。 ![]() 3卡塔 尔(阿拉伯语:قطر‎event: 事件驱动模型(worker模型的变种卡塔 尔(阿拉伯语:قطر‎ 三个主进度: 生成m个子进度,各样进程向来响应n个央浼,并发响应须求:m*n。 有特意的线程来管理那一个keep-alive 类型的线程,当有实在央求时,将要求传递给服务线程,推行完毕后,又同意释放。 这样加强了高并发场景下的乞请管理技艺。 在centos6中httpd-2.2的event是测量试验版,在centos7中httpd-2.4的event是牢固版。 ![]() 4》进度剧中人物 ![]() 5》httpd功能特色 设想主机 IP 、Port 、FQDN CGI :Common Gateway Interface ,通用网关接口 反向代理 负载均衡 路线外号 丰硕的客户认证机制 basic digest 扶助第三方模块 6》httpd安装 版本: CentOS 6: 2.2 CentOS 7: 2.4 安装方式: rpm :centos 发行版,稳固,建议使用 编写翻译:定制或特需 ``` ##https :http over ssl ``` 1》SSL 会话的简化进程 (1) 顾客端发送可供选拔的加密方法,并向服务器央求证书 (2) 服务器端发送证书以至选定的加密方法给客户端 (3) 客商端获得证书并开展证件验证 若是信赖给其发证书的CA (a) 验证证书来源的合法性,用CA 的公钥解密证书上数字具名 (b) 验证证书的剧情的合法性:完整性验证 (c) 检核准明的平价期 (d) 检查评释是或不是被裁撤 (e) 证书中具有者的名字,与探望的目的主机要后生可畏致 (4) 客商端生成偶然会话密钥(对称密钥),并应用劳务器端的公钥加密此数额发送给服务器,达成密钥调换(5) 服务用此密钥加密顾客乞请的财富,响应给顾客端 注意:SSL 是根据IP地址实现, 单IP的主机仅能够动用三个https 2》https 完结,配置httpd协助https (1) 为服务器申请数字证书 测量试验:通过私建CA发证书 (a)创制私有CA (b)在服务器成立证书签署诉求 (c)CA 签证 (2) 配置httpd 扶植接受ssl yum -y install mod_ssl 配置文件:/etc/httpd/conf.d/ssl.conf DocumentRoot ServerName SSLCertificateFile SSLCertificateKeyFile (3) 测量检验基于https 访谈相应的主机 openssl s_client [-connect host:port] [-cert filename] [-CApath directory] [-CAfile filename] 3》http 重定向https 将http 央求转载至https 的UENCOREL 重定向 Redirect [status] URL-path URL status 状态: Permanent:Returns a permanent redirect status(301) indicating that the resource has movedpermanently Temp:Returns a temporary redirect status (302).This is the default 示例: Redirect temp / 4》HSTS HSTS:HTTP Strict Transport Security 服务器端配置支持HSTS 后,会在给浏览器再次来到的HTTP 首部中指导HSTS 字段。 浏览器获取到该新闻后,会将具有HTTP 访问乞请在里面做307 跳转到HTTPS ,而不需求任何互联网进程。 HSTS preload list 是Chrome 浏览器中的HSTS 预载入列表,在该列表中的网址,使用Chrome 浏览器访问时,会自行调换成HTTPS 。 Firefox 、Safari、 Edge 浏览器也会动用那几个列表。 完毕HSTS 示例: vim /etc/httpd/conf/httpd.conf Header always set Strict-Transport-Security "max-age=15768000" RewriteEngine on RewriteRule ^(/.*)$ [redirect=301] 5》httpd 自带的工具程序 htpasswd :basic 认证基于文件落到实处时,用到的账号密码文件生成工具 apachectl :httpd 自带的劳动调控脚本,扶持start 和stop apxs :httpd-devel 包提供,扩张httpd 使用第三方模块工具 rotatelogs :日志滚动工具 access.log --> access.log, access.1.log --> access.log, acccess.1.log, access.2.log suexec :访谈一些有独特权限配置的财富时,有的时候切换至内定客商位置运转 ab:apache benchmark 6》httpd 的压力测量检验工具 ab, webbench, http_load, seige Jmeter开源 Loadrunner商业,有有关评释tcpcopy:腾讯网,复制坐蓐意况中的真实央浼,并将之保存 ab [OPTIONS] U宝马X5L 来自httpd-tools包 -n :总诉求数 -c :模拟的竞相数 -k :以悠久连接形式测量检验 ulimit –n # 调度能开发的公文数 ```

前言

那篇主要介绍HTTP服务程序蒙受

大概有大器晚成都部队分介绍不到,博主本事有限,招待大神来改过改良

HTTP公约从http/0.9到前天的http/2.0个中爆发了一点都不小的更换,今后主流的事http/1.1

图片 1

在重重面试当主就能问起http左券种种版本的分裂之处,这里就不介绍它们中间的区分了,有想要掌握的能够百度下,面试的时候看下

HTTP专门的学业体制:
http请求:http request
http响应:http response
一次http事务:请求<-->响应

在上篇中基本归纳说了下

http服务器程序:
       httpd apache
       nginx
       lighttpd

http服务器应用

http服务器程序
httpd
apache
nginx
lighttpd

应用程序服务器
IIS .asp
tomcat .jsp
jetty 开源的servlet容器,基于Java的web容器
Resin CAUCHO公司,支持servlets和jsp的引擎
webshpere(IBM), weblogic(BEA), jboss,oc4j(Oracle)

商场分占的额数总计 www.netcraft.com

httpd
20世纪90时期初,国家顶级Computer应用为主NCSA开荒
一九九七年开源社区发布apache(a patchy server卡塔 尔(阿拉伯语:قطر‎
ASF: apache software foundation
FSF:Free Software Foundation
特性:
可观模块化:core modules
DSO: Dynamic Shared Object 动态加/卸载
MPM:multi-processing module多路管理模块(支持多样I/O模型卡塔 尔(阿拉伯语:قطر‎

一、mod_deflate模块

  • 作用:压缩页面优化传输速度

  • 展开压缩功用:

vim /etc/httpd/conf.d/deflate.conf
LoadModule deflate_module modules/mod_deflate.so 
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
DeflateCompressionLevel 9

service httpd reload
curl -I 192.168.136.229/large.txt
curl --compressed -I 192.168.136.229/large.txt

Httpd介绍

MPM职业情势

prefork:多进度I/O模型,每种进程响应一个必要,默许模型
一个主进程:生成和回笼n个子进度,创立套接字,不响应诉求
多个子进程:工作work进度,各种子进度管理一个诉求;系统起先时,预先生成多个空闲进程,等待央求,最大不超越1024(系统中暗中同意并发进度数卡塔 尔(英语:State of Qatar)个

worker:复用的多进度I/O模型,多过程八十二十六线程,IIS使用此模型
三个主进度:生成m个子进程,各种子进程担当生个n个线程,每种线程响应八个伸手,并发响应央求:m*n

event:事件驱动模型(worker模型的变种卡塔 尔(英语:State of Qatar)
三个主进度:生成m个子进度,各种进度平素响应n个恳求,并发响应哀告:m*n,有专门的线程来治本这几个keep-alive类型的线程,当有实在必要时,将央浼传递给服务线程,推行完成后,又同意释放。那样巩固了高并发场景下的乞请管理才能
httpd-2.2: event 测试版, centos6默认
httpd-2.4:event 稳定版,centos7默认

二、https实现:

  • 前提:本实验涉及到的主机有:
    httpd服务器:IP 192.136.136.229
    CA服务器:IP 192.136.136.230
    DNS服务器:IP 192.136.136.130
    客户端:IP 192.136.136.129

httpd:

20世纪90时代初,国家一流Computer应用为主NCSA开垦

httpd功用特色

设想主机:三个物理服务器搭建八个网址
IP、Port、FQDN
CGI:Common Gateway Interface,通用网关接口
(网关:连接分歧网段、不一致协商时期的通讯卡塔尔国
反向代理
负载均衡
路径别称
丰裕的客商认证机制
basic
digest
支撑第三方模块

(意气风发卡塔尔为httpd服务器申请数字证书

通过创立私有CA签发证书
(a) 成立私有CA

cd /etc/pki/CA/
(umask 066;openssl genrsa -out private/cakey.pem 2048)                       //创建私钥
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650     //创建自签名证书
echo 00 > serial
touch index.txt

(b) 在服务器创造证书签定哀告

mkdir /etc/httpd/conf.d/ssl
cd /etc/httpd/conf.d/ssl
(umask 066;openssl genrsa -out httpd.key 2048)      //创建私钥
openssl req -new -key httpd.key -out httpd.csr      //创建证书申请
scp httpd.csr 192.168.136.230:/etc/pki/CA           //向CA传送证书申请

(c) CA签证

openssl ca -in httpd.csr -out certs/httpd.crt -days 365     //签发证书
scp certs/httpd.crt cacert.pem 192.168.136.229:/etc/httpd/conf.d/ssl/
//向httpd服务器传送证书和CA的自签名证书

特性:

中度模块化:core modules

DSO: Dynamic Shared Object 动态加/卸载

MPM:multi-processing module多路处理模块

httpd安装

版本:
CentOS 6: 2.2
CentOS 7: 2.4
设置格局:
rpm:centos发行版,牢固,建议采取
编写翻译:定制或特种须求
CentOS 6
前后相继遭遇:httpd-2.2

配备文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf

检查布署语法:
httpd –t
service httpd configtest

劳务脚本:
/etc/rc.d/init.d/httpd

剧本配置文件:
/etc/sysconfig/httpd

劳动调控和开发银行:
chkconfig httpd on|off service {start|stop|restart|status|configtest|reload} httpd

站点网页文书档案根目录: /var/www/html

模块文件路线:
/etc/httpd/modules
/usr/lib64/httpd/modules

主程序文件:
/usr/sbin/httpd
/usr/sbin/httpd.worker
/usr/sbin/httpd.event

主进度文件:
/etc/httpd/run/httpd.pid

[root@CentOS6 run]#cat httpd.pid 
2367
#服务启动时自动创建,存放服务的主进程编号
#当服务停止文件自动删除

日志文件目录:
/var/log/httpd access_log: 访问日志
error_log:错误日志

援助文书档案包: httpd-manual(yum下载httpd的法定文书档案)
下载完毕之后,重新加载服务配置文件,通过浏览器访谈本机的IP/manual目录。
安顿文件目录树:

[root@CentOS6 ~]#tree /etc/httpd
/etc/httpd
├── conf
│   ├── httpd.conf
│   └── magic
├── conf.d
│   ├── mod_dnssd.conf
│   ├── README
│   └── welcome.conf
├── logs -> ../../var/log/httpd
├── modules -> ../../usr/lib64/httpd/modules
└── run -> ../../var/run/httpd

(二卡塔 尔(英语:State of Qatar)配置httpd帮助采用ssl

yum -y install mod_ssl
vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/httpd/conf.d/ssl/httpd.crt     //httpd服务器证书
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key     //httpd私钥
SSLCACertificateFile /etc/httpd/conf.d/ssl/cacert.pem     //CA自签名证书

httpd -t
service httpd reload

MPM职业方式

Httpd 2.2相近配置

校订配置文件此前,先备份

(三)配置DNS服务器

yum install bind
//1. 编辑通用配置文件
vim /etc/named.conf
options {
        listen-on port 53 { localhost; };      //修改的行
        allow-query     { any; };      //修改的行
};
//2. 编辑独立分区解析文件
vim /etc/named.rfc1912.zones
zone "hellopeiyang.com" IN {
        type master;
        file "hellopeiyang.com.zone";
};

named-checkconf
//3. 编辑解析库文件
vim /var/named/hellopeiyang.com.zone
$TTL 1D
@       IN SOA  dns1 admin.hellopeiyang.com. (
                                        101     ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      dns1
dns1    A       192.168.136.130
websrv  A       192.168.136.229
www     CNAME   websrv

named-checkzone hellopeiyang.com /var/named/hellopeiyang.com.zone
dig www.hellopeiyang.com @127.0.0.1

prefork:

1、多进度I/O模型,每一个进度响应一个伸手,暗许模型

2、个主进程:生成和回笼n个子进度,创建套接字,不响应央求

3、四个子进程:职业work进程,各样子进度管理一个伸手;系统起头时,预先生成三个空闲进度,等待央浼,最大不抢先1019个

如图:

图片 2

httpd配置文件的重新组合:

[root@CentOS6 ~]$ grep "Section" /etc/httpd/conf/httpd.conf              #主配置文件
Section 1: Global Environment           #全局环境设置
Section 2: 'Main' server configuration  #主服务器配置
Section 3: Virtual Hosts                #虚拟主机

(四卡塔 尔(阿拉伯语:قطر‎服务器希图像和文字件

vim /etc/httpd/conf/httpd.conf
DocumentRoot "/app"

vim /app/index.html
<h1>Welcome to hellopeiyang.com</h1>

httpd -t
service httpd reload
scp /etc/httpd/conf.d/ssl/cacert.pem 192.168.136.129:/root     //向客户端传送CA自签名证书

worker:

1、复用的多进度I/O模型,多进程八线程,IIS使用此模型

2、三个主进度:生成m个子进度,各个子进程肩负生个n个线程,每一种线程响应一个伸手,并发响应央求:m*n

如图:

图片 3

布署格式

directive value
directive: 不区分字符大小写
value: 为路线时,是或不是区分朗朗上口写,决计于文件系统

(五)客商端测验

vim /etc/sysconfig/network-scripts/ifcfg-eth1
DNS1=192.168.136.130                                       //增加一行DNS服务器IP
service network restart
cat /etc/resolv.conf
curl https://www.hellopeiyang.com                          //直接登录失败
curl -k  https://www.hellopeiyang.com                      //-k选项忽略证书能够看到网页内容正确
curl --cacert cacert.pem  https://www.hellopeiyang.com     //成功连接

图片 4

图片 5

  • 留意:SSL是凭仗IP地址完成,单IP的主机仅能够动用叁个https虚构主机

event:

1、事件驱动模型(worker模型的变种卡塔尔

2、五个主进程:生成m个子进度,各个进度向来响应n个央浼,并发响应诉求:m*n,有特其余线程来治本那一个keep-alive类型的线程,当有实际央浼时,将呼吁传递给劳务线程,执行完结后,又允许释放。那样加强了高并发场景下的央浼管理技术

如图:

图片 6

备考:MPM形式也是面试中常问的主题素材

1、彰显服务器版本新闻

关键字:ServerTokens
ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full
ServerTokens Prod[uctOnly] :Server: Apache
ServerTokens Major: Server: Apache/2
ServerTokens Minor: Server: Apache/2.0
ServerTokens Min[imal]: Server: Apache/2.0.41
ServerTokens OS: Server: Apache/2.0.41 (Unix)
ServerTokens Full (or not specified): Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2

This setting applies to the entire server and cannot be enabled or disabled on a virtualhost-by-virtualhost basis. After version 2.0.44, this directive also controls the information presented by the ServerSignature directive.
提议接纳:ServerTokens Prod(安全着想不呈现太详细的版本音讯卡塔 尔(英语:State of Qatar)

[root@CentOS6 ~]#curl -I 172.18.45.6
HTTP/1.1 200 OK
Date: Fri, 29 Sep 2017 01:42:20 GMT
Server: Apache/2.2.15 (CentOS)  #修改之前
Server: Apache      #修改结果
Last-Modified: Sat, 05 Aug 2017 11:36:50 GMT
ETag: "1a015f-3a-55600078b343c"
Accept-Ranges: bytes
Content-Length: 58
Connection: close
Content-Type: text/html; charset=UTF-8

三、http重定向https

  • 安插格式
    Redirect [status] URL-path URL

  • status状态:

    • Permanent:永远重定向,301
    • Temp:有时重定向,302,暗中认可设置,日常http重定向https选用temp方式
  • 实验:接上个实验,实现访谈http://www.hellopeiyang.com重定向为https

vim /etc/httpd/conf.d/redirect.conf
Redirect temp / https://www.hellopeiyang.com/
httpd -t
service httpd reload

图片 7

HTTP安装

2、改进监听IP,Port端口

Listen [IP:]PORT

(1) 省略IP表示为0.0.0.0;

(2) Listen指令起码八个,可重新出现行反革命复 Listen 80 Listen 8080

(3) 校订监听socket,重启服务进程方可生效

四、HSTS

  • HSTS: HTTP Strict Transport Security
    劳务器端配置扶植HSTS后,会在给浏览器重回的HTTP首部中引导HSTS字段。浏览器获取到该新闻后,会将全部HTTP访谈供给在内部做307跳转到HTTPS,而无需任何网络进程

  • HSTS preload list
    Chrome浏览器中的HSTS预载入列表,在该列表中的网址,使用Chrome浏览器访问时,会自动转变来HTTPS。Firefox、Safari、Edge浏览器也会采取这些列表

  • 实验:开启HSTS功能

vim /etc/httpd/conf.d/hsts.conf
Header always set Strict-Transport-Security "max-age=15768000"
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]

httpd -t
service httpd reload

图片 8

版本

CentOS 6:暗中认可2.2本子(官方以平息支持卡塔尔

CentOS 7:默认2.4版本

3、悠久连接

关键字:KeepAlive
Persistent Connection:连接构建,每种能源得到成功后不会断开连接,而是继续伺机其余的伸手实现,暗中同意关闭长久连接 。三个TCP三次握手创设连接今后,每一种财富获得成功之后不会立即断开连接,超越定义的过期时间大概超过传输的能源个数,才会断开连接状态。

断开条件:
多少节制:100
岁月范围:以秒为单位, httpd-2.4 扶持微秒级 副功能:对并发访谈量十分大的服务器,持久连接作用会选用有个别哀告得不到响应
拗可是:使用比较短的悠久连接时间

设置: KeepAlive On|Off
KeepAliveTimeout 15 #设置超时时间
MaxKeepAliveRequests 100 #设置一遍三番两次诉求能源数量

测试:
telnet WEB_SERVER_IP PORT
GET /URL HTTP/1.1
Host: WEB_SERVER_IP

五、httpd相关程序

安装模式

rpm:centos发行版,牢固,建议采用
编译:定制或特殊须要

备注:前面会介绍编译安装----

4、MPM( Multi-Processing Module卡塔尔多路管理模块

prefork, worker, event(试验阶段卡塔尔
httpd-2.2不帮助同期编写翻译八个模块,所以只可以编写翻译时选定叁个;rpm安装的包提供五个二进制程序文件,分别用于贯彻对不一样MPM机制的补助
确认办法:
ps aux | grep httpd
默认为/usr/sbin/httpd, 即prefork模式

查看模块列表
翻开静态编写翻译的模块 httpd -l

[root@CentOS6 ~]#httpd -l |grep 'prefork'
  prefork.c     #表示正在使用的模块prefork.c

查看静态编写翻译及动态装载的模块 httpd –M
动态模块加载:不需重启即生效
动态模块路线 /usr/lib64/httpd/modules/

更改使用的httpd程序
/etc/sysconfig/httpd
HTTPD=/usr/sbin/httpd.worker #默许该行被批注
重启服务生效
pstree -p|grep httpd 查看进度和线程

Httpd 2.4 与之不相同 以动态模块方式提供
配置文件:/etc/httpd/conf.modules.d/00-mpm.conf
httpd –M |grep mpm
重启前台经理效
pstree -p|grep httpd 查看进程和线程

prefork的默许配置: 在主配置文件中
关键字:MPM

worker的暗许配置:

(意气风发卡塔 尔(阿拉伯语:قطر‎httpd自带工具程序

  • htpasswd:basic认证基于文件贯彻时,用到的账号密码文件生成工具
  • apachectl:httpd自带的劳动调节脚本,协理start和stop
  • apxs:httpd-devel包提供,扩展httpd使用第三方模块工具
  • rotatelogs:日志滚动工具
    access.log -->
    access.log, access.1.log -->
    access.log, acccess.1.log, access.2.log
  • suexec:访谈一些有特异权限配置的能源时,有时切换至钦定顾客身份运转

HTTP-CentOS 7程序意况

5、DSO: Dynamic Shared Object

关键字:LoadModule
加载动态模块配置
/etc/httpd/conf/httpd.conf
布局钦定完结模块加载格式:
LoadModule <mod_name> <mod_path>
模块文件路线可选择相对路线:
相对于ServerRoot(默认/etc/httpd)
模块文件路线:/etc/http/modules
累计模块能够在主配置文件中直接助长,也得以依据相应的格式在/etc/httpd/conf.d/目录下独自布署,便于管理

(二卡塔 尔(英语:State of Qatar)httpd的压力测量检验工具

  • ab(httpd-tools包), webbench, http_load, seige
  • Jmeter:开源
  • Loadrunner:商业,有连锁认证
  • tcpcopy:腾讯网,复制生产意况中的真实央浼,并将之保存
  • ab [OPTIONS] URL
    -n:总央求数
    -c:模拟的并行数
    -k:以矢志不移连接格局测量试验
    ulimit -n # 调度能开荒的文件数

新版本2.4特性

MPM支持运转为DSO机制;以模块情势按需加载

event MPM坐褥条件可用

异步读写机制

支撑每模块及每目录的独门日志品级定义

每央求相关的专项使用配置

巩固版的表达式剖析式

阿秒级漫长连接时长定义

基于FQDN的虚构主机无需NameVirutalHost指令

新指令,AllowOverrideList

支撑顾客自定义变量

更低的内部存款和储蓄器消耗

6、定义'Main' server的文书档案页面路线

关键字:DocumentRoot “/path”
文书档案路线映射:
DocumentRoot指向的门径为U途观L路线的序曲地点
示例: DocumentRoot "/app/data"

--> /app/data/test/index.html
注意:SELinux和iptables的状态
/etc/httpd/conf.d/welcome.conf 文件定义了当客商访谈页面不真实,也便是出新403漏洞相当多时暗中同意跳转的页面。

六、httpd-2.4

布局文件:

/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf

7、定义站点主页面

关键字:DirectoryIndex
DirectoryIndex index.html index.html.var

(一)httpd-2.4的变化

  • 新特性
    (1) MPM扶植运维为DSO机制;以模块方式按需加载
    (2) event MPM分娩条件可用
    (3) 异步读写机制
    (4) 援救每模块及每目录的独自日志等级定义
    (5) 每央浼相关的专项使用配置
    (6) 巩固版的表明式解析式
    (7) 纳秒级长久连接时间长度定义
    (8) 基于FQDN的设想主机无需NameVirutalHost指令
    (9) 新指令,AllowOverrideList
    (10) 帮衬顾客自定义变量
    (11) 更低的内部存储器消耗

  • 改善了一部分配置机制
    不再扶助使用Order, Deny, Allow来做依照IP的访谈调节

  • 新模块
    (1) mod_proxy_fcgi
    (2) mod_remoteip
    (3) mod_ratelimit

检查铺排语法:

httpd –t
service httpd configtest

8、站点访谈调节不乏先例机制

可凭仗三种体制指明对什么能源拓宽何种访谈调控
访谈调节机制有二种:顾客带给源地址,顾客账号
文件路径:

<Directory  “/path">    #对于本地目录的访问控制
...         
</Directory> 
<File  “/path/file”>    #对于本地文件的访问控制
... 
</File> 
<FileMatch "PATTERN">   #对于匹配文件的访问控制
... 
</FileMatch>

RUL路径:

<Location  "">                  #对于URL的访问控制
... 
</Location> 
<LocationMatch "">              #对于匹配的URL的访问控制
... 
</LocationMatch>

示例:

<FilesMatch ".(gif|jpe?g|png)$"> 
<Files “?at.*”>  通配符 
<Location /status> 
<LocationMatch "/(extra|special)/data">

通配符相配相比消耗服务器的属性,客商端每一遍伏乞能源都会对财富开展相比,裁减了服务器的性质,定义的规行矩步越复杂服务器的保卫安全也不会越难

(二卡塔 尔(英语:State of Qatar)httpd-2.4的次序情形

  • 陈设文件:
    /etc/httpd/conf/httpd.conf
    /etc/httpd/conf.d/*.conf

  • 模块相关的配备文件:/etc/httpd/conf.modules.d/*.conf

  • SystemdUnit文件:/usr/lib/systemd/system/httpd.service

  • 主程序文件:
    /usr/sbin/httpd
    httpd-2.4协助MPM的动态切换

  • 日志文件:
    /var/log/httpd
    access_log:访谈日志
    error_log:错误日志

  • 站点文档:
    /var/www/html

  • 模块文件路线:
    /usr/lib64/httpd/modules

  • 服务调节:
    systemctl enable|disable httpd.service
    systemctl {start|stop|restart|status} httpd.service

模块相关的配备文件:

/etc/httpd/conf.modules.d/*.conf

9、

(1) Options:后跟1个或三个以空白字符分隔的选项列表
在选取前的 ,- 表示扩展或删除钦赐选项
相近选项:
Indexes:指明的U大切诺基L路线下一纸空文与概念的主页面能源相符的能源文件时,重临索引列表给客户(当客户访谈的U传祺L不设有index文件时是不是出示一个目录页面卡塔尔
FollowSymLinks:允许访问标识链接文件所针没错源文件
None:全体剥夺
All: 全体允许
示例:

[root@CentOS6 ~]#vim /etc/httpd/conf.d/test.conf
<Directory /var/www/html/test>  #受控目录
Options -Indexes        #不允许返回目录索引
Options -FollowSymLinks #不允许访问软链接文件
</Directory>

(2) AllowOverride
与访问调控相关的怎么着指令能够献身钦赐目录下的 .htaccess(由AccessFileName钦定卡塔 尔(阿拉伯语:قطر‎文件中,覆盖早先的配备指令
.htaccess:在钦点目录中开创该公文,只调整该目录的寻访
只对

(3) order和allow、deny
放在directory, .htaccess中
order:定义生效次序;写在后头的代表暗中认可法规
Order allow,deny
Order deny,allow
Allow from, Deny from
IP (八种写法卡塔尔国
网络:
172.16
172.16.0.0
172.16.0.0/16
172.16.0.0/255.255.0.0
示例:

<files "*.txt">             #控制所有*.txt文件
order deny,allow 
deny from 172.16.100.100    #拒绝该IP访问所有以.txt结尾的文件
allow from 172.16
</files>
allow,DENY DENY,ALLOW
ONLY ALLOW ALLWO ALLOW
ONLY DENY DENY DENY
BOTH DENY ALLOW
NONE DENY ALLOW

(三)httpd-2.4的配置

systemd unit file:

/usr/lib/systemd/system/httpd.service

10、日志设定

日志类型:
​ 访谈日志
​ 错误日志

荒谬日志:
​ ErrorLog logs/error_log
​ LogLevel warn loglevel 可选值:
​ debug, info, notice, warn,error crit, alert, emer

采访日志:
概念日志格式:LogFormat format strings
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined

运用日志格式:
CustomLog logs/access_log combined
参照扶持:
.html#formats

%h 客户端IP地址
%l 远程客商,启用mod_ident才使得,日常为减号“-”
%u 验证(basic,digest卡塔 尔(阿拉伯语:قطر‎远程客户,非登入访谈时,为 多个减号“-”
%t 服务器收到哀告时的时间
%r First line of request,即表示诉求报文的首行;记录了本次乞请的“方法”,“U瑞鹰L”以致和谐版本
%>s 响应状态码
%b 响应报文的轻重,单位是字节;不富含响应报文http首部
%{Referer}i 央求报文中首部“referer”的值;即从哪个页面中的超链接跳转至当前页面包车型地铁
%{User-Agent}i 乞请报文中首部“User-Agent”的值;即发出诉求的应用程序

(1卡塔 尔(阿拉伯语:قطر‎切换使用的MPM

Centos 7环境:
编辑/etc/httpd/conf.modules.d/00-mpm.conf
启用要启用的MPM相关的LoadModule指令就可以

主程序文件:

/usr/sbin/httpd
httpd-2.4支持MPM的动态切换

11、设定暗许字符集

关键字:AddDefaultCharset UTF-8
华语字符集:GBK, GB2312, GB18030

(2)主目录

DocumentRoot /path

日志文件:

/var/log/httpd
access_log:访问日志
error_log:错误日志

12、定义路线小名

格式: Alias /URL/ "/PATH/"
DocumentRoot "/www/htdocs" ==>/www/htdocs/download/bash.rpm
Alias /download/ "/rpms/pub/" ==>/rpms/pub/bash.rpm ==>/www/htdocslogo.png

(3卡塔 尔(阿拉伯语:قطر‎基于IP的访谈调整
  • 无明显授权的目录,暗中同意推却

    • 同意具有主机访谈:Require all granted
    • 驳倒全数主机访谈:Require all denied
  • 支配特定的IP访谈:
    Require ip IPADDWrangler:授权特定的IP访问
    Require not ip IPADD逍客:拒却特定的IP访谈

  • 操纵特定的主机访问:
    Require host HOSTNAME:授权特定主机访谈
    Require not host HOSTNAME:谢绝特定主机访谈
    HOSTNAME:
    FQDN:特定主机
    domin.tld:钦命域名下的保有主机

  • 无法有波折,至稀有一个成功相称
    <RequireAll>
    Require all granted
    Require not ip IPADD大切诺基 拒却特定IP
    </RequireAll>

  • 多个语句有一个打响,即中标
    <RequireAny>
    Require all denied
    Require ip IPADDRubicon 允许特定IP
    </RequireAny>

  • 尝试:将httpd服务的主目录改过为/app,何况只同意192.136.136.130的主机访谈

//1. 修改主目录
vim /etc/httpd/conf/httpd.conf
DocumentRoot "/app"
<Directory "/app">
        Require all granted
</Directory>

httpd -t
systemctl reload httpd
echo "/app/index.html" > /app/index.html

//2. 修改访问权限
vim /etc/httpd/conf/httpd.conf
<Directory "/app">
        <RequireAny>
                Require all denied
                Require ip 192.168.136.130
        </RequireAny>
</Directory>

httpd -t
systemctl reload httpd

图片 9

图片 10

站点文书档案:

/var/www/html

13、基于顾客的访问调节

证实质询:WWW-Authenticate:响应码为401,谢绝客商端 伏乞,并证实须求客商端提供账号和密码

注解:Authorization:顾客端客商填入账号和密码后再也发送央求报文;认证通过时,则服务器发送响应的财富

表达方法二种:
basic:明文
digest:音信摘要认证,包容性差

安全域:供给客商认证后方能访谈的路子;应该经过名称对其张开标志,以便于告知客商认证的开始和结果

客户的账号和密码
编造账号:仅用于访谈某服务时用到的求证标志
积存:文本文件,SQL数据库,ldap目录存款和储蓄,nis等

basic认证配置示范:

(1) 定义安全域

<Directory “/path"> 
    Options None 
    AllowOverride None 
    AuthType Basic          #验证类型
    AuthName "String“       #提示符
    AuthUserFile  "/PATH/HTTPD_USER_PASSWD_FILE" 
    Require  user  username1  username2 ... 
</Directory> 

同意账号文件中的全部客户登陆访谈:
Require valid-user

(2) 提供账号和密码存款和储蓄(文本文件卡塔尔国
行使专项使用命令完结此类文件的创始及客商管理
htpasswd [options] /PATH/HTTPD_PASSWD_FILE username
-c:自动创设文件,仅应该在文件一纸空文时选取
-m:md5格式加密,私下认可情势
-s: sha格式加密
-D:删除内定顾客

[root@CentOS6 ~]#vim /etc/httpd/conf.d/test.conf
<Directory /var/www/html/test>
authtype basic
authname "hehe"
authuserfile "/etc/httpd/conf.d/.httpusers"
require user hehe 
</Directory>

基于组账号实行认证

(1) 定义安全域

<Directory “/path"> 
    AuthType Basic 
    AuthName "String“ 
    AuthUserFile "/PATH/HTTPD_USER_PASSWD_FILE" 
    AuthGroupFile "/PATH/HTTPD_GROUP_FILE" 
    Require  group  grpname1  grpname2 ... 
</Directory> 

(2) 创造客商账号和组账号文件;
组文件:每大器晚成行定义七个组
GRP_NAME: username1 username2 ...
那边不论是顾客依然组都是对此httpd服务来讲的,与的顾客与组linux非亲非故

长间距顾客端和客商验证的支配
Satisfy ALL|Any
ALL 客商机IP和顾客验证都必要通过才得以
Any客商机IP和客商验证,有八个满意就可以

(4卡塔 尔(阿拉伯语:قطر‎设想主机
  • 据他们说FQDN的虚构主机也不再必要NameVirutalHost指令

  • 自由目录下的页面唯有显式授权技能被访谈

  • 尝试:httpd 2.4条件下促成基于FQDN的主机

//1. 建立网页文件
mkdir /app/website{1..3}
echo "/app/website1/index.html" >  /app/website1/index.html
echo "/app/website2/index.html" >  /app/website2/index.html
echo "/app/website3/index.html" >  /app/website3/index.html

//2. 编辑独立配置文件
vim /etc/httpd/conf.d/virtualhost.conf
<Virtualhost *:80>
        ServerName www.hello.com
        DocumentRoot "/app/website1"
        <Directory "/app/website1">     //显式授权
                Require all granted
        </Directory>
</Virtualhost>

<Virtualhost *:80>
        ServerName www.hi.cn
        DocumentRoot "/app/website2"
        <Directory "/app/website2">     //显式授权
                Require all granted
        </Directory>
</Virtualhost>

<Virtualhost *:80>
        ServerName www.bye.net
        DocumentRoot "/app/website3"
        <Directory "/app/website3">     //显式授权
                Require all granted
        </Directory>
</Virtualhost>

httpd -t
systemctl reload httpd

//3. 配置DNS服务器或者编辑hosts文件

//4. 测试
curl www.hello.com
curl www.hi.cn
curl www.bye.net

图片 11

模块文件路线:

/usr/lib64/httpd/modules

14、设想主机

站点标志: socket
IP相通,但端口不一致
IP不一致,但端口均为暗许端口
FQDN不同;
伸手报文中首部
Host: www.huxiaoqi.com

有二种完结方案:
依照ip:为各种设想主机筹算起码八个ip地址
传说port:为各个设想主机使用最少二个独门的port
基于FQDN:为各样虚构主机使用最少三个FQDN
静心:日常设想机不要与main主机混用;因而,要运用虚构主机, 日常先禁止使用main主机
剥夺方法:注释中央主机的DocumentRoot指令就能够

设想主机配置方式:

<VirtualHost IP:PORT>
    ServerName FQDN 
    DocumentRoot “/path" 
</VirtualHost> 

提出:上述配置贮存在单身的布署文件中
别的可用指令:
ServerAlias:虚构主机的外号;可反复用到
ErrorLog: 错误日志
CustomLog:访谈日志
<Directory “/path">

Alias
听闻IP的设想主机示例:

<VirtualHost 172.16.100.6:80> 
    ServerName www.a.com 
    DocumentRoot "/www/a.com/htdocs" 
</VirtualHost> 

<VirtualHost 172.16.100.7:80> 
    ServerName www.b.net 
    DocumentRoot "/www/b.net/htdocs" 
</VirtualHost> 

<VirtualHost 172.16.100.8:80> 
    ServerName www.c.org 
    DocumentRoot "/www/c.org/htdocs" 
</VirtualHost>

依据端口的设想主机:
可和遵照IP的设想主机混和使用

listen 808 
listen 8080 
<VirtualHost 172.16.100.6:80> 
    ServerName www.a.com 
    DocumentRoot "/www/a.com/htdocs" 
</VirtualHost> 

<VirtualHost 172.16.100.6:808> 
    ServerName www.b.net 
    DocumentRoot "/www/b.net/htdocs" 
</VirtualHost> 

<VirtualHost 172.16.100.6:8080> 
    ServerName www.c.org 
    DocumentRoot "/www/c.org/htdocs" 
</VirtualHost>

依靠FQDN的设想主机示例:

[root@CentOS6 ~]#vim /etc/httpd/conf.d/test.conf 
  1 NameVirtualHost *:80
  2 <VirtualHost *:80> 
  3         servername www.huxiaoqi.com
  4         DocumentRoot "/app/www.huxiaoqi.com/"
  5 </VirtualHost>
  6 
  7 <VirtualHost *:80> 
  8         servername mile.huxiaoqi.com
  9         DocumentRoot "/app/mile.huxiaoqi.com/"
 10 </VirtualHost>
 11 
 12 <VirtualHost *:80> 
 13         servername zhengzhou.huxiaoqi.com
 14         DocumentRoot "/app/zhengzhou.huxiaoqi.com/"
 15 </VirtualHost>
(5)sendfile机制
  • 历史观互联网传输进程:
    硬盘>> kernel buffer >> user buffer >> kernel socket buffer >> 协议栈
    进度中经验伍遍上下文切换,九次拷贝,拷贝的内容基本雷同

  • 利用sendfile传输进程:
    硬盘>> kernel buffer (神速拷贝到kernel socket buffer卡塔 尔(英语:State of Qatar) >> 协议栈
    经过中绝非上下文切换,唯有贰遍拷贝,提升了品质

  • 开启sendfile功能

vim /etc/httpd/conf/httpd.conf
EnableSendfile on

劳动调整:

systemctl enable|disable httpd.service
systemctl {start|stop|restart|status} httpd.service

15、status页面

模块:LoadModule status_module modules/mod_status.so

<Location /server-status> 
SetHandler server-status 
Order allow,deny 
Allow from 172.16 
</Location> 
#定义的URL:/server-status不是固定不变的,可以更改

主配置文件中加上:ExtendedStatus On
在server-status中展现服务器详细音信

(6卡塔尔国反向代理
  • 语法:
ProxyPass "/" "http://www.example.com/"
ProxyPassReverse "/" "http://www.example.com/"
  • 实验:
    接上个实验的条件,将发至www.hello.com (ip: 192.168.136.230)的乞请转载至192.168.136.129
//1. 编辑独立配置文件
vim /etc/httpd/conf.d/virtualhost.conf
<Virtualhost *:80>
        ServerName www.hello.com
        DocumentRoot "/app/website1"
        <Directory "/app/website1">
                Require all granted
        </Directory>
        ProxyPass "/" "http://192.168.136.129/"            //修改的部分
        ProxyPassReverse "/" "http://192.168.136.129/"     //修改的部分
</Virtualhost>

httpd -t
systemctl reload httpd

//2. 建立网页文件(ip: 192.168.136.129)
echo "welcome to hellopeiyang's home" > /var/www/html/index.html

//3. 测试
curl www.hello.com
curl 192.168.136.230
curl 192.168.136.129

图片 12

查看模块列表

http协议

http协议:stateless 无状态
服务器不大概持续追踪新闻报道人员来源
解决http左券无状态方法
cookie :
重cookie:服务器将客商的具有的客户音信以文件文件的款型记录下来封装生成cookie新闻和一个唯一编号保留下来,然后将cookie通过http合同发送给客商端,客商端将选用了cookie保存在磁盘当中。顾客端每回访谈服务器都会在伸手报文中指点自个儿的cookie上传给服务器,服务器通过cookie音信来确认客户的音讯相同的时间每一回访谈都会更新,增加cookie消息。这种办法有四个缺陷,一个是每回顾客访谈网址都会上传本身的cookie音讯,占用了汪洋的网络带宽扩大了服务器担负。其他由于cookie音讯保存在顾客端的来由,也就以为那同八个顾客只要换豆蔻梢头台微型机去拜望同后生可畏的网址,该客商的客商消息大概不能够棉被和衣服务器识别。所以近日,重cookie这种方法相比落后相当少使用。
轻cookie:轻cookie比较重cookie的区分在于,轻量级的cookie不再存放客户的富有客户信息,而是给各样客户生成贰个ID,依照客商每便访谈辅导的ID来开展身份确认,同时宽容session将客户的顾客新闻与ID相配并贮存在服务器的磁盘和内部存款和储蓄器中,以此来弥补重cookie的劣点。
session 服务端贮存
http事务:三次访谈的进程
请求:request
响应:response

七、编写翻译安装httpd-2.4

查阅静态编写翻译的模块

httpd -l

倡议报文

图片 13

(一)APR

  • APR(Apache Portable Run-time libraries,Apache可移植运转库)主要为上层的应用程序提供贰个足以当先多操作系统平台运用的平底支持接口库

  • APOdyssey负担解决分裂操作系统平台的内幕,依照系统平台应用相应的种类调用

  • Apache httpd信赖于AP宝马X5,httpd-2.4要求AP凯雷德 1.4以上版本

翻开静态编写翻译及动态装载的模块

httpd –M

HTTP响应报文

图片 14

(二卡塔尔国CentOS 7境遇下源码编写翻译安装httpd-2.4

动态模块加载:不需重启即生效

动态模块路径
/usr/lib64/httpd/modules

图片 15

报文语法格式

request报文

response报文

method: 诉求方法,表明客商端希望服务器对能源试行的动作 GET、HEAD、POST等
​ GET:从服务器获取三个财富
​ HEAD:只从服务器获取文书档案的响应首部
​ POST:向服务器输入数据,平常会再由网关程序继续管理
​ PUT:将乞请的侧器重部分存款和储蓄在服务器中,如上传文件
​ DELETE:央浼删除服务器上点名的文书档案
​ TRACE:追踪央浼达到服务器中间经过的代理服务器
​ OPTIONS:央浼服务器重回对点名能源扶持使用的伸手方法

斟酌查看或分析的工具: tcpdump, wireshark,tshark

version: 服务器版本
HTTP/

status: 状态码,三位数字,如200,301, 302, 404, 502; 标识央求管理进程中发生的情事
status(状态码): 面试考试的场面
​ 1xx:100-101 音讯提示
​ 2xx:200-206 成功
​ 3xx:300-305 重定向
​ 4xx:400-415 错误类音讯,顾客端错误
​ 5xx:500-505 错误类新闻,服务器端错误
​ 200: 成功,乞请数据经过响应报文的entity-body部分发送;OK
​ 301: 央浼的UENVISIONL指向的财富已经被删去;但在响应报文中通过首部 Location指明了财富今后所处的新职责;Moved Permanently长久跳转
​ 302: 响应报文Location指明能源有的时候新职分 Moved Temporarily
​ 304: 顾客端发出了条件式诉求,但服务器上的财富未曾产生变动 ,则经过响应此响应状态码布告顾客端;Not Modified
​ 401: 必要输入账号和密码验证方能访谈能源;Unauthorized
​ 403: 央求被明确命令禁止;Forbidden
​ 404: 服务器无法找到顾客端央浼的财富;Not Found
​ 500: 服务器内部错误;Internal Server Error
​ 502: 代理服务器从后端服务器收到了一条伪响应,如不或然连接到网关;Bad Gateway
​ 503 – 服务不可用,不经常服务器维护或过载,服务器不可能管理须要
​ 504 – 网关超时

reason-phrase: 状态码所标识的情事的简要描述

headers: 每一个央浼或响应报文可含蓄自由个首部;各个首部都有首部名称,前边跟二个冒号,而后跟二个可选空格,接着是三个值

entity-body:伏乞时增大的数据或响合时增大的数量

(1卡塔尔安装前考虑:
  • 安装开拓包组:
    yum groupinstall "development tools"

  • 安装供给的软件开辟包:
    yum install apr-devel apr-util-devel pcre-devel openssl-devel

  • 下载安装包,并解压缩
    tar xvf httpd-2.4.27.tar.bz2 -C /usr/local/src

Httpd 2.4科普配置

备考:在这里小编用两台主机举行尝试,分别是:192.168.43.57、192.168.43.67,57当http服务器,67当顾客端,首先yum安装HTTP服务器

http合同首部

(2卡塔 尔(英语:State of Qatar)编写翻译安装进度
  • 进去解压缩后的源码目录
    cd /usr/local/src/httpd-2.4.27/

  • 反全省统编写翻译意况,生成makefile文件
    ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork

  • 编写翻译并安装
    make -j 4 && make install

1、版本号修正

备注:假如人家查询到你的网址事用http那么些版本,是还是不是倒霉,轻巧接受版本漏洞进行攻击,所以让他不展现版本号

1、首先得有个主页,在这里本身就随意创制个index.httml

echo /var/www/html/index.html > /var/www/html/index.html

2、大家先来看一下从未有过进展版本设置时候得地方,在67主机上

curl -I 192.168.43.57

图片 16

版本音信了如指掌

3、在服务器端(57卡塔 尔(阿拉伯语:قطر‎隐瞒版本音信设置

cd /etc/httpd/conf.d/
vim texe.conf

备考:写在主配置文件里也可,推荐写在上述目录下,方便来管理,主配置文件中标识了/conf.d/目录,写在/conf.d/目录下得配置优先生效

ServerTokens Prod
# 写入

systemctl restart httpd

systemctl reload httpd

#重启服务最好用reload

4、再度测量试验评释

图片 17

OK

首部的分类:

通用首部
恳请首部
一倡百和首部
实业首部
扩充首部

(3卡塔 尔(英语:State of Qatar)安装后布置
  • 树立系统账号apache
    useradd -r -d /app/httpd24/htdocs/ -s /sbin/nologin apache

  • 改进运营httpd程序的客商和组

vim /app/httpd24/conf/httpd.conf
User apache
Group apache
  • 日增情形变量值
vim /etc/profile.d/httpd24.sh
PATH=/app/httpd24/bin:$PATH

. /etc/profile.d/httpd24.sh
  • 设置httpd服务开机自运行
vim /etc/rc.d/rc.local
/app/httpd24/bin/apachectl start

chmod  x /etc/rc.d/rc.local
  • 启动httpd服务
    apachectl start

2、修改监听的IP和Port

1) 省略IP表示为本机全部IP

2) Listen指令起码三个,可重新现身数次

示例:

Listen 192.168.1.100:8080

Lsten 80

通用首部:

Date: 报文的成立刻间
Connection:连接情形,如keep-alive, close
Via:显示报文经过的高级中学级节点(代理,网关卡塔尔国
Cache-Control:调节缓存,如缓存时间长度
MIME-Version:发送端选择的MIME版本

(三卡塔 尔(英语:State of Qatar)CentOS 6情况下源码编写翻译安装httpd-2.4(方法风华正茂卡塔尔

3、长久连接

Persistent Connection:连接建设构造,每一个能源获取成功后不会断开连接,而是继续守候别的的乞求完结,暗中认可关闭持久连接
断开条件:数量约束:100

       时间限制:以秒为单位, httpd-2.4 扶持阿秒级

副功能:对并发访谈量非常的大的服务器,长久连接效率会接受有些须要得不到响应

拗可是:使用异常的短的悠久连接时间

央求首部:

Accept:通告服务器自身可担负的传播媒介类型
Accept-Charset: 顾客端可承当的字符集
Accept-Encoding:顾客端可接收编码格式,如gzip
Accept-Language:客商端可担任的言语

Client-IP: 央求的客商端IP
Host: 乞求的服务器名称和端口号
Referer:跳转至当前URI的前多个
U昂科雷L User-Agent:客户端代理,浏览器版本

(1卡塔尔国安装前筹算:
  • 设置开拓包组和连锁开辟软件包
yum groupinstall "development tools"
yum install pcre-devel openssl-devel expat-devel
  • 下载1.4版本以上的apr和apr-util以至httpd2.4的软件包,并解压缩
tar xvf apr-1.6.2.tar.gz -C /usr/local/src/
tar xvf apr-util-1.6.0.tar.gz -C /usr/local/src/
tar xvf httpd-2.4.27.tar.bz2 -C /usr/local/src/

设置:

KeepAlive On|Off
KeepAliveTimeout 15
MaxKeepAliveRequests 100

条件式须要首部

Expect:允许客商端列出某乞求所必要的服务器行为
If-Modified-Since:自从钦定的小运之后,须求的财富是或不是发生过矫正
If-Unmodified-Since:与地点相反
If-None-Match:本地缓存中贮存的文书档案的ETag标签是或不是与 服务器文书档案的Etag不合作
If-Match:与地点相反

(2卡塔尔编写翻译安装apr
  • 进去解压缩的源码目录
    cd /usr/local/src/apr-1.6.2/

  • 检查编写翻译意况,并生成makefile文件
    ./configure --prefix=/app/apr

图片 18

  • 编写翻译并设置
    make && make install

图片 19

测试:

telnet 192.168.43.57 80

图片 20

安然诉求首部:

Authorization:向服务器发送认证消息,如账号和密码
Cookie: 客户端向服务器发送cookie
Cookie2:用于注明须求端补助的cookie版本

(3卡塔尔国编译安装apr-util
  • 进去解压缩的源码目录
    cd /usr/local/src/apr-util-1.6.0/

  • 检查编写翻译情形,并生成makefile文件
    ./configure --prefix=/app/apr-util --with-apr=/app/apr

图片 21

  • 编写翻译并安装
    make && make install

图片 22

4、切换使用的MPM-开启九15个线程

1、编辑

vim /etc/httpd/conf.modules.d/00-mpm.conf

图片 23

2、重读配置文件或重启服务

systemctl reload httpd
systemctl restart httpd

3、查看确认

httpd –M |grep mpm
重启服务生效
pstree -p|grep httpd 查看进程和线程

备注:

1卡塔 尔(英语:State of Qatar)设置进度为九十八个,在大家

图片 24

StartServers   100

2卡塔 尔(阿拉伯语:قطر‎重启服务并查阅

systemctl reload httpd
ps aux

代办央浼首部:

Proxy-Authorization: 向代理服务器认证

(4卡塔 尔(阿拉伯语:قطر‎编写翻译安装httpd-2.4
  • 增多系统账号apache
    useradd -r -d /app/website -s /sbin/nologin apache

  • 进去解压缩的源码目录
    cd /usr/local/src/httpd-2.4.27/

  • 检查编写翻译遭受,并生成makefile文件
    ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/app/apr/ --with-apr-util=/app/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork

图片 25

  • 编写翻译并设置
    make -j 4 && make install

图片 26

5、定义HTTP主目录

响应首部:

信息性: Age:从最早制造起来,响应持续时长Server:服务器程序软件名称和版本
左券首部:某财富有多样意味方法时使用 Accept-Ranges:服务器可承担的乞请范围类型 Vary:服务器查看的其他首部列表
柳暗花明响应首部: Set-Cookie:向顾客端设置cookie Set-库克ie2: 以上边相仿WWW-Authenticate:来自服务器对顾客端的纠缠列表

(5卡塔 尔(阿拉伯语:قطر‎安装后安顿
  • 改进运维httpd程序的客户和组,改革文件贮存根目录
vim /app/httpd24/conf/httpd.conf
User apache                     //修改的行
Group apache                    //修改的行
DocumentRoot "/app/website"     //修改的行
<Directory "/app/website">      //修改的行

mkdir /app/website
  • 日增碰着变量值
vim /etc/profile.d/httpd24.sh
PATH=/app/httpd24/bin:$PATH

. /etc/profile.d/httpd24.sh
  • 编制服务脚本,并安装为开机运营
scp /etc/init.d/httpd 192.168.136.129:/etc/init.d/httpd24     //参考httpd-2.2的服务脚本进行修改
vim /etc/init.d/httpd24
apachectl=/app/httpd24/bin/apachectl               //修改的行
httpd=${HTTPD-/app/httpd24/bin/httpd}              //修改的行
pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}     //修改的行
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}      //修改的行

chkconfig --add httpd24
chkconfig httpd24 on
service httpd24 start
echo "/app/website/index.html" > /app/website/index.html

图片 27

1、私下认可得主目录在

/var/www/html/

实体首部:

Allow: 列出对此财富实体可使用的央求方法
Location:告诉客户端真正的实业位于什么地点
Content-Encoding:对主体实施的编码
Content-Language:掌握主体时最符合的语言
Content-Length: 主体的尺寸
Content-Location: 实体真正所处地点
Content-Type:主体的对象类型,如text 缓存相关:
ETag:实体的扩展标签
Expires:实体的超时时间
Last-Modified:最下次改过的时辰

(6)测试

curl 192.168.136.129

图片 28

2、校勘主目录

1卡塔尔国首先创造目录

mkdir /data/website -pv

2)创建index.html首页

echo /data/website/index.html > /data/website/index.html

3卡塔 尔(阿拉伯语:قطر‎设置配置文件

vim /etc/httpd/conf.d/texe.conf

图片 29

DocumentRoot "/data/website"
<Directory "/data/website">
Require all granted
</Directory>

4卡塔 尔(英语:State of Qatar)重启服务

5)测试

图片 30

注意:SELinux和iptables的状态

curl工具

curl是遵照U揽胜极光L语法在命令行方式下专门的职业的文件传输工具,它支持FTP, FTPS, HTTP, HTTPS, GOPHEWrangler, TELNET, DICT, FILE及LDAP等左券。curl帮助HTTPS认证,况兼帮忙 HTTP的POST、PUT等措施, FTP上传, kerberos认证, HTTP上传,代理服务器,cookies,客商名/密码认证, 下载文件断点续传,上载文件断点续传, http代理服务器管道( proxy tunneling卡塔尔国,还扶植IPv6,socks5代理服务器,通过http代理服务器上传文件到FTP服务器等,功能特别强硬
语法:
curl [options] [URL...]

选项:
-A/--user-agent

(四卡塔 尔(阿拉伯语:قطر‎CentOS 6情状下源码编译安装httpd-2.4(方法二)

  • 措施一只在编写翻译安装进度与措施一不等,别的装置前希图干活和设置后的布署都与艺术黄金时代黄金年代律

  • 措施二编写翻译进程:三回性编写翻译httpd及其看重的apr, apr-util

//将apr, apr-util的源码目录复制到httpd源码的srclib子目录下,注意需要重命名
cd /usr/local/src/
cp -r apr-1.6.2/ httpd-2.4.27/srclib/apr
cp -r apr-util-1.6.0/ httpd-2.4.27/srclib/apr-util

//执行configure脚本时不需再指定apr和apr-util的安装路径,代替以--with-included-apr
cd httpd-2.4.27/
./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
make -j 4 && make install

6、定义站点主页面

私下认可是找index.html文件最为主页得,也可校订把以下代码参与texe.conf配置文件就可

DirectoryIndex index.php 
# 值可以是多个。找步到第一个找第二个

elinks工具:

语法:
elinks [OPTION]... [URL]...
选项:
-dump: 非交互作用式模式,将UPAJEROL的开始和结果输出至典型输出
-source:打字与印刷源码

7、基于IP的访问调整:

1、conf结尾的文书只好特定IP技能访问(如只允许192.168.43.67卡塔尔

<FilesMatch ". .(conf|ini)$">
<RequireAny>                                                                                                                  
Require all denied ##拒绝所有
require ip 192.168.43.67 ##只允许
</RequireAny>
</FilesMatch>

2、重启服务

备注:

增加那项

options indexes

证实借使其一网址主页面访谈不了就呈现目录下全部文件列表

也可节制目录只对特定顾客访谈

<location /admin> ##URL路径
<RequireAny>
Require all denied
require ip 192.168.31.6
</RequireAny>
</location>

mod_deflate(压缩)模块

使用mod_deflate模块压缩页面优化传输速度
适用项景:

(1) 节约带宽,额外消耗CPU;同一时间,大概有个别较老浏览器不协助

(2) 压缩适于压缩的财富,举个例子文本文件

布置文件写法:
LoadModule deflate_module modules/mod_deflate.so #加载模块
SetOutputFilter DEFLATE #启航减削成效
# Restrict compression to these MIME types #援救压缩的文件格式
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css

调压缩比:
Level of compression (Highest 9 - Lowest 1)
DeflateCompressionLevel 9

消释特定旧版本的浏览器,不扶持压缩
Netscape 4.x 只压缩text/html
BrowserMatch ^Mozilla/4 gzip-only-text/html
Netscape 4.06-08五个本子 不减价扣
BrowserMatch ^Mozilla/4.0[678] no-gzip
Internet Explorer标记本身为“Mozilla / 4”,但实际是能够管理乞请的滑坡。假如客商代理首部相称字符串 “MSIE”(“B”为单词边界”卡塔尔,就倒闭以前定义的限量
BrowserMatch bMSI[E] !no-gzip !gzip-onlytext/html

8、自定义日志格式

https

https:http over ssl

日记类型:

拜谒日志
谬误日志

SSL会话的简化过程

(1) 客商端发送可供选用的加密方法,并向服务器需要证书

(2) 服务器端发送证书以致选定的加密方法给客户端

(3) 顾客端获得证书并拓宽证件验证 假如信赖给其发证书的CA
​ (a) 验证证书来源的合法性;用CA的公钥解密证书上数字签字
​ (b) 验证证书的原委的合法性:完整性验证
​ (c) 检核实明的有效期限
​ (d) 检考验明是还是不是被裁撤
​ (e) 证书中具有者的名字,与会见的靶子主机要意气风发律

(4) 顾客端生成临时会话密钥(对称密钥卡塔 尔(英语:State of Qatar),并应用劳务器端的公钥加密此数额发送给服务器,完结密钥沟通

(5) 服务用此密钥加密顾客乞请的能源,响应给顾客端
在意:SSL是依照IP地址达成,单IP的主机仅能够利用叁个https设想主机

错误日志:

路径:ErrorLog logs/error_log(那是相对路径基于/etc/httpd/卡塔尔国

推荐介绍设置为:LogLevel warn(等级,从警告品级起先记录卡塔尔

LogLevel 可选值:

debug, info, notice, warn,error

crit, alert, emerg

备考:最以后重要越高

https实现

(1) 为服务器申请数字证书
测验:通过私建CA发证书
​ (a) 创制私有CA
​ (b) 在服务器创造证书签定须求
​ (c) CA签证

(2) 配置httpd支持使用ssl,及应用的注解
yum -y install mod_ssl
铺排文件:/etc/httpd/conf.d/ssl.conf
​ DocumentRoot #主站点目录,暗许会从httpd主配置文件全局设定获取
​ ServerName
​ SSLCertificateFile
​ SSLCertificateKeyFile

(3) 测验基于https访问相应的主机 openssl s_client [-connect host:port] [-cert filename] [CApath directory] [-CAfile filename]

实验:实现HTTPS,HSTS
豆蔻梢头、实验安插:
采纳三台设想机,朝气蓬勃台提供DNS服务和CA,一台提供httpd服务,生机勃勃台验证顾客端
二、部署DNS服务:
在率先台服务器安装XIND达成DNS服务
编辑主配置文件,允许验证顾客端机器访谈查询

[root@CentOS6 ~]#vim /etc/named.conf
options {
        listen-on port 53 { localhost; };
        #设置本机所有IP都对53端口监听
        allow-query     { 172.18.45.7; };
        #允许验证客户端查询本机的DNS服务,只修改必要项即可
};

在区域布局文件中加多要深入分析的域

[root@CentOS6 ~]#vim /etc/named.rfc1912.zones 
zone "huxiaoqi.com" IN {
        type master;
        file "huxiaoqi.com.zone";
};

布局深入深入分析库文件:

[root@CentOS6 ~]#vim /var/named/huxiaoqi.com.zone
$TTL 86400      ; 1 day
@   IN   SOA    dns1.huxiaoqi.com. rname.invalid. (
                                1          ; serial
                                86400      ; refresh (1 day)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                10800      ; minimum (3 hours)
                                )
                        NS      dns1.huxiaoqi.com.
dns1                    A       172.18.45.6
www                     A       172.18.45.61
#添加A记录,将域名为www.huxiaoqi.com的IP地址解析为提供httpd服务的服务器IP地址:172.18.45.61

将表达客商端机器的DNS指向DNS服务器172.18.45.6

[root@CentOS7 ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0 
#DNS1=172.18.0.1
DNS2=172.18.45.6
#注意:如果该机器之前已经设置了DNS服务器,那么需要注释掉之前配置的DNS服务器,否则系统默认使用第一个DNS服务器去解析FQDN,如果第一台DNS服务器不能解析该FQDN系统也不会去调用另外一台DNS服务器,除非第一台DNS服务器宕机系统才会主动去调用DNS2.

三、搭建CA颁发证书:
(生龙活虎卡塔尔创制所急需文件
touch /etc/pki/CA/index.txt 生成证书索引数据库文件
echo 01 > /etc/pki/CA/serial 钦定第一个发布证书的行列号

(二卡塔尔CA自签证书

  1. 生成私钥
    cd /etc/pki/CA/
    (umask 066; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

    [root@CentOS6 CA]#(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
    Generating RSA private key, 2048 bit long modulus
    ...........................   
    e is 65537 (0x10001)
    # -out /etc/pki/CA/private/cakey.pem 必须按照配置文件指定目录以及文件名 
    
  2. 生成自签字证书
    openssl req -new -x509 –key
    /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem

    [root@CentOS6 CA]#openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 7300
      -key /etc/pki/CA/private/cakey.pem私钥位置
      -out /etc/pki/CA/cacert.pem自签名证书的位置以及文件名
      -req -new: 生成新证书签署请求 
      -x509: 专用于CA生成自签证书 
      -key: 生成请求时用到的私钥文件 
      -days n:证书的有效期限 
      -out /PATH/TO/SOMECERTFILE: 证书的保存路径
    

(三卡塔 尔(英语:State of Qatar)颁发证书

  1. 在急需利用证书的主机生成证书必要给web服务器生成私钥
    (umask 066; openssl genrsa -out /etc/pki/tls/private/test.key 2048)

    [root@CentOS7 certs]#(umask 066;openssl genrsa -out /etc/pki/tls/private/app.key 2048)
    -out /etc/pki/CA/private/app.key #指定生成私钥位置、文件名
    
  2. 使用私钥生成证书申请文件
    openssl req -new -key /etc/pki/tls/private/test.key -days 365 -out etc/pki/tls/test.csr

    [root@CentOS7 tls]#openssl req -new -key /etc/pki/tls/private/app.key -days 365 -out /etc/pki/tls/app.csr
    -key /etc/pki/tls/private/app.key   #自己的私钥
    -out /etc/pki/tls/app.csr           #申请书的位置以及文件名
    
  3. 将注明诉求文件传输给CA

  4. CA签署证书,并将证书颁发给诉求者
    openssl ca -in /tmp/test.csr –out /etc/pki/CA/certs/test.crt -days 365

    [root@CentOS6 CA]#openssl ca -in /etc/pki/CA/app.csr -out /etc/pki/CA/certs/app.crt
    -out /etc/pki/CA/certs/app.crt 生成证书的文件名以及路径
    

    四、配置httpd帮忙使用ssl,及选拔的申明
    设置httpd,然后准备一个测验的私下认可页面,开启服务:

    [root@Centos6 ~]#vim /var/www/html/index.html 
    hello,world
    hahahahahahaha
    

    采用浏览器访问效果如下:
    图片 31

配置ssl:
率先安装httpd的ssl模块:yum -y install mod_ssl
下一场编辑ssl配置文件:/etc/httpd/conf.d/ssl.conf
此处须要粮草先行有备无患多个公文,CA的自签署证书、httpd服务器的私钥以致httpd服务的阐明,在ssl的布局文件中指明那多少个公文的所在地点,为了方便管理提议将那多少个文件存放在联合签字,比方直接在/etc/httpd/conf.d,目录下创办二个ssl目录寄放那八个公文。

[root@Centos6 ssl]#tree
.
├── app.crt
├── app.key
└── cacert.pem

编辑/etc/httpd/conf.d/ssl.conf 文件:

[root@Centos6 ~]#vim /etc/httpd/conf.d/ssl.conf 
SSLCertificateFile /etc/httpd/conf.d/ssl/app.crt
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/app.key
SSLCACertificateFile /etc/httpd/conf.d/ssl/cacert.pem
#取消注释这三项并指明对应文件的对应位置

https在ssl.conf中默确定义监听443端口

[root@Centos6 ssl]#ss -tnl
State    Recv-Q Send-Q  Local Address:Port Peer Address:Port 
LISTEN   0      128              :::80            :::*     
LISTEN   0      128              :::443           :::*     
#端口开启说明配置没有错误

重启httpd服务
再也行使浏览器采访加密方式的httpd服务职能如下:
图片 32

五、在浏览器中程导弹入证书信赖
证件导入受信未来的浏览效果:
图片 33

由来就足以说httpd服务完成了https,可是访问时须要顾客手动输入https属性,无法自动跳转。
六、实现HSTS:
在/etc/httpd/conf.d/目录下创设独立的hsts配置文件并编写制定:

[root@Centos6 ~]#vim /etc/httpd/conf.d/hsts.conf
Header always set Strict-Transport-Security "maxage=15768000"
RewriteEngine on 
RewriteRule ^(/.*)$  https://%{HTTP_HOST}$1 [redirect=301]

编辑完毕之后,重读配置文件,在次访谈直接输入网站就会兑现https的机动跳转了

访谈日志

1、定义日志格式:

LogFormat "%h %l %u %{%Y-%m-%d %H:%M:%S}t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" testlog

备注:依照条件急需来定义

2、使用日志格式:

CustomLog "logs/access_log" testlog

参考扶持:

man 3 strftime

http重定向https

将http恳求转载至https的UTiguanL
重定向
Redirect [status] URL-path URL
status状态:
Permanent(永世跳转卡塔尔国:Returns a permanent redirect status (301) indicating that the resource has moved permanently
Temp(有的时候跳转卡塔 尔(英语:State of Qatar):Returns a temporary redirect status (302). This is the default
示例:
Redirect temp / #将原有的网址根目录跳转到加密的会见页面
这种跳转的秘技比较轻易,然而性能还应该有优化空间。利用这种跳转情势,客商访谈未加密页面包车型大巴时,首先服务器会回到给客户端一个音信,告诉客商端要访谈的页面已经跳转,并重返跳转之处。然后客户端再向跳转的页面发送访谈诉求。那样客商每一趟访谈都会另行以上步骤,影响作用。HSTS技术则能够有效优化此步骤。

9、设定暗许字符集

AddDefaultCharset UTF-8
中文字符集:GBK, GB2312, GB18030

HSTS

HSTS:HTTP Strict Transport Security
劳动器端配置援救HSTS后,会在给浏览器再次来到的HTTP首部中指导HSTS字段。浏览器获取到该消息后,会将具备HTTP访谈央浼在里面做307跳转到HTTPS。而无需任何互联网进度,可是该客商率先次访谈该网址时仍旧索要通过事先的千头万绪步骤。

HSTS preload list :
是Chrome浏览器中的HSTS预载入列表,在该列表中的网站,使用Chrome浏览器访谈时,会自动转换来HTTPS。Firefox、Safari、 Edge浏览器也会接收这些列表
实现HSTS示例:

vim /etc/httpd/conf/httpd.conf 
Header always set Strict-Transport-Security "maxage=15768000" 
RewriteEngine on 
RewriteRule ^(/.*)$  https://%{HTTP_HOST}$1 [redirect=301]

10、定义路线小名

情趣是说:

当客户访谈192.168.43.57/data目录时,现身的数码不在website/data目录下,其实是在/website/app/stud目录下

完毕情势:

Alias /data  /app/stud

备注:别忘了授权文件夹

<Directory "/app/stud">
Require all granted
</Directory>

重启服务

httpd自带的工具程序

httpd自带的工具程序
htpasswd:basic认证基于文件落到实处时,用到的账号密码文件生成工具

apachectl:httpd自带的劳动调控脚本,扶持start和stop

apxs:httpd-devel包提供,增添httpd使用第三方模块工具

rotatelogs:日志滚动工具
access.log --> access.log, access.1.log --> access.log, acccess.1.log, access.2.log

suexec:访谈一些有极其权限配置的能源时,有的时候切换至指 定顾客身份运转

11、实现身份验证

表明:唯有经过验证的顾客本领访谈有个别目录

httpd的压力测验工具

httpd的压力测量试验工具
ab, webbench, http_load, seige
Jmeter 开源
Loadrunner 商业,有有关说明
tcpcopy:腾讯网,复制坐蓐情形中的真实哀求,并将之保存
ab [OPTIONS] URL 来自httpd-tools
-n:总央求数
-c:模拟的并行数
-k:以长久连接方式测量检验
ulimit –n # 调解能开采的文本数

证实方法二种:

basic:明文
digest:音信摘要认证,包容性差

安全域:

亟需顾客认证后方能访谈的门径;应该经过名称对其张开标记,以便于告知客户认证的案由

顾客的账号和密码

伪造账号:仅用于访谈某服务时用到的验证标记

积累:文本文件,SQL数据库,ldap目录存款和储蓄,nis等

备考:用编造客商来访谈特定的目录,虚构账号能够停放文件里或数据Curry

方法一

证实:我们本着admin目录来探访

1、纠正配置文件:

vim /etc/httpd/conf.d/test.conf

<Directory /data/website/admin>
AuthType Basic ##验证方式
AuthName "Secure login" ##加的一段话,只要经过验证的用户才能访问
AuthUserFile "/etc/httpd/conf.d/.htpasswd" ##存放位置加‘.’是隐藏改目录,要是目录不存在,就创建出来
Require user bob  ##希望所访问的用户                                                                                                 
</Directory>

2、创制顾客

htpasswd -c /etc/httpd/conf.d/.htpasswd alice
htpasswd   /etc/httpd/conf.d/.htpasswd bob
htpasswd   /etc/httpd/conf.d/.htpasswd jack

备考:第一遍创立客户必需加“-c”之后就不供给加了

3、重启服务

方法二

1、在要安装权限的目录下创办三个文书寄放验证音讯

vim /data/website/admin/.htaccess

AuthType Basic
AuthName "Secure login"
AuthUserFile "/etc/httpd/conf.d/.htpasswd"
Require user bob 

2、编辑配置文件

vim /etc/httpd/conf.d/test.conf

<Directory /data/website/admin>
AllowOverride authconfig #允许覆盖                                                                                                  
</Directory>

3、重启服务

借助组验证

示例:
<Directory "/www/htdocs/admin">
 Options None
 AllowOverride None
 AuthType Basic
 AuthName "Administator private"
 AuthUserFile "/etc/httpd/conf.d/.htpasswd"
 AuthGroupFile "/etc/httpd/conf.d/.htgroup"
 Require group g1
</Directory>

成立客商

和地方创设方法意气风发致

给顾客分组

图片 34

备注:

在/etc/httpd/conf.d目录下开创

ctrl D结束

备注:

长间隔客户端和客商验证的决定

Satisfy ALL|Any

ALL 客商机IP和客商验证都急需经过才方可

Any客商机IP和客户验证,有七个满意就能够

12、ServerSignature On | Off | EMail

说明:

当客户央求的网页并海市蜃楼时,服务器将发出错误文书档案,缺省状态下是因为展开了 ServerSignature选项,错误文书档案的末尾黄金时代行将含有服务器的名字、Apache的本子等新闻

若果不对外体现那些音讯,就能够将这些参数设置为Off

设置为Email,将显示ServerAdmin 的Email提示

13、status页面

说明:

用来剖断服务器的气象

依赖于于那个模块

httpd -M |grep status_module

1、编辑配置文件

<Location /status>
SetHandler server-status
Order allow,deny
Allow from 172.18
</Location>

2、重启服务

3、测试

192.168.43.57/status

14、设想主机

表明:在一台物理机上落实两个网址

有三种达成方式:

依据ip:为各样设想主机计划最少贰个ip地址

据书上说port:为种种虚构主机使用起码三个单独的port

据书上说FQDN:为每一种设想主机使用最少一个FQDN

备考:若是有三台虚构主机分别是“www.a.com、www.b.com、www.c.com” 分别在web1、web2、web3文书夹中

准备

1卡塔 尔(英语:State of Qatar)首先创设四个文本夹

mkdir /data/web{1,2,3}

2卡塔尔创设多个主页

echo /data/web1 > /data/web1/index.html
echo /data/web2 > /data/web2/index.html
echo /data/web3 > /data/web3/index.html

依照端口完结

分别对应8001、8002、8003

1、编辑配置文件

vim /etc/httpd/conf.d/texe.conf



listen 8001  #端口
listen 8002  #
listen 8003  #
<virtualhost *:8001> #定义
documentroot /data/web1 #主站点
servername www.a.com 
<directory /data/web1> #定义授权
require all granted # 都授权
</directory>
</virtualhost>

<virtualhost *:8002>
documentroot /data/web2
servername www.b.com
<directory /data/web2>
require all granted
</directory>
</virtualhost>

<virtualhost *:8003>                                                                                                          
documentroot /data/web3
servername www.c.com
<directory /data/web3>
require all granted
</directory>
</virtualhost>

2、重启服务

3、测试

图片 35

依靠IP地址完毕

1、在物理机上加码五个IP地址

ip a a 192.168.43.101/24 dev ens33
ip a a 192.168.43.102/24 dev ens33
ip a a 192.168.43.103/24 dev ens33

2、改良配置文件

vim /etc/httpd/conf.d/texe.conf



<virtualhost 192.168.31.101:80>
documentroot /data/web1
servername www.a.com
<directory /data/web1>
require all granted
</directory>
</virtualhost>

<virtualhost 192.168.31.102:80>
documentroot /data/web2
servername www.b.com
<directory /data/web2>
require all granted
</directory>
</virtualhost>

<virtualhost 192.168.31.103:80>
documentroot /data/web3
servername www.c.com
<directory /data/web3>
require all granted
</directory>
</virtualhost>

3、重启服务并测量试验

图片 36

基于FQDN(主机头)实现

表明:想要主机名访问必得利用DNS拆解剖判或hosts文件分析

在这里咱们写到hosts文件中

vim /etc/hosts

图片 37

1、编辑配置文件

vim /etc/httpd/conf.d/texe.conf



<virtualhost *:80>
documentroot /data/web2
servername www.b.com
<directory /data/web2>
require all granted
</directory>
ErrorLog "logs/b_error_log" #错误日志分开
CustomLog "logs/b_access_log" combined #访问日志分开
</virtualhost>

<virtualhost *:80>
documentroot /data/web3
servername www.c.com
<directory /data/web3>
require all granted
</directory>
ErrorLog "logs/c_error_log"
CustomLog "logs/c_access_log" combined
</virtualhost>

<virtualhost *:80>
documentroot /data/web1
servername www.a.com 
ServerAlias  a.com *.a.com #别名也就是泛域名
<directory /data/web1>
require all granted
</directory>
ErrorLog "logs/a_error_log"
CustomLog "logs/a_access_log" combined
</virtualhost>

2、重启服务并测量检验

图片 38

备注:如若用IP地址访谈,那么配置文件中何人靠前何人便是私下认可地址

15、达成https加密访谈

证实:假设你的网址涉及到“¥”那么就亟须加https加密访谈

生育中是向CA机构花钱申请的,在那间大家团结搭建一个CA服务器,我们用67当CA服务器

1、CA服务器端(67卡塔 尔(英语:State of Qatar)安装yum包

yum install mod_ssl

2、httpd服务器申请证书

cd /etc/pki/CA

1卡塔 尔(阿拉伯语:قطر‎生成私钥

(umask 077;openssl genrsa -out private/cakey.pem 2048)

2)自签名

openssl req -new -x509 -key private/cakey.pem -out cacert.pem

3卡塔 尔(英语:State of Qatar)CA主机创立目录

touch index.txt
echo 01 > serial
#存放序列号

4卡塔尔国在57HTTP服务器主机创设目录来存放证书与私钥并生育自个儿的私钥

cd /etc/httpd/conf.d/
# 在这个目录下创建存放目录
mkdir ssl

[root@centos7_05 ssl]# (umask 077;openssl genrsa -out heepd.key 2048)

5卡塔尔国57HTTP主机生成央求

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

图片 39

6卡塔尔国CA服务器给HTTP颁发证书

备考:把57主机生成的提请文件scp传送给CA主机

scp httpd.csr 192.168.43.67:/etc/pki/CA/

CA给HTTP签名

openssl ca -in httpd.csr -out certs/httpd.csr
#颁发证书

7卡塔 尔(英语:State of Qatar)把HTTP的证件和CA的证件传送到(57卡塔尔国HTTP服务器

scp certs/httpd.csr cacert.pem 192.168.43.57:/etc/httpd/conf.d/ssl/

8卡塔 尔(英语:State of Qatar)更改ssl.cof配置文件

[root@centos7_05 conf.d]# vim ssl.conf

图片 40

9卡塔尔国重启服务测量试验

图片 41

图片 42

图片 43

16、http跳转到https

表明:当大家输入 “www.a.com” 自动跳转到””

1、纠正配置文件

[root@centos7_05 conf.d]# vim texe.conf



RewriteEngine on  #启动这个引擎
rewritecond %{SERVER_PORT} !^443 #条件跳转--如果不是443的时候我就进行跳转
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301] #这是跳转规则

2、重启测验

图片 44

17、使用mod_deflate模块压缩页面优化传输速度

适用处景:

(1) 节约带宽,额外消耗CPU;同不常间,也可能有一点较老浏览器不支持

(2) 压缩适于压缩的能源,比如文本文件

1、编辑配置文件

vim /etc/httpd/conf.d/texe2.conf



AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
DeflateCompressionLevel 9
SetOutputFilter DEFLATE

2、重启测量试验

http合同常用的状态码

200: 成功,要求数据通过响应报文的entity-body部分发送;OK

301: 须求的UEscortL指向的能源已经被删去;但在响应报文中通过首部Location指明了财富以后所处的新职责;Moved Permanently

302: 响应报文Location指明能源不常新任务 Moved Temporarily

304: 客户端发出了条件式央求,但服务器上的能源未曾发生退换,则经过响应此响应状态码布告顾客端;Not Modified

401: 必要输入账号和密码验证方能访问能源;Unauthorized

403: 乞求被禁止;Forbidden

404: 服务器不可能找到顾客端须要的能源;Not Found

500: 服务器内部错误;Internal Server Error

502: 代理服务器从后端服务器收到了一条伪响应,如不可能连接到网关;Bad Gateway

503 – 服务不可用,有的时候服务器维护或过载,服务器不能管理乞求

504 – 网关超时

甘休语:后续更加雅观好

本文由pc28.am发布于pc28.am神测网,转载请注明出处:常用配置

上一篇:计算机网络,网络七层协议之物理层 下一篇:没有了
猜你喜欢
热门排行
精彩图文
  • rm命令总计,要做手術
    rm命令总计,要做手術
     功能说明:删除文件、目录 测试删除测试删除测试删除测试删除测试删除测试删除测试删除测试删除测试删除测试删除测试删除测试删除测试删除测试删
  • mv命令总结,Linux基础知识之文件管理命令
    mv命令总结,Linux基础知识之文件管理命令
    cp命令使用: Linux基础知识之文件管理命令(cp、mv、rm) 我们日常工作中对于文件的操作用到最多的几个我觉得应该是是复制、剪切、移动、重命名、删除这
  • windows虚构内部存款和储蓄器机制,有相当多图
    windows虚构内部存款和储蓄器机制,有相当多图
    在windows系统中个,每一种进程具有协和独自的设想地址空间(Virtual AddressSpace)。那大器晚成地点空间的轻重与Computer硬件、操作系统以至应用程序都有涉及。
  • 车辆工程
    车辆工程
  • CentOS6.4 安装MySQL
    CentOS6.4 安装MySQL
    首先我们通过命令yum list | grep mysql看看MySQL是否被安装过 Linux下使用yum安装MySQL,以及启动、登录和远程访问MySQL数据库。 [root@ecs-3c46 /]# yum list | grep mysql