http2.4.6相关部署

首先,简单说一说http协议。

http:c/s架构,通信协议http(html:超文本标记语言):超文本传输协议

http/1.0引入MIME类型,使得http可以传输图片、动图等各种类型的数据;

http/1.1:改进了cache功能,增加了条件式请求等功能。

客户端将网站主页面等一些轻易不会改变的资源缓存下来,请求时速度会很快,而且也会减小服务器的压力。   浏览器每域名有线程限制

服务器端优化:保证服务器性能更好,使用更多的服务器来响应、同时服务,保证带宽足够用等。。。

http/2.0:只适用于https。



一、持久连接

]# vi /etc/httpd/conf.d/keepalive.conf        #新建一个以.conf结尾的文件,

Keepalive off                #关闭持久连接
#Keepalive on                #开启持久连接
#KeepaliveTimeout 60         #设置超时时长
#MaxKeepAliveRequests 10     #最多允许请求多少个资源(可选项)

测试

使用Telnet请求

]# telnet 10.1.12.12 80

GET /index.html http/1.1       #<method><URL><version> 请求方法、资源、http版本
Host:10.1.12.12                #服务器IP,然后俩次回车


二、自定义日志

http://httpd.apache.org/docs/2.4/mod/mod_log_config.html

可以在官网查看,如果连不上外网,也可以在base仓库下载安装包

]#yum -y install httpd-manual.noarch

http://Server_IP/manual

%h:记录客户端主机名

%l:客户端通过identd登录时使用名称;一般为空

%u:用户认证登录的名字;无登录机制一般为空

%t:收到客户端请求时的时间;

\”:显示引号本身,而不是作为引用符号

%r:请求报文的首行<method><url><version>

%>s:响应状态状态码,如果内部发生变化。则记录最后一次响应的响应码

%b:响应报文的大小

%{Refere}i:记录Http首部Reference对应的值;即访问入口,从哪个页面跳转至此页面

%{User-Agent}i:记录Http首部User-Agent对应的值;即浏览器类型



三、访问控制

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

Indexes:目录下的文件都可以访问(除非你建的是下载站,否则这项关闭)

FollowSymLinks:允许跟踪符号链接

AllowOverride:httpd允许在网页文档的各目录下使用隐藏文件.htaccess来各自的访问控制;此指令定义哪此指令可以在.htaccess中定义

Require:

Require all granted

Require all denied

<RequireAll>

Require ip 10.1.0.0/16

Require all denied

</RequireAll>    拒绝所有,读取时从上到下的顺序

Require ip IP|NETWORK

Require not ip IP|NETWORK

Require host HOSTNAME

Require not  host HOSTNAME



四、虚拟主机(IP、端口、主机名不同)

1、修改主配置文件,添加端口

2、添加网卡或配置临时IP

3、创建网站文件目录与主页面

4、创建虚拟主机的配置文件

主配置文件:

]# vi /etc/httpd/conf/httpd.conf

Listen 80
Listen 8080
Listen 8088
Listen 8090

虚拟主机配置文件:

]# vi /etc/httpd/conf.d/vhosts.conf

<VirtualHost 192.168.1.2:8080>                    #第一个虚拟主机
        ServerName www.s1.com
        DocumentRoot "/vhosts/s1"
    <Directory /vhosts/s1>
        Options none
        AllowOverride none
        Require all granted
    </Directory>

    <Directory /vhosts/s1/admin>                #隐私文件,配置用户认证(用户访问控制)
        Options none
        AllowOverride none
        AuthType basic        #类型
        Authname "Admin Area,Please enter your name/password" #提示
        Authuserfile "/etc/httpd/conf/.userfile"        #路径及文件名
        Require valid-user                #设置只能文件中给出的用户可以访问
#       Require User tom jerry    #允许文件中的某几个用户可以访问
    </Directory>
        CustomLog logs/s1_access.log combind    #定义访问日志
        ErrorLog logs/s1_error.log            #定义错误日志
</VirtualHost>

<VirtualHost 192.168.1.3:8088>                #第二个虚拟主机
        ServerName www.s2.com
        DocumentRoot "/vhosts/s2"
    <Directory /vhosts/s2>
        Options none
        AllowOverride none
        Require all granted
    </Directory>
        CustomLog logs/s2_access.log combind
        ErrorLog logs/s2_error.log
</VirtualHost>

