httpd2.2/ab/crul/https配置(三)


1,crul
Curl命令是基于URL语法在命令行内下工作的文件传输工具,支持FTP,FPTS,HTTP,HTTPS,GOPHER,TELNET,LDAP

通常我们使用curl查看会在日志中出现crul/7.19.7如此类的字段,如果不想看到,则可以模拟,如下:
[root@www ~]# curl http://192.168.233.138
www.1.com
[root@www ~]# tail /var/log/httpd/access_log
192.168.233.138 - - [02/Nov/2015:05:21:26 -0800] "GET / HTTP/1.1" 200 10 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.15.3 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"

[root@www ~]# curl -A "chrome 40" http://192.168.233.138
www.1.com
[root@www ~]# tail /var/log/httpd/access_log
192.168.233.138 - - [02/Nov/2015:05:22:24 -0800] "GET / HTTP/1.1" 200 10 "-" "chrome 40"

模拟跳转:
[root@www ~]# curl -A "chrome 40" -e "http://www.linuxea.com" http://192.168.233.138
www.1.com
[root@www ~]# tail /var/log/httpd/access_log
192.168.233.138 - - [02/Nov/2015:05:25:41 -0800] "GET / HTTP/1.1" 200 10 "http://www.linuxea.com" "chrome 40"
[root@www ~]#

响应首部信息:
[root@www ~]# curl -I http://www.linuxea.com
HTTP/1.1 200 OK
Server: Tengine/2.0.3
Date: Mon, 02 Nov 2015 13:28:21 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.3.3
X-Pingback: http://www.linuxea.com/index.php/action/xmlrpc
Cache-Control: max-age=0
Expires: Mon, 02 Nov 2015 13:28:21 GMT

[root@www ~]#

 

curl的选项非常多,部分选项如下:
-basic 使用httpd基本认证
--cacert CA证书
--compressed 要求返回是压缩的格式

elinks
然而除了curl之外还有一个命令行浏览网站的elinks,并且支持http,https等
首先需要安装:
[root@www ~]# yum -y install elinks
[root@www ~]# elinks http://www.linuxea.com

 

 

可以将内容标准输入elinks -dump
[root@www ~]# elinks -dump http://www.linuxea.com

 

2,mod_deflate模块压缩页面优化传输速度
适用场景:
(1)节约带宽,额外消耗CPU时钟周期:同时,可能较老浏览器不支持
(2)压缩适于压缩较大的资源
文本格式压缩
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 has some problems
BrowserMatch ^Mozilla/4 gzip-only-text/html  模式匹配

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip      不压缩gzip

#MSIE masquerades as Netscape.but it is fine
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html 

这个可放在虚拟主机中,也可以放全局文件中

测试如下:
[root@www ~]# curl --compress -I http://www.1.com/fstab.txt
HTTP/1.1 200 OK
Date: Mon, 02 Nov 2015 14:15:12 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Mon, 02 Nov 2015 14:14:52 GMT
ETag: "ff098-325-5238f669899f3"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 379
Connection: close
Content-Type: text/plain; charset=UTF-8

[root@www ~]# curl -I http://www.1.com/fstab.txt
HTTP/1.1 200 OK
Date: Mon, 02 Nov 2015 14:15:24 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Mon, 02 Nov 2015 14:14:52 GMT
ETag: "ff098-325-5238f669899f3"
Accept-Ranges: bytes
Content-Length: 805
Vary: Accept-Encoding
Connection: close
Content-Type: text/plain; charset=UTF-8


3,https
https监听在443端口上,基于ssl
ssl:是基于v3版, tls基于v1版本


ssl回话的简化过程
(1)客户端发送可选择的加密方式,并向服务器请求证书
(2)服务器端发送证书以及选定的加密方式给客户端
(3)证书验证
      如果信任给其发证书的CA
       (a)验证证书的合法性->用CA的公钥解密证书的签名
       (b)解密完成,验证证书内容的合法性:内容完整性验证
       (c)检查证书的有效期限:
       (d)检查证书是否被吊销
        (e) 证书中拥有者的名字与访问的目标主机要一致
(4)客户端生成临时会话秘钥(对称秘钥),并使用服务器端的公钥加密


