Apache虚拟目录转发及防盗链配置
在上网,或在浏览器输入网址时,细心的就会发现,这个网址有很大的学问。一般网站都是通过域来访问的,一些相关的站点就配置了相应的子域名,如本站主域名为:wodedata.com
,其他相关的站点就配置了子域名进行访问,如:my.wodedata.com
,life.wodedata.com
,fdm.wodedata.com
等等。 在购买了域名之后,就可以设置无数个子域名了。当然还有一种方式是在域名后面以/
分隔,设置不路径指向不同的网站内容。 当然还有一种情况就是,java写的web项目布署在tomcat当中,百tomcat服务器不是80端口访问,如果又不想在域名后面加上一个8080端口直接暴露出来,就需要在Apache中设置代理转发到指定端口了。
首先万网添加域名解析A记录:img.wodeata.com
到指定IP地址,然后。。废话不多说了直接上配置代码
虚拟目录及域名关联
- 在CentOS中,直接在conf.d目录下添加一个img.wodedata.com.conf文件;
- 在Ubuntu中,直接在sites-avaliable目录下添加img.wodedata.com.conf文件;
- 开启Apache的rewrite模块;
<VirtualHost *:80>
ServerAdmin luowei@wodedata.com
ServerName img.wodedata.com
ServerAlias img.wodedata.com
# 指定资源目录
DocumentRoot /var/www/img.wodedata.com
# 配置防盗链
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !wodedata.com [NC]
RewriteCond %{HTTP_REFERER} !rootls.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !google.cn [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteRule .*.(json|txt|doc|pdf|mp3|mp4|zip|rar|bmp|png|jpg|gif)$ http://wodedata.com [R,NC,L]
# 配置日志生成目录
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Tomcat端口转发配置
- 在CentOS中,直接在conf.d目录下添加一个my.wodedata.com.conf文件;
- 在Ubuntu中,直接在sites-avaliable目录下添加my.wodedata.com.conf文件;
- 开启Apache的proxy模块;
<VirtualHost *:80>
ServerName my.wodedata.com
ProxyIOBufferSize 8192
ProxyRequests Off
ProxyVia Full
ProxyPass / http://wodedata.com:8080/ smax=5 max=20 ttl=120 retry=300 # 代理到8080端口
ProxyPassReverse / http://wodedata.com:8080/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>