<VirtualHost 192.168.1.4:8090>            #第三个虚拟主机
        ServerName www.s3.com
        DocumentRoot "/vhosts/s3"
        Alias /bbs /mnt                    #定义路径别名
    <Directory /vhosts/s3>
        Options none
        AllowOverride none
        Require all granted
    </Directory>
    <Directory "/mnt">                #配置路径别名目录的权限
        Options none
        AllowOverride none
        Require all granted
    </Directory>
        CustomLog logs/s3_access.log combind
        ErrorLog logs/s3_error.log
</VirtualHost>


五、status状态页

]#vi /etc/httpd/conf.d/status.conf

<Directory /status>
  Sethandler server-status
  Require all granted
</Directory>


六、用户认证

1、建立隐私目录

2、修改主配置文件

3、设置访问用户

~]#mkdir /vhost/s1/admin

<Directory"/vhost/s1/admin">
                Options none
                AllowOverride none
                AuthType basic
                Authname "Admin Area,Enteryour name/password"
                Authuserfile"/etc/httpd/conf/.htpasswd"
                Require valid-user
#               Require User tom jerry
        </Directory>

]#htpasswd -c -m /etc/httpd/conf/.htpasswd tom

-c:创建新的文件

-m:用md5方式加密

]#htpasswd  -m /etc/httpd/conf/.htpasswdjerry



七、压缩页面优化传输速度

]# vi /etc/httpd/conf.d/deflate.conf

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

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

~]# httpd -M |grep ssl     #查询有没有ssl模块,如果没有,在base仓库里安装

~]# yum install -y mod_ssl

由于申请证书比较麻烦,这里演示本机私建CA

]# ls /etc/pki/CA/    #下面操作在此目录下,centos 7和6有点区别,6下面目录可能不存在
certs  crl  newcerts  private

①创建私钥

]# (umask 077;openssl genrsa -out private/cakey.pem 2048)    
Generating RSA private key, 2048 bit long modulus
...............................................................+++
..........................+++
e is 65537 (0x10001)

括号是启动子进程,使生成的文件有700的权限,私钥存放目录private,长度2048(只能是2的次方,也可以是1024或者4096)

②自签证书

[[email protected] CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem
Country Name (2 letter code) [XX]:CN    #国家(俩个字符的代码)
State or Province Name (full name) []:Beijing    #省
Locality Name (eg, city) [Default City]:Beijing    #地区
Organization Name (eg, company) [Default Company Ltd]:latiao    #公司名
Organizational Unit Name (eg, section) []:Ops    #部门
Common Name (eg, your name or your server‘s hostname) []:ca.latiao.com #CA服务器名
Email Address []:admin.latiao.com    #邮箱地址
[[email protected] CA]# echo 01 > serial 
[[email protected] CA]# touch index.txt

③需要获取证书的服务器生成私钥

[[email protected] httpd]# mkdir certs
[[email protected] httpd]# cd certs/
[[email protected] certs]# (umask 700;openssl genrsa -out httpd.key 2048)

④需要获取证书的服务武器生成证书签署请求

[[email protected] certs]# openssl req -new -key httpd.key -out httpd.csr
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:latiao
Organizational Unit Name (eg, section) []:development  
Common Name (eg, your name or your server‘s hostname) []:www.latiao.com
Email Address []:webadmin.latiao.com

Please enter the following ‘extra‘ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Common Name #推广给客户端,客户端在浏览器中输入的网址,证书持有者的名称和客户访问的网址的名称要一致

⑤将申请证书发送给CA服务商,这里本机是CA服务商,所以自己签署就行

[[email protected] certs]# openssl ca -in httpd.csr -out httpd.crt #后面都是Y同意即可

修改ssl配置文件

[[email protected] conf.d]# vi ssl.conf

SSLEngine on
SSLCertificateFile /etc/httpd/certs/httpd.crt
SSLCertificateKeyFile /etc/httpd/certs/httpd.key
DocumentRoot "/var/www/html"
ServerName www.latiao.com

]# systemctl reload httpd.service

https://10.1.12.13测试



httpd支持第三方模块

让httpd接入模块的接口就是apxs,是由httpd-devel软件包提供的

编译第三方模块时必须指明apxs文件的位置

未完待续.....

时间: 2024-08-14 00:25:10

http2.4.6相关部署的相关文章

weiphp的相关部署教程以及新浪云Sae安装技巧

WeiPHP在Sae上的部署图文教程 进来微信开发挺火的,so 越来越多人开始做起微信开发了,如果从头开发的话挺费时间和精力的,况且市场上已经有一款比较成熟的产品,那就是WeiPHP 不过告诉大家个坏消息,WeiPHP好久没更新了,而且官网下载源码报404.从Sae仓库上也无法安装WeiPHP,不知道他们团队出了什么问题了. 好了,废话不多说,很多新手朋友不会在SAE上部署weiphp,本文就详细教大家如何部署. http://www.gox.name/tech/1406.html

