使用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 –安全注意事项
