基于TOMCAT简单搭建文件服务器

背景:最近接了个工厂项目,里面有个需求:内网环境中,PAD端和PC端可以预览或下载公共文件,公共文件类别包括但不限于各种图片、媒体格式、PDF、WORD和EXCEL。结合目前工厂实际运维环境,可以总结出关键信息:内网环境安全问题无需过多关注、不考虑上传、允许不同端跨域访问静态资源。

搭建文件服务器方式有多种,下面利用tomcat提供的功能实现文件服务器搭建,本文截图是在windows,其它操作系统基本一致:

1、找到并编辑tomcat安装目录/config/server.xml,在Host元素内新增Context子元素,内容如下,只需要关注Context元素即可,path和docBase值需根据实际填写,以下配置只是我本地配置。

<Host name="localhost"  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" />
		<!-- path属性表示url中映射路径,docBase配置的是磁盘物理路径 -->
		<Context path="/static" docBase="C:/Program Files/Apache Software Foundation/logs" />
      </Host>

Context元素简单来说就是配置一种映射关系,比如通过浏览器访问路径http://localhost:8080/static/info.log,在配置中我们已经把static -> C:/Program Files/Apache Software Foundation/logs,那么tomcat会去C:/Program Files/Apache Software Foundation/logs下查找是否存在info.log文件,如果有则返回内容,否则报404。保存server.xml,启动服务器后,访问http://localhost:8080/static/info.log,效果图如下

2、经过第一步操作我们可以访问静态资源了,还没有结束,我们需要解决跨域问题,由于这个tomcat服务器我们只用做文件服务器且处于内网环境,那么也就是说我们允许所有跨域访问,不需要担心安全以及同源策略等问题。在/Tomcat 9.0/conf一般具有如下配置文件列表:

ps:我们会发现同样有一个web.xml文件,web项目中一般也会有web.xml文件,普及下tomcat服务器中的web.xml一般用来配置下服务器公共配置,包括服务器下项目用到的公共配置,加载顺序是先加载tomcat下的web.xml,然后加载项目的web.xml。所以毫无疑问,如果同样配置,项目web.xml配置会覆盖服务器web.xml配置的内容。

编辑web.xml文件,添加如下内容,稍微说一下添加的位置,可以全局搜索下filter关键字,会有一个filter配置区域,可以在此处配置下面的内容,但不强制要求。如此一来,我们就配置了一个允许所有跨域请求访问的过滤器,来达成不同客户端访问静态资源的需求:

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
  <init-param>
    <param-name>cors.allowed.origins</param-name>
    <param-value>*</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

以上记录,无太深技术难度,只是记录开发过程中易遗忘的点滴技术,方便自己和后来者。

以上,完了!

猜你喜欢

转载自blog.csdn.net/yu102655/article/details/111749211