MyEclipse相关部署问题

部署Tomcat如果用MyEclipse自动部署方式很有可能出现一个问题: 服务器关联的这个项目却关联到其他的项目上,导致运行时还在运行以前的项目 解决方法: 将状态提示栏的service里的tomcat关联的项目删除,然后在新的项目名上右键点击propertise,选择Eclipse->Web,将Web context-root改为新项目名

XenApp/XenDesktop快速部署工具- QDT for 7.6 LTSR

第一次使用Citrix XenApp/XenDesktop的同学一般都会有个感受,就是Citrix XenApp/XenDekstop初次部署好像挺复杂的,什么DDC, StoreFront,VDA还有MS SQL,如果考虑高可用,还要多台部署,SQL HA,基本脑子就乱了.如果再加上NetScaler,那么就... 确实,从客观来说Citrix XenApp/XenDesktop产品深度集成Microsoft Active Directory,所以从产品架构设计.HA等方面都非常的倚重于Mic

安装部署oracle数据库

部署Oracle数据库 防伪码:宝剑锋从磨砺出,梅花香自苦寒来. 前言:前面我们学习过微软的sqlserver,还有甲骨文公司的mysql,也理解了数据库系统的作用,这两种数据库管理系统适用于软件,网站,游戏等后台数据库,例如我们在学习mysql的时候搭建过动态网站.但oracle属于非常安全.完善的大型数据库管理软件,在电信.银行.证券等大型应用场合拥有着绝对的优势.那么今天就给搭建介绍oracle的安装和基本的使用.Oracle可以安装到windows和linux系统上,但企业更多采用在li

学习使用Docker、Docker-Compose和Rancher搭建部署Pipeline(一)

这篇文章是一系列文章的第一篇,在这一系列文章中,我们想要分享我们如何使用Docker.Docker-Compose和Rancher完成容器部署工作流的故事.我们想带你从头开始走过pipeline的革命历程,重点指出我们这一路上遇到的痛点和做出的决定,而不只是单纯的回顾.幸好有很多优秀的资源可以帮助你使用Docker设置持续集成和部署工作流.这篇文章并不属于这些资源之一.一个简单的部署工作流相对比较容易设置.但是我们的经验表明,构建一个部署系统的复杂性主要在于原本容易的部分需要在拥有很多依赖的遗留

oracle系列(一)”图文+解析”带你部署oracle数据库

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 前言:前面我们学习过微软的sqlserver,还有甲骨文公司的mysql,也理解了数据库系统的作用,这两种数据库管理系统适用于软件,网站,游戏等后台数据库,例如我们在学习mysql的时候搭建过动态网站.但oracle属于非常安全.完善的大型数据库管理软件,在电信.银行.证券等大型应用场合拥有着绝对的优势.那么今天就给搭建介绍oracle的

kafka的三种部署模式

/************* *kafka 0.8.1.1的安装部署 *blog:www.r66r.net *qq:26571864 **************/ 相关部署视频地址:http://edu.51cto.com/course/course_id-2374.html kafka的部署模式为3种模式 1)单broker模式 2)单机多broker模式 (伪集群) 3)多机多broker模式 (真正的集群模式) 第一种模式安装 1.在hadoopdn2机器上面上传kafka文件,并解压到

运维平台相关开发

最近在做一些运维平台的东东 原文链接:http://www.cnblogs.com/caoguo/p/6003150.html 1.支持查看ucloud主机统计及主机分布情况2.支持ucloud主机及数据库资产信息3.支持针对单台主机执行命令4.支持针对单台主机部署服务5.支持对主机业务分组,并关联联系人6.支持代码发布7.支持权限管理 现在上一些图,图片如果看不清,可以右键打开大图查询 a).ucloud平台查询 b).Saltstack 相关部署接口的开发 c).发布系统rsync+ssh

Http2 中比较重要的特性更新

HTTP2规范目前还没有完全定稿,某些关键的部分仍然在确认中.HTTP2借鉴了Google的SPDY的思想. 虽然版本号更新为2,但是在URL请求格式上仍然沿用了HTTP1.x,并且后续的版本以大版本号进行更新,不会再出现小版本号更新的情况. 此次HTTP2与HTTP1.x相比,重要的变化有如下几点: 1,传输格式改为采用二进制,而不再像HTTP 1.x 一样使用Plain Text; 2,连接可以进行复用(还不清楚是多个会话间复用,还是多应用间复用),理论上可以大幅减少多个请求的连接重建时间和