/////////////////////////////////写在前头////////////////////////////////////////
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. 图片热区——map的用法

    <area>标记主要用于图像地图,通过该标记可以在图像地图中设定作用区域(又称为热点),这样当用户的鼠标移到指定的作用区域点击时,会自动链接到预先设定好的页面.其基本语法结构如下: 1 & ...

  2. GDI+绘制图形和画刷填充图形

    GDI+可以再Windows窗体应用程序中以编程方式绘制图形等. 可以在VS里新建项目-Windows窗体应用程序-建一个窗体.首先引入命名空间using System.Drawing.Imaging ...

  3. LR回放https协议脚本失败:[GENERAL_MSG_CAT_SSL_ERROR]connect to host "XXX" failed:[10054] Connection reset by peer [MsgId:MERR-27780]

    最近做一个负载均衡项目的性能测试,使用LR录制脚本协议为https协议,回放脚本时出现报错: [GENERAL_MSG_CAT_SSL_ERROR]connect to host "XXX& ...

  4. MySQL版本升级5.6到5.7版本

    从5.6升级到5.7版本,5.7的版本为5.7.17 升级的过程还是比较简单,需要注意几个点 1.下载对应的包 2.备份整个数据库 3.使用升级参数 1.下载 # wget "https:/ ...

  5. 预防SQL注入攻击

    /** * 预防SQL注入攻击 * @param string $value * @return string */ function check_input($value) { // 去除斜杠 if ...

  6. nginx负载均衡详情

    负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...

  7. Ubuntu16.04下编译android6.0源码

    http://blog.csdn.net/cnliwy/article/details/52189349 作为一名合格的android开发人员,怎么能不会编译android源码呢!一定要来一次说编译就 ...

  8. qt5.4.1的imx6编译

    2.到https://download.qt.io/archive/qt/5.4/5.4.1/single/下载源码包qt-everywhere-opensource-src-5.4.1.tar.gz ...

  9. JSP Cookie状态管理

    JSP中创建与使用Cookie 创建Cookie对象 Cookie newCookie = new Cookie(String key, Object value); 写入Cookie对象 respo ...

  10. Centos7 关闭Ipv6