httpd协议配置进阶

目录

  • 虚拟主机配置

  • status状态页面

  • curl命令

  • mod_deflate模块

  • https配置

  • httpd自带应用程序

虚拟主机配置

有三种实现方案:
   基于IP
       为每个虚拟主机准备至少一个IP地址
   基于端口:
       为每个虚拟主机使用至少一个独立的port
   局域FQDN:
       为每个虚拟主机使用至少一个FQDN

注意:一般虚拟主机不要与中心主机混用; 因此,要使用虚拟主机,得先禁用’main’主机 
禁用方法:注释中心主机的DocumentRoot指令即可

虚拟主机配置方法
<VirtualHost IP:PORT>    # 指明IP和端口
   ServerName FQDN     # 指明主机名
   DocumentRoot ""     # 网页文档路径
</VirtualHost>

其它可用命令:
   ServerAlias:虚拟主机的别名;可多次使用;
   ErrorLog:错误日志
   CustomLog:访问日志
   ...
基于IP的虚拟主机示例

1.创建虚拟主机配置文件

]FXYA~)N(ZZ]1IF%{`QDG8U.png

2.为每个虚拟主机提供网页文档

{_5T7[W2)[}GI(_H`NQ_085.png

3.测试

@O2A@DMR$)UI$JMQ5[39I]P.png

CHNTLQRV@RIXQI1HB1BU[{C.png

F_D2)9FJ1CR4W7`I_E0WAIC.png

基于端口的虚拟主机

1.创建虚拟主机配置文件

@KKRI)T8PXHBP1@ROUZPEEL.png

2.确认三个端口都已经监听

N(4{H0)2OCSW3F}OWVFAJVY.png

3.测试

O3$0{{KET8%Q2~1I~(43NBR.png

P27~XCHW3R2M0EHKO6@15ML.png

XJVG}NGI@`~ENH5W1O(~9$9.png

基于主机名的虚拟主机

1.创建虚拟主机配置文件

(AH5Z@DK2@5({_%SIUU04V1.png

2.在客户端hosts文件中添加主机名解析

EF}MWZ1[OR8WV{Z8B0@)T1K.png

3.测试

_H]A$(F3M2$07UY8Q7[23{K.png

B@P4ABJ$@55N])ESC]H]H$B.png

H{)%V@XYNJXH3[V{MYG_QO0.png

配置status状态页

1.确保status_module模块已加载

]Y$86ZFN}9()M7X4V~M}AAT.png

2.在配置文件中添加此项

)V8F25AO8O]Y__IUH`1~62X.png

3.测试

9Q@EZUHJDM(X4S{@S00~`~A.png

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 <string> 设置用户代理发送给服务器
   --basic 使用HTTP基本认证
   -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
   -X, --request <command>:自定义请求方法

用法:curl [options] [URL...]

另一个工具:elinks
   elinks  [OPTION]... [URL]...
       -dump: 不进入交互式模式,而直接将URL的内容输出至标准输出;

mod_deflate模块

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

https协议

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTPS和HTTP的区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。 
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

SSL会话的简化过程

(1) 客户端发送可供选择的加密方式,并向服务器请求证书;
(2) 服务器端发送证书以及选定的加密方式给客户端;
(3) 客户端取得证书并进行证书验正:
   如果信任给其发证书的CA:
       (a) 验正证书来源的合法性;用CA的公钥解密证书上数字签名;
       (b) 验正证书的内容的合法性:完整性验正
       (c) 检查证书的有效期限;
       (d) 检查证书是否被吊销;
       (e) 证书中拥有者的名字,与访问的目标主机要一致;
(4) 客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换;
(5) 服务用此密钥加密用户请求的资源,响应给客户端;

注意:SSL会话是基于IP地址创建;所以单IP的主机上,仅可以使用一个https虚拟主机;

配置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

https配置实现

1.安装mod_ssl包,配置http支持https

[root@centos7 ~]# yum -y install mod_ssl
[root@centos7 ~]# httpd -M | grep ssl
ssl_module (shared)
[root@centos7 ~]#

2.建立私有CA

(1)生成私钥

88HUE$[@3)OCK6IO]8LX5GC.png

(2)生成自签证书

