使用nginx作为文件服务器来读取由tomcat创建的文件(mysql 如何跨服务器读取数据库)

使用Ubuntu 20, tomcat 9, nginx 1.18后台业务需求,使用Java程序上传图片,并使用nginx作为文件服务器读取步骤安装tomcat &以下两篇文章有详细的介绍,你可以参考他们的步骤安装如何安装Apache Tomcat Server在Ubuntu 20.04

使用Ubuntu 20, tomcat 9, nginx 1.18

背景

业务需求,使用Java程序上传图片,并使用nginx作为文件服务器读取

一步

安装tomcat &nginx

下面两篇文章都有详细的介绍,您可以参考它们的安装步骤

如何在Ubuntu 20.04上安装Apache Tomcat服务器

如何在Ubuntu 20.04上安装Nginx

创建一个目录来存储上传的图像

假设图像存储在/a/b/向上load/图片,创建目录

顺序:mkdir /a/b/向上load/图片,

紧随其后的是图片目录的所有者和所有组更改为tomcat: tomcat

顺序:chown -R tomcat: tomcat /a/b/向上load/图片 . chown -R tomcat

Nginx配置反向代理

添加配置文件

nginx配置路径:d / etc / nginx上。

在conf.d中,创建image-server.conf(这个image-server.conf文件的名称可以根据你的项目的需要更改),nginx.conf将包含它,不需要直接修改nginx.conf

存在image-server.conf,写

server {
listen 8081; # You can modify the listening port according to your actual situation, remember to add corresponding firewall rules, security gro向上s, etc.
server_name localhost;
location /图片/ {
root /a/b/向上load;
}
}

保存并返回到命令行。

然后重新加载nginx配置

顺序:Sudo systemctl reload nginx.service

测试反向代理

存在/a/b/向上load/图片添加一张图片(假设名称为lion.png)

然后在浏览器中访问localhost: 8081 /图片/ lion.png你可以看这张照片

配置tomcat catalinaUMASK

由于tomcat’s的安全策略,请将tomcat创建的文件的权限设置为640,导致不同组的nginx没有读权限

然后我在网上搜索了一个解决方案,修改UMASK是主流的解决方案。具体步骤如下:

修改UMASK

UMASK位于CATALINA_HOME美元,一开始我不能通过echo $ CATALINA_HOME找到它;
然后我突然想到切换到根目录,并使用查找“catalina.sh”来找它,找到了

catalina.sh躺在/usr/share/tomcat9/bin

开放catalina.sh,通过阅读它的描述,我发现不应该直接修改catalina.sh相反,你应该创造内容setenv.sh,然后在setenv.sh在里面添加要设置的参数

所以,在catalina.sh在同一目录下,创建setenv.sh

顺序:我来了,将内容添加为

UMASK=0022

重启tomcat

指令:' sudo systemctl reload tomcat9.service

测试tomcat创建文件

`

此时,tomcat创建的文件的权限变为644向上

参考文献

Tomcat9文件权限更改

Apache Tomcat 9 –安全注意事项

JAVA

SpringBoot基于LoopAuth快速实现认证系统(基于大数据快速可视化系统的设计)

2023-1-18 13:25:40

JAVA

mapStruct使用(mapstruct使用教程)

2023-1-18 13:27:38

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索