我有Spring Boot 2可执行jar(运行命令java -jar myapp.jar ),我需要将其作为systemd服务部署到远程 linux 服务器。 Jenkins CI将管理从源构建此jar并将其复制到正确的位置并重新启动与myapp.jar
关联的Java服务。 Linux服务器只有一个用户' jonas '使用 sudo特权,以及 jenkins 用户。在生产环境中,从安全最佳实践的角度来看,我需要在{strong> linux 服务器上放置myapp.jar
?可能的位置:
/var/myapplications/myapp.jar
/home/jona/myapplications/myapp.jar
/opt//myapplications/myapp.jar
同样位于myapp.jar
生成的日志文件的位置?
答案 0 :(得分:1)
根据我的经验,我建议将所有第三方和应用程序保留在/opt/{{ app_name }}
如果您喜欢以下结构,您可以关注,这样可以更轻松地部署新工件,并可根据需要快速回滚。
/opt/{{ app_name }}/releases/{{ app_version }}
/opt/{{ app_name }}/current
< - 上面的符号链接
/opt/{{ app_name }}/current/logs
< - 将成为releases/{{ app_version }}
您的部署脚本可以为此创建相应的文件夹,管理权限和符号链接。
我个人喜欢的是确保它在具有适当权限的非特权用户下运行,以确保只有特定用户可以递归地读取/执行/写入目录,其中包括可能包含某些敏感信息的日志被列为例外的一部分,但这完全取决于您的记录方式。