应用和图片共用tomcat共用域名


        一般项目中都会有图片,而图片是不会保存到数据库中的,保存的只是图片的路径,这时候就需要搭建一个图片服务器(可以用tomcat或nginx,这里使用tomcat ,nginx可以参考【使用nginx作为图片服务器】)。

加上应用需要一个服务器。应用访问有域名,图片访问也有域名。不缺资源的时候可以用2个服务器和2个域名。

其实也可以共享服务器和域名。

如应用访问域名地址:http://www.xxx.com

图片访问地址为:       http://www.xxx.com/pic/xxxxxx.png


tomcat中做如下配置即可

<Host name="www.xxx.com"  appBase="webapps"
	unpackWARs="true" autoDeploy="true">

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
	   prefix="localhost_access_log" suffix=".txt"
	   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
		<!-- 项目存放路径 -->
	   <Context path="" docBase="/usr/local/WebApp" />
	   
	   <!-- 图片存放路径 /usr/local/WebApp/images/001.jpg ……  -->
	   <Context path="/pic" docBase="/usr/local/WebApp/images" />
</Host>


如果tomcat前面有nginx,则nginx配置如下,通过proxy_pass,将请求转到tomcat。

#注意nginx中路径匹配优先级

server {
	listen       80 ;
	server_name  www.xxx.com ;

	if ($host != 'www.xxx.com') {
	   return 404 ;
	}

	location ^~ /pic/ {    #注意nginx中路径匹配优先级
		proxy_pass  http://localhost:8080/pic/  ;
		proxy_set_header   Host             $host;
		proxy_set_header   X-Real-IP        $remote_addr;
		proxy_set_header REMOTE-HOST $remote_addr;
		proxy_set_header   HTTP-X-Forwarded-For  $remote_addr;
	}

	location / {
		proxy_pass http://localhost:8080 ;
		proxy_set_header   Host             $host;
		proxy_set_header   X-Real-IP        $remote_addr;
		proxy_set_header REMOTE-HOST $remote_addr;
		proxy_set_header   HTTP-X-Forwarded-For  $remote_addr;
	}
}




tomcat nginx

2020.11.18 00:04

https://www.meihaocloud.com.com/392.html , 欢迎转载,请在文章页标出原文连接 !


Copyright © 2020 千夕网 联系站长

粤公网安备 44030302001408号 粤ICP备19099833号-1