author:JevonWei

版权声明:原创作品


httpd 2.4配置

  • 切换使用的MPM

      Centos7:/etc/httpd/conf.modules.d/00-mpm.conf
    启用要启用的MPM相关的LoadModule指令即可
    centos 6编译安装:
    vim /etc/httpd24/httpd.conf
    Include /etc/httpd24/extra/httpd-mpm.conf
    LoadModule mpm_event_module
    modules/mod_mpm_event.so
    示例:
    vim /etc/httpd/conf.modules.d/00-mpm.conf
    LoadModule mpm_event_module modules/mod_mpm_event.so \\启用event工作模式。并关闭原来的perfork工作模式 systemctl restart httpd 另一台主机测试访问速度
    ab -c 100 -n 1000 http://172.16.253.105/
  • 主目录 (修改主目录时,还需打开目录的访问权限,默认权限是关闭的)

      DocumentRoot /path
    
      示例:
    vim /etc/httpd/conf/httpd.conf
    DocumentRoot "/app/web1"
    <DocumentRoot "/app/web1"> \\打开访问权限允许所有人访问
    require all granted
    </Directory>
  • 基于IP的访问控制:

      依赖模块mod_authz_core

    官方文档:http://httpd.apache.org/docs/2.4/de/mod/mod_authz_core.html

      无明确授权的目录,默认拒绝
    允许所有主机访问:Require all granted
    拒绝所有主机访问:Require all denied
    控制特定的IP访问:
    Require ip IPADDR:授权指定来源的IP访问
    Require not ip IPADDR:拒绝特定的IP访问
    控制特定的主机访问:
    Require host HOSTNAME:授权特定主机访问
    Require not host HOSTNAME:拒绝
    HOSTNAME:
    FQDN:特定主机
    domin.tld:指定域名下的所有主机 不能有失败,至少有一个成功匹配
    <RequireAll>
    Require all granted
    Require not ip 172.16.100.2 拒绝特定IP
    </RequireAll>
    多个语句有一个成功,即成功
    <RequireAny>
    ……
    </RequireAny> 示例 (仅允许某主机或host访问时必须放在<RequireAll>中)
    <Directory "/app/web1">
    <RequireAll>
    require ip 192.168.198.1 \\仅允许192.168.198.1访问
    </RequireAll>
    </Directory> <Directory "/app/web1">
    <RequireAll>
    require all granted \\允许所有主机访问
    require not ip 192.168.198.1 \\但拒绝192.168.198.1访问 \\仅允许192.168.198.1访问
    </RequireAll>
    </Directory>
  • 虚拟主机

      基于FQDN的虚拟主机也不再需要	NameVirutalHost指令
    <VirtualHost *:80>
    ServerName www.b.net
    DocumentRoot "/apps/b.net/htdocs"
    ErrorLog logs/web1_error_log \\虚拟主机web服务的错误日志记录
    CustomLog logs/web1_access_log common \\\\虚拟主机web服务的访问日志记录
    <Directory "/apps/b.net/htdocs">
    Options None
    AllowOverride None
    Require all granted
    </Directory>
    </VirtualHost>

    注意:任意目录下的页面只有显式授权才能被访问

      示例 (两个基于FQDN的虚拟主机)
    vim /etc/httpd/conf.d/vhost.conf
    <Virtualhost *:80>
    DocumentRoot /app/web1
    servername www.danran.com
    <Directory /app/web1>
    require all granted
    </Directory>
    </Virtualhost> <Virtualhost *:80>
    DocumentRoot /app/web2
    servername www.jevon.com
    <Directory /app/web2>
    require all granted
    </Directory>
    </Virtualhost>
    访问:(有域名解析的前提)
    http://www.danran.com
    http://www.jevon.com
  • ssl:安装mod_ssl,和httpd-2.2 相同配置(也可以使用CA证书同httpd2.2一样)

      yum -y install mod_ssl
    ll /etc/httpd/conf.modules.d/00-ssl.conf \\生成mod_ssl配置文件
    https://192.168.198.124
  • 持久连接

      官方文档:http://httpd.apache.org/docs/2.4/de/mod/core.html#keepalive
    
      KeepAlive on
    KeepAliveTimeout #ms
    MaxKeepAliveRequests 100
    毫秒级持久连接时长定义 示例:
    vim /etc/httpd/conf.d/vhost.conf
    <Virtualhost *:80>
    DocumentRoot /app/web1
    servername www.danran.com
    KeepAlive on
    KeepAliveTimeout 15000 \\毫秒为单位
    MaxKeepAliveRequests 100
    <Directory /app/web1>
    require all granted
    </Directory>
    </Virtualhost>
  • Sendfile机制

      不用sendfile的传统网络传输过程:
    read(file,tmp_buf,len)
    write(socket,tmp_buf,len) 硬盘 >> kernel buffer >> user buffer >> kernel socket buffer >> 协议栈 一般网络应用通过读硬盘数据,写数据到socket来完成网络传输,底层执行过程:
    1. 系统调用read()从产生一个上下文切换:从user mode切换到kernel mode,然后DMA个执行拷贝,把文件数据从硬盘读到一个 kernel buffer 里。
    2. 数据从kernel buffer到拷贝到user buffer用,然后系统调用read()返回,这时又产生一个上下文切换:从kernel mode切换到user mode
    3. 系统调用write()从产生一个上下文切换:从user mode切换到kernel mode,然后把步骤2读到user buffer到的数据拷贝到kernel buffer(数据第2次拷贝到kernel buffer的),不过这次是个不同的kernel buffer个,这个buffer和socket相关联。
    4. 系统调用write()从返回,产生一个上下文切换:从kernel mode到切换到user mode(第4次切换), 然后DMA从 从kernel buffer拷贝数据到协议栈(第4 次拷贝)
    上面4个步骤有4次上下文切换,有4次拷贝,如果能减少切换次数和拷贝次数将会有效提升性能 在kernel2.0+用版本中,系统调用sendfile()就是用来简化上面步骤提升性能的。sendfile()不但能减少切换次数而且还能减少拷贝次数 用sendfile()来进行网络传输的过程:
    sendfile(socket, file, len);
    硬盘 >> kernel buffer ( 快速拷贝到kernel socket buffer)协议栈
    1 系统调用sendfile()通过DMA到把硬盘数据拷贝到kernel buffer被 ,然后数据被kernel与直接拷贝到另外一个与socket相关的kernel buffer有 。这里没有user mode和kernel mode 之间的在切换,在kernel个中直接完成了从一个buffer到另一个buffer的拷贝。
    2 DMA把数据从kernel buffer直接拷贝给协议栈,没有切换,也不需要数据从user mode拷贝到kernel mode,因为数据就在kernel里
  • 反向代理服务器

      启用反向代理
    ProxyPass "/" "http://www.danran.com/" \\将访问web时自动调转到http://www.danran.com/
    ProxyPassReverse "/" "http://www.danran.com/"

    特定URL反向代理

    ProxyPass "/danran" "http://www.danran.com/" \访问danran目录时跳转

    ProxyPassReverse "/danran" http://www.danran.com/

      示例:
    vim /etc/httpd/conf.d/vhost.conf
    <Virtualhost *:80>
    DocumentRoot /app/web2
    servername www.jevon.com
    ProxyPass / http://172.16.251.4/
    ProxyPassReverse / http://172.16.251.4
    <Directory /app/web2>
    require all granted
    </Directory>
    </Virtualhost> vim /etc/httpd/conf.d/vhost.conf
    <Virtualhost *:80>
    DocumentRoot /app/web2
    servername www.jevon.com
    ProxyPass /danran http://172.16.251.4/danran
    ProxyPassReverse /danran http://172.16.251.4/danran
    <Directory /app/web2>
    require all granted
    </Directory>
    </Virtualhost> 访问测试:
    [root@danran ~]# curl http://172.16.251.4
    welcome danran [root@danran ~]# curl http://www.jevon.com
    welcome danran

