本帖最后由 soul 于 2016-2-2 19:11 编辑
内容都是今天复习期间整理出来的,供新入门的同学参考(懂的同学略过就可以了),有不对的地方希望指正。
正文: 会在1楼给出整个的配置,要用的直接拷贝走自己改改就可以。
打开apache的虚拟主机配置文件 vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
配置默认虚拟主机(禁止直接用IP访问)需单独配置一个位置。
此配置默认在一个同端口的正确配置文件的上面
DocumentRoot "/tmp/123" 这里配置的路径是空的,记得配置完成后创建一个
ServerName gasdgsdfg.com 后面的那个gasdgsdfg.com是乱打的。
默认虚拟主机配置为的是不让别人通过IP来访问网站。
主配置开头
<-- 一个虚拟主机的配置开头。后面的80是端口。
主配置(定义域名/网站的文件路径/包括日志文件路径)
DocumentRoot "/data/www/" 这里的路径为网站的根目录
ServerName www.test.com 主域名
ServerAlias www.dddd.com 域名别名
ErrorLog "logs/test.com-error_log" 错误日志
SetEnvIf Request_URI ".*\.gif$" aaaaaa 这里几行绿色的是指定日志不记录的文件类型,后面的6个a是别名将在后面调用。
SetEnvIf Request_URI ".*\.jpg$" aaaaaa
SetEnvIf Request_URI ".*\.png$" aaaaaa
SetEnvIf Request_URI ".*\.bmp$" aaaaaa
SetEnvIf Request_URI ".*\.swf$" aaaaaa
SetEnvIf Request_URI ".*\.js$" aaaaaa
SetEnvIf Request_URI ".*\.css$" aaaaaa 这里的aaaaaa在日志切割的尾部以绿色的底标注。已经被启用,意思是不记录此类文件。
##下一列是加了日志切割的功能的访问日志。
CustomLog "|/usr/lcoal/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" combined env =!aaaaaa 绿色是指定前面的不记录文件类型 这行配置的红色字体可以是common也可以是combined 相对用combined比较好点因为会记录的更详细一些。
配置静态缓存
此处为参数开始 expires.c 这是一个让对方浏览器进行信息缓存的模块。
ExpiresActive on 此处为on则开启静态缓存,off则关闭。
ExpiresByType image/gif "access plus 1 days" gif 类动态图片信息 缓存1天 也是两小时。
ExpiresByType image/jpeg "access plus 24 hours" jpeg 类的图片信息 缓存24小时。
ExpiresByType image/png "access plus 24 hours" png 类的图片信息 缓存24小时。
ExpiresByType text/css "now plus 2 hour" css 类的信息 缓存2小时。
ExpiresByType application/x-javascript "now plus 2 hours" 此类信息缓存2小时。
ExpiresByType application/javascript "now plus 2 hours" 此类信息缓存2小时。
ExpiresByType application/x-shockwave-flash "now plus 2 hours" flash缓存2小时。
ExpiresDefault "now plus 0 min" 其他信息不缓存。
此处为上列参数的结束位置,缺一参数则不完整。
301跳转
rewrote.c 这个模块作用于域名定向的领域
RewriteEngine on 这里表示开启域名跳转功能on为开启off为关闭
RewriteCond %{HTTP_HOST} ^www.aaa.com$ 这里表示的是你输入这个域名将会跳转到下面那个主域名,这将是一个次域名。
RewriteRule ^(.*)$ http://www.test.com/$1 [R=301,L] 这里是主域名,前面的^/(.*)$表示的是跳转之前那个域名的.com 后面跟的内容是没有限制的,而域名后面的$1 表示的是只能跟一个/.*不能再深入的跟。[]中括号里面的R表示的是状态 状态等于301,L 逗号后面的L表示的是结束了,跳转到这里结束。
至此结束
这也是301跳转,当一个网站有两个以上的自定义域名的时候用另一种方案
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.tast.com$ 表示 定义的域名只要不是这个的就进行跳转,不用写上很多句,只要是当前配置中存在的域名都算。
RewriteRule ^/(.*)$ http://www.tast.com/$1 [R=301,L]
记得结束
这里和301调用的同一个模块,可以独立存放也可以将非重复内容加入到那个模块中去。至于在什么位置,同学们都懂的。
RewriteEngine on
# RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC,OR] ^符号前面的内容表示定义后面的条件,后面用两个.*.*将curl包括在中间,表示curl相关的访问将被拒绝中括号里面的NC表示匹配的内容不区分大小写,OR表示还要再加一条
# RewriteCond %{HTTP_USER_AGENT} ^.*chrome.* [NC] 像这里没有在中括号里面加OR 就表示到这里结束了,如果要继续加禁止项则需要在总括号里面加上 ,OR 下面继续这样泡制就可以了。
# RewriteRule .* - [F] 这里就是开始禁止
RewriteCond %{REQUEST_URI} ^.*/tmp/.* [NC] 在这里限制的tmp目录只要是在浏览器访问的时候带上了这个目录的访问,都会被拒绝掉。用于绝密文件的存放,除了服务器上能查看到。其他的都不行。
RewriteRule .* - [F] 这里是开始禁止
用户名认证,防止秘密文件被普通用户所访问。
[/url] 此处路径为特殊成员可以访问的路径,里面存放一些重要的信息。
AllowOverride AuthConfig
AuthName "******" 这边双引号里面的内容可以随便填,作为一个提示的作用。
AuthType Basic
AuthUserFile /data/.htpasswd 此处可以自定义但要求是,在创建虚拟用户的时候存放密码资料的路径要和这里同步。
require valid-user
访问控制
[/url] 这里路径指向网站根目录
AllowOverride None
Options None
Order allow,deny # allow和deny的先后循序影响后面的配置哪个先生效,也是决定生成白名单还是黑名单的关键要素
Allow from all #本意是允许所有,如果是白名单配置则将all换成允许的IP
Deny from 127.0.0.1 #本意是禁止一个IP 如果是黑名单配置则将IP换成all
配置防盗链
SetEnvIfNoCase Referer "^http://.*\.test\.com" local_ref 这里是自己网址的白名单 这里尾部的 local_ref 是定义的一个变量在这段配置的结尾处有用,定义名可以自定义,但所有白名单的定义名必须要一样
SetEnvIfNoCase Referer ".*\.aaa\.com" local_ref 可以设置多个 如果还要再加域名将前面SetEnvIfNoCase Referer这个内容复制另起一行按上面的格式写好即可。
这是防盗链的对应文件
Order Allow,Deny 选择允许或者拒绝
Allow from env=local_ref 将前面定义的变量 作为允许的内容填写在这
配置到此结束
禁止指定目录解析PHP
[/url] 这里最后的data表示的是网站根目录下的一个data目录,里面存放的是用户上传的一些文件的缓存信息
php_admin_flag engine off 这里是关闭php的解析功能,但是如果不继续配置的话,网站会将php文件下载走。
从这里开始应该是禁止php文件的上传和下载
Order deny,allow 在这排列先生效的顺序deny或者allow
Deny from all Deny禁止所有的ip
Allow from 127.0.0.1 允许的一个IP 这里的一个IP最好是任何网络都不能访问到的。
禁止下载的配置到这里结束
禁止解析的配置到这里结束
<-- 一个虚拟主机的配置结尾
内容都是今天复习期间整理出来的,供新入门的同学参考(懂的同学略过就可以了),有不对的地方希望指正。
正文: 会在1楼给出整个的配置,要用的直接拷贝走自己改改就可以。
打开apache的虚拟主机配置文件 vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
配置默认虚拟主机(禁止直接用IP访问)需单独配置一个位置。
此配置默认在一个同端口的正确配置文件的上面
DocumentRoot "/tmp/123" 这里配置的路径是空的,记得配置完成后创建一个
ServerName gasdgsdfg.com 后面的那个gasdgsdfg.com是乱打的。
默认虚拟主机配置为的是不让别人通过IP来访问网站。
主配置开头
<-- 一个虚拟主机的配置开头。后面的80是端口。
主配置(定义域名/网站的文件路径/包括日志文件路径)
DocumentRoot "/data/www/" 这里的路径为网站的根目录
ServerName www.test.com 主域名
ServerAlias www.dddd.com 域名别名
ErrorLog "logs/test.com-error_log" 错误日志
SetEnvIf Request_URI ".*\.gif$" aaaaaa 这里几行绿色的是指定日志不记录的文件类型,后面的6个a是别名将在后面调用。
SetEnvIf Request_URI ".*\.jpg$" aaaaaa
SetEnvIf Request_URI ".*\.png$" aaaaaa
SetEnvIf Request_URI ".*\.bmp$" aaaaaa
SetEnvIf Request_URI ".*\.swf$" aaaaaa
SetEnvIf Request_URI ".*\.js$" aaaaaa
SetEnvIf Request_URI ".*\.css$" aaaaaa 这里的aaaaaa在日志切割的尾部以绿色的底标注。已经被启用,意思是不记录此类文件。
##下一列是加了日志切割的功能的访问日志。
CustomLog "|/usr/lcoal/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" combined env =!aaaaaa 绿色是指定前面的不记录文件类型 这行配置的红色字体可以是common也可以是combined 相对用combined比较好点因为会记录的更详细一些。
配置静态缓存
此处为参数开始 expires.c 这是一个让对方浏览器进行信息缓存的模块。
ExpiresActive on 此处为on则开启静态缓存,off则关闭。
ExpiresByType image/gif "access plus 1 days" gif 类动态图片信息 缓存1天 也是两小时。
ExpiresByType image/jpeg "access plus 24 hours" jpeg 类的图片信息 缓存24小时。
ExpiresByType image/png "access plus 24 hours" png 类的图片信息 缓存24小时。
ExpiresByType text/css "now plus 2 hour" css 类的信息 缓存2小时。
ExpiresByType application/x-javascript "now plus 2 hours" 此类信息缓存2小时。
ExpiresByType application/javascript "now plus 2 hours" 此类信息缓存2小时。
ExpiresByType application/x-shockwave-flash "now plus 2 hours" flash缓存2小时。
ExpiresDefault "now plus 0 min" 其他信息不缓存。
此处为上列参数的结束位置,缺一参数则不完整。
301跳转
rewrote.c 这个模块作用于域名定向的领域
RewriteEngine on 这里表示开启域名跳转功能on为开启off为关闭
RewriteCond %{HTTP_HOST} ^www.aaa.com$ 这里表示的是你输入这个域名将会跳转到下面那个主域名,这将是一个次域名。
RewriteRule ^(.*)$ http://www.test.com/$1 [R=301,L] 这里是主域名,前面的^/(.*)$表示的是跳转之前那个域名的.com 后面跟的内容是没有限制的,而域名后面的$1 表示的是只能跟一个/.*不能再深入的跟。[]中括号里面的R表示的是状态 状态等于301,L 逗号后面的L表示的是结束了,跳转到这里结束。
至此结束
这也是301跳转,当一个网站有两个以上的自定义域名的时候用另一种方案
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.tast.com$ 表示 定义的域名只要不是这个的就进行跳转,不用写上很多句,只要是当前配置中存在的域名都算。
RewriteRule ^/(.*)$ http://www.tast.com/$1 [R=301,L]
记得结束
这里和301调用的同一个模块,可以独立存放也可以将非重复内容加入到那个模块中去。至于在什么位置,同学们都懂的。
RewriteEngine on
# RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC,OR] ^符号前面的内容表示定义后面的条件,后面用两个.*.*将curl包括在中间,表示curl相关的访问将被拒绝中括号里面的NC表示匹配的内容不区分大小写,OR表示还要再加一条
# RewriteCond %{HTTP_USER_AGENT} ^.*chrome.* [NC] 像这里没有在中括号里面加OR 就表示到这里结束了,如果要继续加禁止项则需要在总括号里面加上 ,OR 下面继续这样泡制就可以了。
# RewriteRule .* - [F] 这里就是开始禁止
RewriteCond %{REQUEST_URI} ^.*/tmp/.* [NC] 在这里限制的tmp目录只要是在浏览器访问的时候带上了这个目录的访问,都会被拒绝掉。用于绝密文件的存放,除了服务器上能查看到。其他的都不行。
RewriteRule .* - [F] 这里是开始禁止
用户名认证,防止秘密文件被普通用户所访问。
[/url] 此处路径为特殊成员可以访问的路径,里面存放一些重要的信息。
AllowOverride AuthConfig
AuthName "******" 这边双引号里面的内容可以随便填,作为一个提示的作用。
AuthType Basic
AuthUserFile /data/.htpasswd 此处可以自定义但要求是,在创建虚拟用户的时候存放密码资料的路径要和这里同步。
require valid-user
访问控制
[/url] 这里路径指向网站根目录
AllowOverride None
Options None
Order allow,deny # allow和deny的先后循序影响后面的配置哪个先生效,也是决定生成白名单还是黑名单的关键要素
Allow from all #本意是允许所有,如果是白名单配置则将all换成允许的IP
Deny from 127.0.0.1 #本意是禁止一个IP 如果是黑名单配置则将IP换成all
配置防盗链
SetEnvIfNoCase Referer "^http://.*\.test\.com" local_ref 这里是自己网址的白名单 这里尾部的 local_ref 是定义的一个变量在这段配置的结尾处有用,定义名可以自定义,但所有白名单的定义名必须要一样
SetEnvIfNoCase Referer ".*\.aaa\.com" local_ref 可以设置多个 如果还要再加域名将前面SetEnvIfNoCase Referer这个内容复制另起一行按上面的格式写好即可。
这是防盗链的对应文件
Order Allow,Deny 选择允许或者拒绝
Allow from env=local_ref 将前面定义的变量 作为允许的内容填写在这
配置到此结束
禁止指定目录解析PHP
[/url] 这里最后的data表示的是网站根目录下的一个data目录,里面存放的是用户上传的一些文件的缓存信息
php_admin_flag engine off 这里是关闭php的解析功能,但是如果不继续配置的话,网站会将php文件下载走。
从这里开始应该是禁止php文件的上传和下载
Order deny,allow 在这排列先生效的顺序deny或者allow
Deny from all Deny禁止所有的ip
Allow from 127.0.0.1 允许的一个IP 这里的一个IP最好是任何网络都不能访问到的。
禁止下载的配置到这里结束
禁止解析的配置到这里结束
<-- 一个虚拟主机的配置结尾
0
DocumentRoot "/tmp/123"
ServerName gasdgsdfg.com
DocumentRoot "/data/www/"
ServerName www.test.com
ServerAlias www.dddd.com
ErrorLog "logs/test.com-error_log"
SetEnvIf Request_URI ".*\.gif$" aaaaaa
SetEnvIf Request_URI ".*\.jpg$" aaaaaa
SetEnvIf Request_URI ".*\.png$" aaaaaa
SetEnvIf Request_URI ".*\.bmp$" aaaaaa
SetEnvIf Request_URI ".*\.swf$" aaaaaa
SetEnvIf Request_URI ".*\.js$" aaaaaa
SetEnvIf Request_URI ".*\.css$" aaaaaa
CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" combined env=!aaaaaa
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/javascript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2 hours"
ExpiresDefault "now plus 0 min"
SetEnvIfNoCase Referer "^http://.*\.test\.com" local_ref
SetEnvIfNoCase Referer "^http://.*\.dddd\.com" local_ref
SetEnvIfNoCase Referer "^http://.*\.aminglinux\.com" local_ref
Order Allow,Deny
Allow from env=local_ref
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.dddd.com$
RewriteRule ^(.*)$ http://www.test.com/$1 [R=301,L]
# RewriteCond %{HTTP_USER_AGENT} ^.*chrome.* [NC,OR]
# RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC]
# RewriteRule .* - [F]
RewriteCond %{REQUEST_URI} ^.*/tmp/.* [NC]
RewriteRule .* - [F]
AllowOverride None
Options None
Order allow,deny
Allow from all
Deny from 127.0.0.1
AllowOverride AuthConfig
AuthName "******"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
DocumentRoot "/tmp/123"
ServerName gasdgsdfg.com
DocumentRoot "/data/www/"
ServerName www.test.com
ServerAlias www.dddd.com
ErrorLog "logs/test.com-error_log"
SetEnvIf Request_URI ".*\.gif$" aaaaaa
SetEnvIf Request_URI ".*\.jpg$" aaaaaa
SetEnvIf Request_URI ".*\.png$" aaaaaa
SetEnvIf Request_URI ".*\.bmp$" aaaaaa
SetEnvIf Request_URI ".*\.swf$" aaaaaa
SetEnvIf Request_URI ".*\.js$" aaaaaa
SetEnvIf Request_URI ".*\.css$" aaaaaa
CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" combined env=!aaaaaa
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/javascript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2 hours"
ExpiresDefault "now plus 0 min"
SetEnvIfNoCase Referer "^http://.*\.test\.com" local_ref
SetEnvIfNoCase Referer "^http://.*\.dddd\.com" local_ref
SetEnvIfNoCase Referer "^http://.*\.aminglinux\.com" local_ref
Order Allow,Deny
Allow from env=local_ref
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.dddd.com$
RewriteRule ^(.*)$ http://www.test.com/$1 [R=301,L]
# RewriteCond %{HTTP_USER_AGENT} ^.*chrome.* [NC,OR]
# RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC]
# RewriteRule .* - [F]
RewriteCond %{REQUEST_URI} ^.*/tmp/.* [NC]
RewriteRule .* - [F]
AllowOverride None
Options None
Order allow,deny
Allow from all
Deny from 127.0.0.1
AllowOverride AuthConfig
AuthName "******"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
编辑回复