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

2023年 7月 15日 114.8k 0

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">http://www.linuxea.com</a>" "chrome 40"
[root@www ~]#

响应首部信息:

[root@www ~]# curl -I 127.0.0.1
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

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,httpshttps监听在443端口上,基于sslssl:是基于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 http://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,stopapxs:httpd-devel包提供,扩展httpd使用第三方模块的工具程序rotatelogs:日志滚动工具,access.log,access.1.log,access.2.logsuexec:当http启动后root是主控进程,子进程是普通进程运行,在httpd.conf中的user和group有所指明,在访问某些资源有特殊权限配置的资源时,临时切换至指定用户运行

ab

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: http://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] receivedK字节,带宽的大小


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的模拟效果并不是互联网模拟测试效果。

相关文章

LeaferJS 1.0 重磅发布:强悍的前端 Canvas 渲染引擎
10分钟搞定支持通配符的永久有效免费HTTPS证书
300 多个 Microsoft Excel 快捷方式
一步步配置基于kubeadmin的kubevip高可用
istio全链路传递cookie和header灰度
REST Web 服务版本控制

发布评论