其他常用配置同 httpd2.2一致

	httpd2.2常用配置
http://119.23.52.191/httpd%E5%B8%B8%E7%94%A8%E9%85%8D%E7%BD%AE/

httpd2.4常用配置的更多相关文章

  1. httpd-2.4安装配置

    接收请求的类型: 并发访问响应模型: 单进程I/O模型:启动一个进程处理用户请求,这意味着一次只能处理一个请求,多个请求被串行响应: 多进程I/O模型:由父进程并行启动多个子进程,每个子进程响应一个请 ...

  2. linux服务基础(二)之httpd2.2基础配置

    一.安装httpd服务 CentOS6 默认安装httpd2.2版本 CentOS7 默认安装httpd2.4版本 # yum install httpd 二.安装后相关文件说明 配置文件: /etc ...

  3. Apache入门 篇(二)之apache 2.2.x常用配置解析

    一.httpd 2.2.x目录结构 Cnetos 6.10 YUM安装httpd 2.2.x # yum install -y httpd 程序环境 主配置文件: /etc/httpd/conf/ht ...

  4. httpd常用配置之虚拟主机

    httpd常用配置 目录 httpd常用配置 虚拟主机: 相同IP不同端口 不同IP相同端口 相同IP相同端口不同域名 切换使用MPM(编辑/etc/httpd/conf.modules.d/00-m ...

  5. logback 常用配置详解<appender>

    logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...

  6. 【转】logback logback.xml常用配置详解(三) <filter>

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1110008, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  7. 【转】logback logback.xml常用配置详解(二)<appender>

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  8. 【转】logback logback.xml常用配置详解(一)<configuration> and <logger>

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  9. 【转】logback 常用配置详解(序)logback 简介

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

随机推荐

  1. 41. leetcode 53. Maximum Subarray

    53. Maximum Subarray Find the contiguous subarray within an array (containing at least one number) w ...

  2. 20. leetcode 171. Excel Sheet Column Number

    Given a column title as appear in an Excel sheet, return its corresponding column number. For exampl ...

  3. OpenCV1.0在VC ++6.0下的配置

    1.本人使用win7操作系统,首先要预装VC++6.0,安装方法不再赘述. 2.在OpenCV官方网站下载OpenCV的安装文件"OpenCV_1.0.EXE"(参考链接:http ...

  4. IIS7.5应用程序池集成模式和经典模式的区别介绍

    IIS7.5应用程序池集成模式和经典模式的区别介绍 作者:  字体:[增加 减小] 类型:转载 时间:2012-08-07   由于最近公司服务器上需要将iis的应用程序池全部都升级到4.0的框架,当 ...

  5. Unity 发布的 WenGL 使用SendMessage传递多个参数

    如果要实现Unity与浏览器的数据交互一般都会采用两种方式 方法一: Application.ExternalCall("SayHello","helloworld&qu ...

  6. Jenkins安装与配置

    Jenkins安装与配置 2 Jenkins安装 在最简单的情况下,Jenkins 只需要两个步骤: 1.下载最新的版本(一个 WAR 文件).Jenkins官方网址: http://Jenkins- ...

  7. 如何开发自己的搜索帝国之安装ik分词器

     Elasticsearch默认提供的分词器,会把每个汉字分开,而不是我们想要的根据关键词来分词,我是中国人 不能简单的分成一个个字,我们更希望 “中国人”,“中国”,“我”这样的分词,这样我们就需要 ...

  8. js实现轮播图动画

    在网页浏览中,可以看到轮播图是无处不在的,这是一个前端工程最基本的技巧.首先看看几个网页的呈现的效果. QQ音乐: 网易云音乐: 天猫: 接下来将从简到难总结几种实现轮播图的方法. 1.样式一:鼠标滑 ...

  9. python学习之字符串(上)

    字符串python 的字符串被划归为不可变序列这一类别,意味着这些字符串所包含的字符存在从左至右的位置顺序,并且他们不可以在原处修改. 字符串常量单引号  'spam'双引号  "spam& ...

  10. c++类与初始化,const

    --c++类与初始化,const --------------------------------2014/09/04 1. 类的定义(头文件.声明文件)看成类的外部接口,一般写成.h头文件. 2. ...