_)`(84J1R2BP_[ZNPV}G[EJ.png

(3)为CA提供所需的目录及文件

$$C63W5$}_VDAA$$[_~[~7V.png

3.在服务器端创建签署请求,CA签证

(1)生成私钥

[root@centos7 ~]# mkdir /etc/httpd/ssl
[root@centos7 ~]# cd /etc/httpd/ssl
[root@centos7 ssl]# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

(2)生成签署请求

{B3BZ~HS@__V6RC[4LXZM[U.png

(3)CA签证

[root@centos7 ssl]# openssl ca -in httpd.csr -out /etc/httpd/ssl/httpd.crt -days 365

4.配置httpd支持ssl

{`2`NL]4CBY244BYGP6@YKC.png

7F)W)00NEM@~V]BVM%X~$SJ.png

5.客户端验证

7O4N3_)WJ}HND~CJ[XO8D8O.png

E{@$WO1VU2]FPL17$XG~S_4.png

8V3H){(R1FJH$TDB66%F(7A.png

http自带应用程序

htpasswd:basic认证基于文件实现,用于生成账号和密码的程序;
   -c:自动创建此处指定的文件,因此,仅应该在此文件不存在时使用
       -m:md5格式加密
       -s:sha格式加密
       -D:删除指定用户
apachectl:httpd自带的服务控制脚本,支持start和stop等子命令;
apxs:- APache eXtenSion tool
   为httpd增添模块的;

rotatelogs:日志切割
   access_log,
   access_log, access_log.1, ...

ab - web service的压力测试工具    
       ab [OPTIONS]  [http[s]://]hostname[:port]/path
           请求数:[ -n requests ]
           并发数:[ -c concurrency ]
           长连接:[ -k ]

原创文章,作者:zhai796898,如若转载,请注明出处:http://www.178linux.com/55277

(0)
上一篇 2016-10-31 00:18
下一篇 2016-10-31 00:40

相关推荐

  • 第四周小结

    这周我们主要学习了写脚本的简单语法,写了一些简单的脚本,下面就由我来简单介绍一下: 第一步使用文本编辑来创建脚本: 创建好后在里面写想要运行的脚本即可,然后按Esc—wq退出保存即可。也可以按q不保存退出;q!不保存强制退出;wq!保存强制退出。 第二步运行脚本,给予执行权限,在命令行上指定脚本的相对路径和绝对路径 对了,当在脚本里输入内容时,要Ese&#8…

    2017-08-06
  • 马哥教育网络班22期+第8周课程练习

    week8: 1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,它能将一个大的LAN分割为多个网段, 或将两个以上的LAN互联为一个逻辑LAN,使LAN上的所有用户都可访问服务器。 它工作于OSI(开放系统互联参考模型)参考模型第二层,即“数据链路层”。 集线器的英文称为“H…

    Linux干货 2016-10-09
  • 虚拟主机的实现

    示例1:基于ip 编辑配置文件,切换到最后一行,增加: <VirtualHost 192.168.1.117:80>     ServerName web1.ams.com     DocumentRoot "/vhosts/web1/htdocs" </VirtualHost&g…

    Linux干货 2016-08-05
  • Linux系统中文件权限(特殊权限)的相关认识

    文件属性 在linux系统中一切皆文件,所有的数据都是以文件的形式存储在系统中,我们可以通过ls命令可以查看文件的相关属性,如下图:                                &n…

    Linux干货 2016-08-04
  • 6.vim编辑器使用方法总结

    vi: visual interface,文本编辑器 vim: vi improved,vi的增强版 文本:ASCII,Unicode, 文本编辑器种类: 行编辑器:sed, 全屏编辑器:nano,vi vim:模式化的编辑器 基本模式: 编辑模式,也叫命令模式 输入模式 末行模式:内置的命令行接口 模式转换: 编辑模…

    Linux干货 2017-08-06
  • 如何新增加磁盘分区挂载

    新增磁盘和分区挂载我们先要了解fdisk的参数以及菜单的操作说明,下面是fdisk的参数说明:  fdisk参数说明: m :显示菜单和帮助信息 a :活动分区标记/引导分区 d :删除分区 l :显示分区类型 n :新建分区 p :显示分区信息 q :退出不保存 t :设置分区号 v :进行分区检查 w :保存修改 x :扩展应用,高级功能 1  查看磁盘…

    Linux干货 2018-03-26