16、 https协议

       x509.3证书格式:
           证书格式的版本号
           证书序列号
           证书签名算法
           证书颁发者
           有效期
           持有者的名称
           持有者的公钥
           CA的ID
           持有者的ID
           其它扩展信息
               基本约束
               证书策略
               密钥的使用限制
           CA签名
       PKI: Public Key Infrastructure
           端实体(申请者)
           注册机构(RC)
           签证机构(CA)-->签证机构(CA)
           证书撤消列表(CRL)发布机构
           证书存取库
       SSL握手要完成的工作:
           交换协议版本号
           选择双方都支持的加密方式
           对两端实现身份验正
           密钥交换
       http: 文本协议,80/tcp
       https: 二进制格式的协议, 443/tcp
       SSL会话基于IP地址进行:不支持在基于FQDN的虚拟主机上实现
       客户端验正服务器证书时:
           日期检测:证书是否在有效期内
           证书颁发者的可信度;
           证书的签名检测;
           持有者的身份检测;(一般为服务器主机如 www.jungegelinux.com)
             
       httpd: 基于mod_ssl模块实现对ssl的支持
           (1) 准备好服务器的私钥和证书;
           (2) 安装mod_ssl模块
               # yum -y install mod_ssl
           (3) 配置/etc/httpd/conf.d/ssl.conf
               配置使用ssl的虚拟主机
                   ServerName  
                   DocumentRoot
               配置证书和私钥
                   SSLCertificatFile 证书文件
                   SSLCertificatKeyFile 密钥文件
           (4) 重启httpd服务
           (5) 测试

               # openssl s_client -connect IP:port -CAfile /path/to/CA_certificate_file

17、 服务器status页面

       

           服务器status页面
                   内生的status信息,且此信息可以通过web预以显示
           
                   配置文件系统路径访问属性
                       <Directory [~] "">
                       </Directory>
           
                       <File [~] "">
                       </File>
           
                    配置URL访问属性
                       <Location  [~] "">
                       </Location>
           
                       <LocationMatch "">
                       </LocationMatch>
           
                       http://www.jungegelinux.com/server-status
           
                   如果要配置其属性的URL能映射到某具体文件系统路径,建议使用<Directory>;
           
            处理器:是当文件被调用时,Apache内部表示形式;一般每种文件类型都有其隐式处理器;
                   显式的定义使用的处理器 SetHandler
           
                   <Location /URL>
                       SetHandler server-status
                   </Location>
           
                   定义访问控制机制
                       基于IP控制
                       基于用户控制
           
                       示例:
                           <Location /server-status>
                               SetHandler server-status
                               AuthType Basic
                               AuthName "Server Status"
                               AuthUserFile "/etc/httpd/conf/.htpasswd"
                               Require valid-user
                               Order deny,allow
                               Allow from all
                           </Location>

        httpd协议详解(三)_httpd协议详解三


18、 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的常用选项:
       -A/--user-agent <string> 设置用户代理发送给服务器
       -basic 使用HTTP基本验证
       --tcp-nodelay 使用TCP_NODELAY选项
       -e/--referer <URL> 来源网址
       --cacert <file> CA证书 (SSL)
       --compressed 要求返回是压缩的形势
       -H/--header <line>自定义头信息传递给服务器
       -I/--head 只显示响应报文首部信息
       --limit-rate <rate> 设置传输速度
       -u/--user <user[:password]>设置服务器的用户和密码
       -0/--http1.0 使用HTTP 1.0

    httpd协议详解(三)_httpd协议详解三 _02


19、使用mod_deflate模块压缩页面优化传输速度

        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 \bMSI[E] !no-gzip !gzip-only-text/html


20、 资源限定

           软限制:可以超出的限制,但仅超出一定时长;
           硬限制:绝对不能超出的限制
   
           ulimit
               -n [N]: 显示或限定能打开的最大的文件句柄数;

               -u [N]: 所能够运行的最多进程数;


            配置文件:/etc/security/limits.conf,扩展配置:/etc/security/limits.d/*.conf

         

#vim /etc/security/limits.conf


、        httpd协议详解(三)_httpd协议详解三 _03


21、 ab工具的使用初步

       -c: 模拟的并发数
       -n: 总请求数
            -c的值要小于等于-n的值
      其他工具  http_load, webbench, seige

      还有强大的tcp_copy工具


22、 httpd程序包自带的工具介绍

               httpd
                   Apache 服务器。
               apachectl
                   Apache HTTP 服务器控制工具。
               ab
                   Apache HTTP 服务器性能基准工具。
               apxs
                   Apache 扩展工具。
               configure
                   配置源代码。
               dbmmanage
                   为基本认证创建和更新 DBM 格式的用户认证文件。
               htcacheclean
                   清理磁盘缓存。
               htdigest
                   为摘要认证创建和更新用户认证文件。
               htdbm
                   操作 DBM 密码数据库。
               htpasswd
                   为基本认证创建和更新用户认证文件。
               httxt2dbm
                   为 RewriteMap 创建 dbm 文件。
               logresolve
                   将 Apache 日志文件中的 IP 地址解析到主机名称。
               rotatelogs
                   不关闭 Apache 而切换日志文件。
               suexec
                   执行外部程序前切换用户。

       

===========================the end=======================================


关于httpd的配置文件/etc/httpd/conf/httpd.conf 中的指令和值,以及其他httpd自带的工具和特性

已经总结完毕,下篇将介绍如何编译安装httpd及实现一些其他常用功能


PS:一滴水的力量,你懂的,请赐教~