/////////////////////////////////写在前头////////////////////////////////////////
1.Apache HTTP 服务器2.4文档:
http://httpd.apache.org/docs/2.4/

2..httpd.conf详解:
http://www.php100.com/html/webkaifa/apache/2009/0418/1192.html

///////////////////////////////////目录//////////////////////////////////////////
1.基本配置
2.用户认证
3.静态缓存
4.域名跳转
5.防盗链
6.日志
7.访问控制
8.代理

/////////////////////////////////////////////////////////////////////////////////
遇到php不能解析:
1./usr/local/apache2/bin/apachetcl -M |grep -i php看看有没有加载php5module
2.vi /usr/local/apache2/conf/httpd.conf看看有没有AddType(修改了必须重启)
3.getenforce 看看selinux有没有关

/////////////////////////////////////////////////////////////////////////////////
基本配置:
在httpd.conf内增加:
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php

/////////////////////////////////////////////////////////////////////////////////
用户认证
配置参考如下:
<Directory /data/www>
AllowOverride AuthConfig
AuthName "TheNameYouWant"
AuthType Basic
AuthUserFile /data/.htpasswd #ThePathYouWant
require valid-user
</Directory>

.htpasswd is a code file
用/usr/local/apache2/bin/htpasswd -c /data/.htpasswd username
if it is the first time to use the tool htpasswd , please use -c

/////////////////////////////////////////////////////////////////////////////////
开启静态缓存:
LoadModule expires_module modules/mod_expires.so

配置参考如下:
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 24 hours"
ExpiresByType image/png "access plus 24 hours"
ExpiresByType text/css "now plus 2 hours"
ExpiresByType application/x-javascript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2 hours"
ExpiresDefault "now plus 0 min"
</IfModule>

/////////////////////////////////////////////////////////////////////////////////
域名跳转功能:
LoadModule rewrite_module modules/mod_rewrite.so

配置参考如下:
1.单一域名跳转
<IfModule mod_rewrite.c>
RewriteEngine on
RewirteCond %{HTTP_HOST} ^www.domain1.com$
RewirteRule ^(.*)$ http://www.domain2.com/$1 [R=301,L]
</IfModule>

2.多域名跳转
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.domain1.com$
RewriteRule ^(.*)$ http://www.domain2.com/$1 [R=301,L]
</IfModule>

