Java项目从零开始,部署服务到上线运行
一、准备一台服务器
可以在阿里云上购买一台简单点的服务器,系统选择CentOS的,我用的是CentOS 7.6版本。
二、jdk安装
安装java的jdk。
-
直接yum安装1.8.0版本openjdk
yum install java-1.8.0-openjdk* -y
-
java -version 查看安装的jdk版本
[root@localhost ~]# java -version openjdk version "1.8.0_161" OpenJDK Runtime Environment (build 1.8.0_161-b14) OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
默认的情况下 jre jdk 安装路径是 /usr/lib/jvm 目录下面。你通过 cd 命令切换到 /usr/lib/jvm下,大概是这样的结构。红框选中的就是我的openjdk,记住这个,下面修改配置是会用到的。
-
切换到 etc的目录下。
# cd /etc
这个目录下面存放的都是一些系统配置,找到 profile文件,这里有两种方式去编辑它,第一种是通过 xftp直接把这个文件复制下来,然后你编辑好在粘贴回去;第二种是在线编辑。第一种方式比较简单,我推荐用这种。
打开profile文件,将
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
放在最下面就可以了, JAVA_HOME的值就是我之前红框选中的内容。
保存这个文件。
三、准备项目jar包
将你的java项目打成对应的jar包就可以了。
四、准备脚本命令,方便启动项目
项目运行我们可以直接通过命令,java -jar 的命令去运行,但是为了后期的方便,这边可以写一个简易的脚本去执行。
1.新建一个sh文件 --> start.sh,将text的文件后缀改成sh就行,将下面的四行复制进去,修改对应的配置并保存,这个文件直接放到你项目jar所在的目录就行。
cd /home/app/test/ // 这里指的是你项目jar包放的目录 我这边是放在test下面 ps -ef |grep test |grep -v grep |awk '{print $2}'|xargs kill -9 | ps -ef | grep test // 这边的test要修改成你对应的目录名 BUILD_ID=dontKillMe nohup java -jar test-0.0.1-SNAPSHOT.jar > nohup.out 2>&1 & // 这是项目打出来的jar包 test-0.0.1-SNAPSHOT.jar
2.通过sh start.sh 命令启动
sh start.sh
这样你的项目jar包就运行了,每次你替换到项目,直接运行这个脚本就行。
五、域名申请
域名的申请和购买途径比较多,最好和你的服务器是同一个体系,如果你用阿里云那就再阿里云上买,你是腾讯云就在腾讯云上买,你要是购买cn的域名还需要审核的,可能会比较慢。
六、nginx安装
1.安装nginx相关的环境
yum install -y gcc-c++pcre pcre-develzlib zlib-developenssl openssl-devel
2.切换目录(一般来说,可以将nginx安装在这个目录下比较方便)
cd /usr/local
3.下载你所需要的nginx压缩包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
4.解压nginx
tar zxvf nginx-1.18.0.tar.gz
5.执行安装
./configure --prefix=/usr/local/nginx
6.安装https认证
./configure --with-http_ssl_module
最好加上这一步,避免后期又要去重装nginx
7.初始化
make&&make install
8.切换到nginx 目录
cd /usr/local/nginx/sbin
9.启动nginx
./nginx
10.查看启动状态(nginx默认是80端口)
lsof -i:80
11.常用 nginx 命令
nginx -s stop :快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。 nginx -s quit :平稳关闭Nginx,保存相关信息,有安排的结束web服务。 nginx -s reload :因改变了Nginx相关配置,需要重新加载配置而重载。 nginx -s reopen :重新打开日志文件。 nginx -c filename :为 Nginx 指定一个配置文件,来代替缺省的。 nginx -t :不运行,而仅仅测试配置文件。nginx将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的 文件。 nginx -v:显示 nginx 的版本。 nginx -V:显示 nginx 的版本,编译器版本和配置参数
七、nginx配置SSL证书
SSL证书可以将你的域名访问变成https请求。
1.获取证书,阿里云有提供免费的证书。
阿里云SSL免费证书
2.下载对应的证书文件,会给你这两个文件,你需要放到服务器的某个位置就行。
3.切换到nginx 的配置文件所在的目录
cd /usr/local/nginx/conf
4.找到 nginx.conf文件,打开这个文件,添加一个server块。
#以下属性中,以ssl开头的属性表示与证书配置有关。 server { listen 443 ssl; #配置HTTPS的默认访问端口为443。 #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。 #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。 server_name test.cn; ##这里写你购买的域名,不需要前缀www root html; index index.html index.htm; ssl_certificate ssl/5504096_test.cn.pem; ##这里是ssl证书的pem文件 ssl_certificate_key ssl/5504096_test.cn.key; ##这里是ssl证书的key文件 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #表示使用的加密套件的类型。 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。 ssl_prefer_server_ciphers on; location / { proxy_pass http://192.168.0.0:10010; ##这里写需要转发的项目地址,也就是你项目部署的服务器地址和你的项目端口 root html; #站点目录。 index index.html index.htm; } }
5.修改原来已经存在的server块,将请求80的转发到443端口,我这边就复制了一部分,只需要改两行就可以了。
server { listen 80; server_name test.cn; ## 你对应的域名 rewrite ^/(.*)$ https://test.cn:443/$1 permanent; ## 转发的协议
6.保存nginx的配置文件,然后重启nginx。
总结
大体上的服务部署流程就是这样,按照我上面的步骤一步一步下来部署就不会有问题,可能会有一些遗漏的,可以留言。
转自:https://blog.csdn.net/yiming_zhan/article/details/119085605