/////////////////////////////////写在前头////////////////////////////////////////
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. POJ 1408 Fishnet【枚举+线段相交+叉积求面积】

    题目: http://poj.org/problem?id=1408 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22013#probl ...

  2. Shiro 页面权限标签

    http://www.cnblogs.com/jifeng/p/4500410.html  不整理了,直接看人家写好的

  3. 基础篇-java开发

    开局必知 1.变量 在java中,以{}为作用域,所以就存在成员变量和局部变量之说 由于java是强类型语言,所以在申明变量的时候,必须指定类型 java里,一个变量有声明过程和初始化过程(也就是赋值 ...

  4. Model的save方法的使用

    在使用类方法创建对象的时候发生save()总提示缺少self参数的错误: class BookInfo(models.Model): #创建书本信息类,继承models.Model booktitle ...

  5. 让linux进程后台运行、会话断开不退出

    方法一:nohup ping www.ibm.com & 可改变进程的父进程号方法二:setsid ping www.ibm.com 可改变进程的父进程号方法三:(ping www.ibm.c ...

  6. Android怎样在http头信息里设置參数

    在使用http请求server时经常要传递一些參数给server.如IMEI号.平台号.渠道号.client的版本等一些通用信息,像这些參数我们没有必要每次都拼在url后,我们能够统一加入到http头 ...

  7. 前端基础之Bootstrap介绍

    bootstrap简介 http://v3.bootcss.com/ Bootstrap优点:  下载:  Bootstrap引入 <meta name="viewport" ...

  8. requirejs源码分析: config中shim

    shim处理的源码: //Merge shim                 if (cfg.shim) {                     eachProp(cfg.shim, funct ...

  9. Ubuntu 16.04 php卸载

    1.卸载 apache2 sudo apt-get --purge remove apache2* sudo apt-get autoremove apache2 (--purge 是完全删除并且不保 ...

  10. 深入浅出Node.js(上)

    (一):什么是Node.js Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS创始人Ryan Dalh加盟 ...