httpd-2.2 15 curl命令 curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等协议。curl支持HTTPS认证,并且支持HTTP的POST、PUT等方法, FTP上传, kerberos认证,HTTP上传,代理服务器, COOKIEs, 用户名/密码认证, 下载文件断点续传,上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器,,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。 curl [options] [URL...] curl的常用选项: -A/--user-agent 设置用户代理发送给服务器 -basic 使用HTTP基本认证 --tcp-nodelay 使用TCP_NODELAY选项 -e/--referer 来源网址 --cacert CA证书 (SSL) --compressed 要求返回是压缩的格式 -H/--header 自定义首部信息传递给服务器 -I/--head 只显示响应报文首部信息 --limit-rate 设置传输速度 -u/--user 设置服务器的用户和密码 -0/--http1.0 使用HTTP 1.0 用法:curl [options] [URL...] 另一个工具:elinks elinks [OPTION]... [URL]... -dump: 不进入交互式模式,而直接将URL的内容输出至标准输出; 16 使用mod_deflate模块压缩页面优化传输速度 适用场景: (1) 节约带宽,额外消耗CPU;同时,可能有些较老浏览器不支持; (2) 压缩适于压缩的资源,例如文件文件; SetOutputFilter DEFLATE # mod_deflate configuration # 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 # MSIE masquerades as Netscape, but it is fine BrowserMatch MSI[E] !no-gzip !gzip-only-text/html 17、https http over ssl = https 443/tcp ssl: v3 tls: v1 https:// SSL会话的简化过程 (1) 客户端发送可供选择的加密方式,并向服务器请求证书; (2) 服务器端发送证书以及选定的加密方式给客户端; (3) 客户端取得证书并进行证书验正: 如果信任给其发证书的CA: (a) 验正证书来源的合法性;用CA的公钥解密证书上数字签名; (b) 验正证书的内容的合法性:完整性验正 (c) 检查证书的有效期限; (d) 检查证书是否被吊销; (e) 证书中拥有者的名字,与访问的目标主机要一致; (4) 客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换; (5) 服务用此密钥加密用户请求的资源,响应给客户端; 注意:SSL会话是基于IP地址创建;所以单IP的主机上,仅可以使用一个https虚拟主机; 回顾几个术语:PKI,CA,CRL,X.509 (v1, v2, v3) 配置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] 18、httpd自带的工具程序 htpasswd: basic认证基于文件实现时,用到的账号密码文件生成工具; apachectl:httpd自带的服务控制脚本,支持start, stop; apxs:由httpd-devel包提供的,扩展httpd使用第三方模块的工具; rotatelogs:日志滚动工具; access.log --> access.log, access.1.log access.log, access.1.log, access.2.log suexec: 访问某些有特殊权限配置的资源时,临时切换至指定用户运行; ab: apache benchmark 19、http压力测试工具 ab webbench http_load jmeter loadrunner tcpcopy ab [OPTIONS] URL -n: 总的请求数 -c:模拟的并发数 -k: 以持久连接模式测试 ulimit -n #: 调整当前用户所同时打开的文件数;