一般项目中都会有图片,而图片是不会保存到数据库中的,保存的只是图片的路径,这时候就需要搭建一个图片服务器(可以用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 "%r" %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; } }