之前部署 Java 环境的时候 我都是百度搜索按照网上步骤来操作的,先安装 Java ,安装 nginx ,如果需要的话再安装 Redis 和 MySQL ,都是通过 yum 命令。
之前帮朋友搞过一个 PHP 项目,通过宝塔部署的环境,感觉还挺方便,宝塔里面看着也有部署 Java 环境的操作,但是因为用 yum 安装各个软件 感觉也不麻烦,自己部署的时候还是通过 yum 来操作的。
前几天部署一个项目,一起做项目的后台部署的,今天有点问题,我上去想看 nginx 的日志和配置文件,一开始没找到,就问他怎么部署的,他说直接用的宝塔。
所以就想问下各位,在拿到一个新的服务器的时候,需要部署 Java 环境,可能需要把 mysql 和 redis 也安装在服务器上,你们都是用什么办法操作的?
1
sheeta 3 天前 3
docker compose
|
2
StinkyTofus 3 天前 1
我喜欢用宝塔部署 java 项目, 非常方便, 看日志和管理都方便。 不过很多人看不起用服务器面版的, 就喜欢敲命令行的逼格。 我不喜欢浪费时间和记太多东西,越简单越好。
|
3
klo424 3 天前
docker compose + 1
不过我是 dotnet ,哈哈 |
4
dongisking 3 天前
一般都是结合 CICD 和 docker 或者 k8s
|
5
MXMF OP @StinkyTofus
我现在碰到一个问题,某一个接口偶发性的被挂起,然后到超时时间就提示接口超时了。我这边一直复现不了,客户那边基本上每天复现,就很尴尬;不知道你这边有没有碰到过类似的问题,或者给点解决思路 最开始的时候怀疑是客户那边的网络问题,但是他们宽带办理的企业网,按理说是正常的,而且其他所有的接口都是正常的,就这一个接口出现这样的情况,就这个接口出现问题的时候,其他接口也都是正常的,接口返回时间都在 50ms 左右。 最奇葩的一点是,我们测试环境部署的时候,给客户试用了一两个月,从来没出现这个问题,但是正式环境部署之后 立马出现这个问题了,目前两个服务器唯一的区别就是测试服务器是我手动安装的配置,正式服务器是同事使用宝塔安装的,我这边找日志找不到,他那边也找不到问题所在,客户每天必出现这个问题,然后就卡住了。 我不反对用任何提升效率的工具,但是用了得懂,不能纯粹为了方便而用,出了问题都定位不到问题在哪 |
6
StinkyTofus 3 天前
@MXMF #5 这个只能去打日志, 在程序内去找 bug 呀, 和部署方式没啥关系吧。 而且是自己请求的 java 程序的 http 接口, 还是 nginx 反向代理的, 先确定卡在哪一层了。
|
7
wangxin3 3 天前
docker compose +1 ,如果是多机器要搭 docker 集群,各位是怎么弄得,我是用的 docker swarm
|
8
seamonster 3 天前
docker compose + 1
|
9
adoal 3 天前 3
我尽量用(以及要求乙方的团队来我这里做项目实施时用)发行版打的 deb/rpm 包,或者开源软件的上游“原厂”打的 deb/rpm 包。因为这样的包在文件布局上符合 FSH ,这样我可以凭着经验找到自己需要的文件未知,不论我没用过的什么新软件,都不会给我制造 suprise ,增加心智成本。
如果你见过在同一个项目同一台服务器上 /usr/local/software_name 、 /opt/vendor_name/software_name 、 /home/vendor_name/software_name 、 /srv/project_name/software_name 共存,并且 software_name 有的带版本号有的不带,而同一个 software 的 bin 、config 、logs 都在这个形式不可控的前缀路径下,而且更特么要死的是有的软件会好几个版本都装着,不话点心思根本不知道实际跑的是哪个,软件的启停要登录进去手工开,甚至 nohup 挂后台……然后交付的文档里并没有更新到跟实际情况一致时,你就会像我一样认为,FHS 大法好,FHS 大法妙,FHS 大法呱呱叫。 |
10
adoal 3 天前
#9 文件未知 => 文件位置
|
11
adoal 3 天前
另外,当然,docker 可以在一定程度上掩盖这些混乱的问题,当然,也只是掩盖
|
12
me1onsoda 3 天前
docker 真是省心省力
|
13
huangmingyou 3 天前
@StinkyTofus 遇到问题,debug 就很头疼
|
14
weenhall5 3 天前 1
从手动到 docker 到 k8s 可视化部署,devops 的魅力
|
15
superchijinpeng 3 天前
k8s
|
16
joyhub2140 3 天前
docker ,不过我们不打包到镜像,只作为运行容器,外挂 jar 包来执行。
|
17
rlds 3 天前
java 项目我们基本都是打包镜像丢 docker 或者 k8s 跑
|
18
lyusantu 3 天前
个人就随便用呗,我开发环境本机用的是是 PhpStudy 的 MySQL+Nginx ,虚拟机用的是宝塔面板
服务器上用的是 Docker Compose 部署 MySQL Redis Minio 等服务,Java 还是 jar 包部署的 |
19
xubeiyou 3 天前
@lyusantu 麻烦问个问题 minio 我们之前权限设置为 public 然后直接 URL 可以下载,如果希望添加权限校验,只有登录了的才可以下载怎么处理?你们是怎么处理 minio URL 权限问题和安全问题的?
|
20
alsas 3 天前
docker 简单快速
|
21
n43635 3 天前
java 直接用 docker 就可以了,现在也都会在工程代码里放一个 dockerfile 方便打包,mysql 、redis 这类需要持久化的 linux 直接安装就好
线上 java 一般也是放 docker 或者 k8s 里,数据库持久化直接买云服务的 日志的话直接 docker logs 就能看了,也可以映射到本地 log 文件上,后期也可以用 grafana 、elk 做日志收集 宝塔也确实好用的,但是时不时爆出安全漏洞有点难绷 |
22
spritecn 3 天前
java -jar
|
23
feitxue 3 天前
|
24
qiany 3 天前
apt install mysql-server jdk
|
25
kd9yYw2RyhQwAwzn 2 天前
docker/k8s
|
28
Nosub 2 天前
部署 Java 不需要 nginx ,打包成 jar 的包后,在服务器安装 Java 环境后,用命令行执行 jar 就可以了,Linux 加入后台运行的参数,Windows 平台可以不用管这些。
|
30
weilai99 2 天前
@MXMF 打印下 gc 日志,看看有没有 full gc ,时间多少,或者写个 shell 监控,curl ,每秒请求下这个接口,啥时候超时了,就去看到底啥原因,大概率是在 full gc ,可以用 jstat 和 jmap 看下
|
31
886600 2 天前
docker compose + 1
|