/////////////////////////////////写在前头////////////////////////////////////////
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. EasyNVR浏览器无插件直播在Linux系统下将录像文件与EasyNVR可执行文件分离运行的方案

    问题背景 在工控机上运行EasyNVR,WEB访问出现设备在线,但是视频没有快照和无法正常直播: 问题原因分析 通过上工控机发现是由于磁盘空间被占满导致的软件运行收到影响. 解决问题分析 由于录像文件 ...

  2. idea 不能编译生成class文件

    问题:开发工程中将idea中编译输出目录 out 删掉.发现再次编译不能生成class文件 解决方案:settings -> compiler 勾选自动编译选项

  3. 阿里云服务器 进行zookeeper集群时候的肯!

    首先我本地虚拟机 部署过N次没什么问题! 擦,上了云就启动后不能正常节点之间连接和发现! 这上面有手误 擦,吧编号的2 打成22 了,这个看下日志就解决了 重点是zoo.conf 中的IP进行配置时候 ...

  4. PHP与ASP转义双引号的区别

    PHP: 转义双引号:\" ASP: 转义双引号:"" PHP与ASP转义双引号的区别

  5. 使用QFileInfo类获取文件信息(在NTFS文件系统上,出于性能考虑,文件的所有权和权限检查在默认情况下是被禁用的,通过qt_ntfs_permission_lookup开启和操作。absolutePath()必须查询文件系统。而path()函数,可以直接作用于文件名本身,所以,path() 函数的运行会更快)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Amnes1a/article/details/65444966QFileInfo类为我们提供了系统无 ...

  6. ThinkPHP的create方法的一系列操作

    1.数据操作状态 create方法的第二个参数可以指定数据的操作状态,默认是自动判断的(写入[Model:MODEL_INSERT或者1].更新[Model:MODEL_UPDATE或者2].也可以自 ...

  7. random模块一些常用的东西

    import random#一.随机小数# (1)大于0且小于1之间的小数print(random.random())# (2)大于1且小于9之间的小数print(random.uniform(0,9 ...

  8. python多进程编程(一)

    multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程.Pyt ...

  9. make编译四

    书写命令 每条规则中的命令和操作系统 Shell 的命令行是一致的. make 会按顺序一条一条的执行命令, 每条命令的开头必须以[Tab]键开头, 除非,命令是紧跟在依赖规则后面的分号后的.在命令行 ...

  10. 从1到N中1的个数

    示例1,2...9,10,11中有四个1 int getNumber(int n) { int count = 0; int factor = 1; int low = 0; int cur = 0; ...