httpd2.4常用配置
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常用配置的更多相关文章
- httpd-2.4安装配置
接收请求的类型: 并发访问响应模型: 单进程I/O模型:启动一个进程处理用户请求,这意味着一次只能处理一个请求,多个请求被串行响应: 多进程I/O模型:由父进程并行启动多个子进程,每个子进程响应一个请 ...
- linux服务基础(二)之httpd2.2基础配置
一.安装httpd服务 CentOS6 默认安装httpd2.2版本 CentOS7 默认安装httpd2.4版本 # yum install httpd 二.安装后相关文件说明 配置文件: /etc ...
- 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 ...
- httpd常用配置之虚拟主机
httpd常用配置 目录 httpd常用配置 虚拟主机: 相同IP不同端口 不同IP相同端口 相同IP相同端口不同域名 切换使用MPM(编辑/etc/httpd/conf.modules.d/00-m ...
- logback 常用配置详解<appender>
logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...
- 【转】logback logback.xml常用配置详解(三) <filter>
原创文章,转载请指明出处:http://aub.iteye.com/blog/1110008, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- 【转】logback logback.xml常用配置详解(二)<appender>
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- 【转】logback logback.xml常用配置详解(一)<configuration> and <logger>
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101260, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
- 【转】logback 常用配置详解(序)logback 简介
原创文章,转载请指明出处:http://aub.iteye.com/blog/1101222, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...
随机推荐
- 使用插件bootstrap-table实现表格记录的查询、分页、排序等处理
在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有 ...
- docker安装方法(常见安装出错问题汇总)
参考资料: 1. 开源中国 http://www.oschina.net/translate/nstalling-dockerio-on-centos-64-64-bit?cmp Docker 是一 ...
- java解析xml汇总(转自倾城幻影-Java解析xml汇总,链接:http://www.cnblogs.com/jiugehuanying/archive/2012/01/12/2320058.html)
[引言] 目前在Java中用于解析XML的技术很多,主流的有DOM.SAX.JDOM.DOM4j,下文主要介绍这4种解析XML文档技术的使用.优缺点及性能测试. [一.基础知识--扫盲] sax.do ...
- Linux下栈溢出导致的core dump
1 问题产生 前两天在干活的时候,写好的一个daemon程序,一跑就core,连main函数都进不去.从来没见过这阵势的职场新人被吓尿了,幸好不是在生产环境上测试.找来同事帮忙,看了好久也没看出问题, ...
- JavaScript之Object拆解
转载烦请注明原文链接: https://github.com/Xing-Chuan/blog/blob/master/JavaScript/JavaScript%E4%B9%8BObject%E6%8 ...
- html5 mdn一些精彩的案例
https://developer.mozilla.org/zh_CN/docs/Games/Examples
- MySQL执行计划extra中的using index 和 using where using index 的区别
本文出处:http://www.cnblogs.com/wy123/p/7366486.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...
- win7(iis7)localhost可以访问127.0.0.1不可以访问的问题解决办法
在C:\Windows\System32\drivers\etc文件夹下有hosts文件,用编辑器打开,看看有没有配置127.0.0.1 localhost 把前面的#去掉保存即可!
- MFC加载PNG图片并实现双缓冲
因为PNG包含Alpha通道,所以不同于BITMAP,在MFC中使用CImage类对其进行处理,通常使用load和draw成员函数. 所以标题的论述可以进一步解释为,使用CImage实现双缓冲. 通常 ...
- 压缩感知中的数学知识:稀疏、范数、符号arg min
转自:http://blog.csdn.net/jbb0523/article/details/40262629 1.稀疏:什么是K稀疏呢? 在压缩感知里经常提到 "K稀疏" 的概 ...