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

marksugar
2015-11-03 / 3 评论 / 4,515 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2015年11月03日,已超过2176天没有更新,若内容或图片失效,请留言反馈。

<p>
1,crul
Curl命令是基于URL语法在命令行内下工作的文件传输工具,支持FTP,FPTS,HTTP,HTTPS,GOPHER,TELNET,LDAP</p><p> 通常我们使用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"</p><p> [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"</p><p> 模拟跳转:
[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 ~]#</p><p> 响应首部信息:
[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</p><p> [root@www ~]#</p><p>  </p><p> curl的选项非常多,部分选项如下:
-basic 使用httpd基本认证
--cacert CA证书
--compressed 要求返回是压缩的格式</p><p> elinks
然而除了curl之外还有一个命令行浏览网站的elinks,并且支持http,https等
首先需要安装:
[root@www ~]# yum -y install elinks
[root@www ~]# elinks http://www.linuxea.com </p><p>  </p><p>  </p><p> 可以将内容标准输入elinks -dump
[root@www ~]# elinks -dump http://www.linuxea.com </p><p>  </p><p> 2,mod_deflate模块压缩页面优化传输速度
适用场景:
(1)节约带宽,额外消耗CPU时钟周期:同时,可能较老浏览器不支持
(2)压缩适于压缩较大的资源
文本格式压缩
SetOutputFilter DEFLATE</p><p> # 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</p><p> # Level of compression (Highest 9 - Lowest 1)
DeflateCompressionLevel 9</p><p> # Netscape 4.x has some problems
BrowserMatch ^Mozilla/4 gzip-only-text/html  模式匹配</p><p> # Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4.0[678] no-gzip      不压缩gzip</p><p> #MSIE masquerades as Netscape.but it is fine
BrowserMatch bMSI[E] !no-gzip !gzip-only-text/html </p><p> 这个可放在虚拟主机中,也可以放全局文件中</p><p> 测试如下:
[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</p><p> [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</p><p>
3,https
https监听在443端口上,基于ssl
ssl:是基于v3版, tls基于v1版本</p><p>
ssl回话的简化过程
(1)客户端发送可选择的加密方式,并向服务器请求证书
(2)服务器端发送证书以及选定的加密方式给客户端
(3)证书验证
      如果信任给其发证书的CA
       (a)验证证书的合法性->用CA的公钥解密证书的签名
       (b)解密完成,验证证书内容的合法性:内容完整性验证
       (c)检查证书的有效期限:
       (d)检查证书是否被吊销
        (e) 证书中拥有者的名字与访问的目标主机要一致
(4)客户端生成临时会话秘钥(对称秘钥),并使用服务器端的公钥加密</p><p>
配置httpd支持https:
(1)为服务器申请数字证书
    处于测试的目的,私有ca即可,如下:
      (a)创建私有CA
      (b)在服务器创建证书签署请求
      (c)CA签证</p><p> (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</p><p> (3)测试基于https访问响应的主机</p><p> 注意:SSL是基于IP地址创建的!单IP主机,只能使用一个https主机!</p><p>
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 ,压力测试工具</p><p> 5,压力测试工具
ab:httpd自带的ab工具,并不是很好用,他是一个模拟测试工具,并不是很好的反应实际测试情况,如还有:webbench,http_load!
专业的测试工具有:jmeter,这个有专门的测试专员来做,以及loadrunner,这个是具备认证的人员使用。另外一个工具可以还原真实场景
网易开发的一款强大的测试工具:tcpcopy,允许复制真实环境,并且可以重放</p><p> 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 </p><p> Server Software:        Tengine/2.1.0
Server Hostname:        www.xxxxxx.com
Server Port:            80</p><p> 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字节,带宽的大小</p><p> 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 </p><p> 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]#</p><p> ab的模拟效果并不是互联网模拟测试效果。</p><p> </p>

0

评论 (3)

取消
  1. 头像
    essayforme
    Windows 8.1 · Google Chrome

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

    回复
  2. 头像
    writeessay
    Windows 10 · Google Chrome

    Fantastic forum posts. Regards.

    回复
  3. 头像
    online canadian pharmacy
    Windows 10 · Google Chrome

    Seriously a good deal of excellent info.

    回复