Linux部署前后端项目(部署jar包,前端打包的dis文件夹)

一、前提条件

部署之前确保已经安装好所需环境

1.1,部署jar包

jar包部署必须要jdk环境的,不用考虑,

1.2部署前端项目

部署前端项目需要nginx来转发

1.3环境安装教程

Linux部署环境Jdk篇(安装Jdk17)
Linux部署环境Redis篇(redis-5.0.5安装)
Linux部署环境MySQL篇(mysql-5.7安装)
Linux部署环境Nginx篇(安装Nginx1.24.0)

二、防火墙相关命令

部署之前先了解一下防火墙的一些基本命令,后面会用到,如果了解或者防火墙墙是关闭的直接跳过。

1.查看防火墙状态

systemctl status firewalld

2.如果不是显示active状态,需要打开防火墙

systemctl start firewalld

3.查看所有已开放的临时端口(默认为空)

firewall-cmd --list-ports

4.查看所有永久开放的端口(默认为空)

firewall-cmd --list-ports --permanent

5.添加临时开放端口(例如:比如我修改ssh远程连接端口是223,则需要开放这个端口)

firewall-cmd --add-port=223/tcp

6.添加永久开放的端口(例如:223端口)

firewall-cmd --add-port=223/tcp --permanent

7.关闭临时端口

firewall-cmd --remove-port=80/tcp

8.关闭永久端口

firewall-cmd --remove-port=8080/tcp --permanent

9.配置结束后需要输入重载命令并重启防火墙以生效配置

firewall-cmd --reload

systemctl restart firewalld

10.开端口加重启

firewall-cmd --add-port=8848/tcp --permanent
systemctl restart firewalld.service

三、Java部署jar包并后台运行

1.windows部署

执行jar包的命令和在windows操作系统上是一样

java -jar jarName-0.0.1-SNAPSHOT.jar;

2.Linux部署

2.1、将jar程序设置成后台运行,并且将标准输出的日志重定向至文件msg.log

[!NOTE]

注: nohup命令的作用就是让程序不挂断运行(推荐)

nohup java -jar jarName-0.0.1-SNAPSHOT.jar >msg.log 2>&1 &;

2.2、平时直接使用

nohup java -jar jarName-0.0.1-SNAPSHOT.jar &;

nohup和&的区别
&:指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出
nohup:不挂断的运行,并没有后台运行的意思,用nohup运行命令可以使命令永久的执行下去
这样我们断开SSH连接时不会影响他的运行,注意!注意!nohup没有后台运行的意思;&才是后台运行。

3.停止或重新部署

3.1使用命令找到进程

ps -ef|grep java

3.2使用命令杀死进程(9836是进程号)

kill -9 9836

3.3重新执行一下nohup命令即可

四、Nginx部署项目

1.Linux部署

1.1.上传前端文件

[!NOTE]

可以在html目录下创建一个专门放置项目的文件夹,如project,之后再为不同的项目创建不同的文件夹

将项目文件上传到nginx的html目录下

1.2.写配置文件

[!NOTE]

在nginx目录下创建项目配置文件夹,之后的项目配置文件就放到这个目录,如project_conf

在配置文件目录新建一个文件,后缀必须是为conf,写入配置文件,示例如下
注:没有ssl证书直接使用1.2.3的示例

1.2.1上线项目配置示例
server {
	listen 80;
	server_name XXXXXXXXX.cn;
	rewrite ^(.*)$ https://${server_name}$1 permanent;
}
server {
	#		listen 80;
	listen 443 ssl;
	server_name XXXXXXXXXXXXXXXXXXXXX.cn;
	#ssl on;
	ssl_certificate XXXXXXXXXXXXXXXXXXXXXXX; #证书公钥
	ssl_certificate_key XXXXXXXXXXXXXXXXXXXXXXXXXX; #证书私钥
	ssl_session_timeout 5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!3DES:!aNULL:!MD5:!ADH:!RC4;
	ssl_protocols TLSv1.2;
	ssl_prefer_server_ciphers on;
	#charset koi8-r;

	location /uploadfiles {

		proxy_pass http://127.0.0.1:8003/;
		proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		client_max_body_size 1000m;
		client_body_buffer_size 128k;
		proxy_connect_timeout 20;
		proxy_send_timeout 30;
		proxy_read_timeout 30;
		proxy_buffer_size 4k;
		proxy_buffers 4 32k;
		proxy_busy_buffers_size 64k;
		proxy_temp_file_write_size 64k;

	}


	location / {
		root /usr/local/project/forest-patrol-backend/dist;
		index index.shtml index.html index.htm;
		#此处的 proxy_pass与upstream 对应

	}

	location ^~/api/ {
		proxy_pass http://localhost:8002/;
		proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		client_max_body_size 10m;
		client_body_buffer_size 128k;
		proxy_connect_timeout 20;
		proxy_send_timeout 30;
		proxy_read_timeout 30;
		proxy_buffer_size 4k;
		proxy_buffers 4 32k;
		proxy_busy_buffers_size 64k;
		proxy_temp_file_write_size 64k;
	}

	#error_page  404              /404.html;

	# redirect server error pages to the static page /50x.html
	#
	error_page 500 502 503 504 /50x.html;
	location = /50x.html {
		root html;
	}

}
1.2.2 nginx项目配置文件示例
# another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
1.2.3自定义配置示例
#总系统
server {
	listen       910;
	server_name  192.168.10.177;

	location / {
		root   D:/BG/nginx-1.24.0/html/object/ruoyi_vue_plus/dist;
		index  index.html index.htm;
	}
	
	location ^~/prod-api/ {
			proxy_pass http://192.168.10.177:8080/;
			proxy_redirect off;
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			client_max_body_size 10m;
			client_body_buffer_size 128k;
			proxy_connect_timeout 20;
			proxy_send_timeout 30;
			proxy_read_timeout 30;
			proxy_buffer_size 4k;
			proxy_buffers 4 32k;
			proxy_busy_buffers_size 64k;
			proxy_temp_file_write_size 64k;
	}
	

	
	error_page   500 502 503 504  /50x.html;
	location = /50x.html {
		root   html;
	}
	
}

1.3.重新加载配置文件

1)先进入nginx启动文件目录

cd /usr/local/nginx/sbin

2)执行重载

./nginx -s reload

2.Linux停止前端项目

2.1.移动配置文件

将对应项目的配置文件移动到其他文件夹

重新加载配置文件

1)先进入nginx启动文件目录

cd /usr/local/nginx/sbin

2)执行重载

./nginx -s reload

五、报错

1.报错Handler dispatch failed: java.lang.InternalError: java.lang.reflect.Invocati

1.1原因

本地不存在问题,确定为Linux 服务器问题
Centos 服务器中图形验证码依赖系统组件,需要安装系统组件

1.2解决方法

1. kill 掉 jar 进程
2. yum install fontconfig
3. 安装完成后cd /usr/share/fonts
4. 执行fc-cache
5.重启 jar
  • 15
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值