3.针对某些目录做域名跳转限定
适用场合:当很多个目录都包含tmp的情况下,逐一书写Directory会很累赘
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^.*/tmp/* [NC]
RewriteRule .* - [F]
</IfModule>

4.限制指定user_agent的域名跳转
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^.*Firefox/4.0* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*Tomato Bot/1.0* [NC]
RewriteCond %{REQUEST_URI} !^/404*
RewriteRule .* /404.html
或者
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^*Firefox/4.0* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^*Tomato Bot/1.0* [NC]
RewriteRule .* - [F]

#以上的的HTTP_HOST、REQUEST_URI是Server-Variables的一个参数,有多个
#服务器变量的引用:%{ NAME_OF_VARIABLE },如上的HTTP_HOST
#了解更多参考文档

/////////////////////////////////////////////////////////////////////////////////
开启防盗链:
LoadModule setenvif_module modules/mod_setenvif.so

配置参考如下:
SetEnvIFNoCase Referer "^http://www.yourdomain.com" local_ref
SetEnvIFNoCase Referer "www.baidu.com" local_ref
SetEnvIFNoCase Referer "^$" local_ref
#以上均为白名单,除此之外使用防盗链
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
#针对以上格式做防盗链
Order Allow,Deny
Allow from env=local_ref
</filesmatch>

/////////////////////////////////////////////////////////////////////////////////
配置访问日志:
配置日志格式:、
#在httpd.conf配置文件中可设置访问日志格式
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined #可以作为日志格式
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" aming #这是自定义的格式,和combined common一样均可被使用
...

配置参考如下:
#vhost.conf文件
ErrorLog "|/usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/yourdomain.com-error _%Y%m%d:log 86400"
SetEnvIF Request_URI ".*.gif$" image-request
SetEnvIF Request_URI ".*\.jpeg$" image-request
SetEnvIF Request_URI ".*\.png$"image-request
SetEnvIF Request_URI ".*\.bmp$"image-request
SetEnvIF Request_URI ".*\.swf$"image-request
SetEnvIF Request_URI ".*\.js$"image-request
SetEnvIF Request_URI ".*\.css"image-request
CustomLog "|/usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/yourdomain.com-access _%Y%m%d:log 86400 " combined env!=image-request
#以上SetEnv是过滤掉图片等的访问日志
#rotatelogs是日志切割工具

/////////////////////////////////////////////////////////////////////////////////
访问控制:
<Directory /data/www>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>

针对请求的url去限制:
<filesmatch"(.*)admin(.*)">
Order deny,allow
Deny from all
Allow from 127.0.0.1
</filesmatch>

某个登陆下禁止解析PHP:
<Directory /data/www/path>
php_admin_flag engine off
<filesmatch "(.*)php">
Order deny,allow
Allow from all
</filesmatch>
</Directory>

/////////////////////////////////////////////////////////////////////////////////
配置Proxy:
拓展模块安装Proxy:
cd httpd-2.0.59/modules/proxy
/usr/local/apache2/bin/apxs -c -i -a mod_proxy.c mod_proxy_connect.c mod_proxy_http.c proxy_util.c
然后就可以发现modules目录下已经产生了mod_proxy.so了

加载模块:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so

配置参考如下:
反向代理:
ProxyRequests Off
ProxyPass / http://www.test.com/
ProxyPassReverse / http://www.test.com/

正向代理:
<VirtualHost *:80>
DocumentRoot "/data/www"
ServerName www.aaa.com
<Directory "/data/www">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ProxyRequests On
ProxyVia On
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
</VirtualHost>

Apache虚拟主机配置模板的更多相关文章

  1. Apache虚拟主机配置

    在一个Apache服务器上可以配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录.Apache虚拟主机配置有3中方法:基于IP配置.基于域名配置和基于端口配置,这里介 ...

  2. Apache虚拟主机配置(多个域名访问多个目录)

    Apache虚拟主机配置(多个域名访问多个目录) 为了方便管理虚拟主机,我决定使用一种方法,那就是修改httpd-vhosts.conf文件. 第一步首先要使扩展文件httpd-vhosts.conf ...

  3. Linux Apache虚拟主机配置方法

    apache 虚拟主机配置 注意: 虚拟主机可以开很多个 虚拟主机配置之后,原来的默认/etc/httpd/httpd.conf中的默认网站就不会生效了 练习: 主机server0 ip:172.25 ...

  4. Apache虚拟主机配置(多个域名访问多个目录)(转)

    Apache虚拟主机配置(多个域名访问多个目录) 为了方便管理虚拟主机,我决定使用一种方法,那就是修改httpd-vhosts.conf文件. 第一步首先要使扩展文件httpd-vhosts.conf ...

  5. Linux下Apache虚拟主机配置

    Linux下Apache虚拟主机的三种配置.这样可以实现一台主机架构多个独立域名网站.其中基于域名的最为常见.性价比也最高.下面PHP程序员雷雪松详细的讲解下Linux下Apache虚拟主机配置的具体 ...

  6. apache虚拟主机配置及解析

    Apache虚拟主机配置及解析 1.修改httpd-vhosts.conf 打开apache(Apache24)/conf/extra/httpd-vhosts.conf文件,添加虚拟主机信息,可以这 ...

  7. phpStudy 2014的Apache虚拟主机配置

    安装phpStudy直接百度下载,傻瓜式安装很简单,一直点击下一步即可,中途根据个人爱好设置WWW目录,我的设置在D盘根目录里. 打开虚拟主机配置,打开D:\phpStudy\Apache\conf下 ...

  8. linux apache虚拟主机配置(基于ip,端口,域名)

    配置环境: linux版本:Centos6.4 httpd版本: [root@centos64Study init.d]# pwd/etc/init.d[root@centos64Study init ...

  9. Ubuntu16.04+Apache虚拟主机配置详解

    在window下,Apache的配置文件是httpd.conf,但在Linux下安装了Apache后发现其配置并不像window下那么简单,Linux下Apache将各个设置项分在了不同的配置文件中, ...

随机推荐

  1. inner join和out join的区别

    inner join(又叫join) out join包括left join,right join和full join(也就是left+right)

  2. CSS3边框border-radius

    一.官方解释 设置或检索对象使用圆角边框.提供2个参数,2个参数以“/”分隔,每个参数允许设置1~4个参数值,第1个参数表示水平半径,第2个参数表示垂直半径,如第2个参数省略,则默认等于第1个参数. ...

  3. python下多线程的限制以及多进程中传递参数的方式

    python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意思,大家都是轮着用的,这叫“并发”,不是 ...

  4. return和yield的区别

    # return 返回给调用者值,并结束此函数.#yiled 返回给调用者值,并将指针停留着当前位置.

  5. JavaScript中的Date,RegExp,Function对象

    Date对象 创建Date对象 //方法1:不指定参数var nowd1=new Date();alert(nowd1.toLocaleString( ));//方法2:参数为日期字符串var now ...

  6. 转:9个offer,12家公司,35场面试 从微软到谷歌,应届计算机毕业生的2012求职之路 !!!

    1,简介 毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾. 首先说说我拿到的offer情况: 微软,3面->终面,搞定 百度,3面->终面,口头of ...

  7. 007-sql整体概述

    一.概述 sql基础:数据库.数据表.行.列.关系 查询: Select 字段1,字段2,* from 表 where 条件 去除重复:Distinct 必须放在所有列前面 区间语句:BETWEEN ...

  8. linux环回文件

    我们通常在设备上(比如磁盘分区)上创建文件系统,这些存储设备能够以设备文件的形式来使用,如/dev/device_name.为了使用存储设备上的文件系统,我们将其挂载到挂载点. 环回文件系统是指那些在 ...

  9. 【转】dmesg 时间转换

    dmesg 时间转换 dmesg 输出的格式不易查看,可以通过命令进行转换. 记录如下: 时间查看: date -d "1970-01-01 UTC `echo "$(date + ...

  10. ODS

    一般在带有ODS的系统体系结构中,ODS都设计为如下几个作用: 1.在业务系统和数据仓库之间形成一个隔离层 一般的数据仓库应用系统都具有非常复杂的数据来源,这些数据存放在不同的地理位置.不同的数据库. ...