配置httpd支持https:
(1)为服务器申请数字证书
    处于测试的目的,私有ca即可,如下:
      (a)创建私有CA
      (b)在服务器创建证书签署请求
      (c)CA签证

(2)配置http支持使用ssl,及使用的证书
  yum -y install mod_ssl
  配置文件:/etc/httpd/conf.d/ssl.conf
   基于IP创建
 <VirtualHost *:443>
 DocumentRoot "/vhost/1.com/htdocs"
 ServerName www.1.com:443
 SSLCertificateFile /etc/httpd/ssl/httpd.crt
 SSLCertificateKeyFile /etc/httpd/ssl/httpd.key

(3)测试基于https访问响应的主机

注意:SSL是基于IP地址创建的!单IP主机,只能使用一个https主机!


4,httpd自带的工具程序
htpasswd:基于basic认证基于文件实现时,用到的账号密码文件生成工具
apachectl:apache启动停止脚本,支持start,stop
apxs:httpd-devel包提供,扩展httpd使用第三方模块的工具程序
rotatelogs:日志滚动工具,access.log,access.1.log,access.2.log
suexec:当http启动后root是主控进程,子进程是普通进程运行,在httpd.conf中的user和group有所指明,在访问某些资源有特殊权限配置的资源时,临时切换至指定用户运行
ab:全称apache benchmark ,压力测试工具

5,压力测试工具
ab:httpd自带的ab工具,并不是很好用,他是一个模拟测试工具,并不是很好的反应实际测试情况,如还有:webbench,http_load!
专业的测试工具有:jmeter,这个有专门的测试专员来做,以及loadrunner,这个是具备认证的人员使用。另外一个工具可以还原真实场景
网易开发的一款强大的测试工具:tcpcopy,允许复制真实环境,并且可以重放

ab的测试工具使用:
ab [OPTIONS] URL
  -n:总的请求数
  -c:模拟的并发数
  -k:
 本机到本机测试:
 我这里测试的网络的
 -n 请求数,-c 并发数
 [root@www htdocs]# ulimit -n 3000 #调节当前用户同时打开的文件数
 [root@www htdocs]# ab -n 1000 -c 100 http://www.xxxxxx.com/909.html

Server Software:        Tengine/2.1.0
Server Hostname:        www.xxxxxx.com
Server Port:            80

Document Path:          /909.html  页面
Document Length:        36089 bytes  大小
 
Concurrency Level:      10   并发节点
Time taken for tests:   39.740 seconds   时间
Complete requests:      89  发送的请求
Failed requests:        84  没完成的请求
   (Connect: 0, Receive: 0, Length: 84, Exceptions: 0)
Write errors:           0   错误的请求
Total transferred:      3458342 bytes  发送的字节
HTML transferred:       3432078 bytes  传送html量 
Requests per second:    2.24 [#/sec] (mean) 
Time per request:       4465.209 [ms] (mean) 平均秒数
Time per request:       446.521 [ms] (mean, across all concurrent requests) 单个请求平均时间
Transfer rate:          84.98 [Kbytes/sec] received K字节,带宽的大小

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       28  208 162.2    182     800
Processing:   400 3837 663.4   3967    5669  处理经由时长
Waiting:      199 1880 395.2   1871    2676  等待响应时长
Total:        432 4044 640.1   4167    6066 

Percentage of the requests served within a certain time (ms)
  50%   4164
  66%   4265
  75%   4317
  80%   4332
  90%   4479
  95%   4528
  98%   4726
  99%   6066
 100%   6066 (longest request)  %100请求的时长
[root@www htdocs]#

ab的模拟效果并不是互联网模拟测试效果。

1 分享

您可以选择一种方式赞助本站

支付宝扫码赞助

支付宝扫码赞助

日期: 2015-11-03分类: apache

标签: apache

发表评论

已有 3 条评论

加载中,请稍候...
  1. April 5th, 2018 at 05:27 pm

    This is really interesting, You are a very skilled blogger. I've joined your rss feed and look [...]

  2. April 12th, 2018 at 03:00 am

    Fantastic forum posts. Regards.

  3. February 14th, 2019 at 12:22 pm

    Seriously a good deal of excellent info.