Apache虚拟目录转发及防盗链配置

在上网,或在浏览器输入网址时,细心的就会发现,这个网址有很大的学问。一般网站都是通过域来访问的,一些相关的站点就配置了相应的子域名,如本站主域名为:wodedata.com ,其他相关的站点就配置了子域名进行访问,如:my.wodedata.com,life.wodedata.com,fdm.wodedata.com等等。 在购买了域名之后,就可以设置无数个子域名了。当然还有一种方式是在域名后面以/分隔,设置不路径指向不同的网站内容。 当然还有一种情况就是,java写的web项目布署在tomcat当中,百tomcat服务器不是80端口访问,如果又不想在域名后面加上一个8080端口直接暴露出来,就需要在Apache中设置代理转发到指定端口了。

首先万网添加域名解析A记录:img.wodeata.com 到指定IP地址,然后。。废话不多说了直接上配置代码

虚拟目录及域名关联

  1. 在CentOS中,直接在conf.d目录下添加一个img.wodedata.com.conf文件;
  2. 在Ubuntu中,直接在sites-avaliable目录下添加img.wodedata.com.conf文件;
  3. 开启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端口转发配置

  1. 在CentOS中,直接在conf.d目录下添加一个my.wodedata.com.conf文件;
  2. 在Ubuntu中,直接在sites-avaliable目录下添加my.wodedata.com.conf文件;
  3. 开启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>  
 

版权所有,转载请注明出处 luowei.github.io.