Web相关工具
links URL
--dump
--source
links --source http://www.a.com
links --dump http://www.a.com
wget [option]... [URL]...
选项 | 说明 |
---|---|
-q | 静默模式 |
-c | 断点续传 |
-P | /path 保存在指定目录 |
-O | filename 保存为指定文件名,filename 为 – 时,发送至标准输出 |
--limit-rate= | 指定传输速率,单位K,M等 |
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...]
选项 | 说明 |
---|---|
-A/--user-agent <string> | 设置用户代理发送给服务器 |
-e/--referer <URL> | 来源网址 |
--cacert <file> | CA证书 (SSL) |
-k/--insecure | 允许忽略证书进行 SSL 连接 |
--compressed | 要求返回是压缩的格式 |
-H/--header <line> | 自定义首部信息传递给服务器 |
-i | 显示页面内容,包括报文首部信息 |
-I/--head | 只显示响应报文首部信息 |
-D/--dump-header <file> | 将url的header信息存放在指定文件中 |
--basic | 使用HTTP基本认证 |
-u/--user <user[:password]> | 设置服务器的用户和密码 |
-L | 如果有3xx响应码,重新发请求到新位置 |
-O | 使用URL中默认的文件名保存文件到本地 |
-o <file> | 将网络文件保存为指定的文件中 |
--limit-rate <rate> | 设置传输速度 |
-0/--http1.0 | 数字0,使用HTTP 1.0 |
-v/--verbose | 更详细 |
-C | 选项可对文件使用断点续传功能 |
-c/--cookie-jar <file name> | 将url中cookie存放在指定文件中 |
-x/--proxy <proxyhost[:port]> | 指定代理服务器地址 |
-X/--request <command> | 向服务器发送指定请求方法 |
-U/--proxy-user <user:password> | 代理服务器用户和密码 |
-T | 选项可将指定的本地文件上传到FTP服务器上 |
--data/-d | 方式指定使用POST方式传递数据 |
-b name=data | 从服务器响应set-cookie得到值,返回给服务器 |
elinks工具:
elinks [OPTION]... [URL]...
选项 | 说明 |
---|---|
-dump | 非交互式模式,将URL的内容输出至标准输出 |
-source | 打印源码 |
httpd自带的工具程序
- htpasswd:basic认证基于文件实现时,用到的账号密码文件生成工具
- apachectl:httpd自带的服务控制脚本,支持start和stop
- rotatelogs:日志滚动工具
access.log -->
access.log, access.1.log -->
access.log, acccess.1.log, access.2.log
httpd的压力测试工具
- ab
- webbench
- http_load
- seige
- Jmeter 开源
- Loadrunner 商业,有相关认证
- tcpcopy:网易,复制生产环境中的真实请求,并将之保存
ab [OPTIONS] URL
来自httpd-tools包
选项 | 说明 |
---|---|
-n | 总请求数 |
-c | 模拟的并行数 |
-k | 以持久连接模式测试 |
调整能打开的文件数
ulimit –n
APR
APR(Apache portable Run-time libraries,Apache可移植运行库) 主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数
随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用 APR而已。目前APR主要还是由Apache使用,由于APR的较好的移植性,因此一些需要进行移植的C程序也开始使用APR,开源项目比如用于服务器压力测试的Flood loader tester.
编译安装httpd-2.4
依赖于
apr-1.4+
,apr-util-1.4+
,[apr-iconv]
apr: apache portable runtime,解决跨平台实现
CentOS 6:默认:apr-1.3.9, apr-util-1.3.9
- 安装前准备开发包:
包组:Development Tools
相关包:pcre-devel,openssl-devel,expat-devel - 下载源代码并解压缩:
wget httpd-2.4.27.tar.bz2
wget apr-1.6.2.tar.bz2
wget apr-util-1.6.0.tar.bz2 - 安装apr-1.4+
cd apr-1.6.2
./configure --prefix=/app/apr
make && make install
- 安装apr-util-1.4+
cd ../apr-util-1.6.0
./configure --prefix=/app/apr-util --with-apr=/app/apr/
make -j 2 && make install
- 编译安装httpd-2.4
cd ../httpd-2.4.27
./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
make -j 4 && make install
练习
使用httpd-2.4实现
1、建立httpd服务,要求:
(1) 提供两个基于名称的虚拟主机:
www.a.com
页面文件目录为/web/vhosts/www1
错误日志为/var/log/httpd/www1/error_log
访问日志为/var/log/httpd/www1/access_log
www.b.com
页面文件目录为/web/vhosts/www2
错误日志为/var/log/httpd/www2/error_log
访问日志为/var/log/httpd/www2/access_log
(2) 通过www.a.com/server-status
输出其状态信息,且要求只允许提供账号的用户访问
(3) www.a.com
不允许192.168.1.0/24网络中的主机访问
2、为上面的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点
(1) 要求使用证书认证,证书中要求使用国家(CN),州(Beijing),城市(Beijing),组织为(wang)
(2) 设置部门为Ops, 主机名为www.b.com
虚拟主机
1、建立httpd服务器,要求提供两个基于名称的虚拟主机:
(1)www.X.com
,页面文件目录为/web/vhosts/x;错误日志为/var/log/httpd/x.err,访问日志为/var/log/httpd/x.access
(2)www.Y.com
,页面文件目录为/web/vhosts/y;错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/y.access
(3)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名
(4)通过www.X.com/server-status
输出httpd工作状态相关信息
2、为上面的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点
(1)要求使用证书认证,证书中要求使用的国家(CN)、州(Beijing)、城市(Beijing)和组织(MageEdu)
(2)设置部门为Ops,主机名为www.Y.com
,邮件为admin@Y.com