项目部署--最原始的方法

服务器环境搭建

        以腾讯云为例:

1.可以先用这个使用一个月的

2.访问服务器官网:腾讯云官网,进去先登录,再点击 控制台,找到 轻量应用服务器,进去之后会看见使用的服务器,有一个 公网IP(如下图),很重要,不要告诉别人。

3.点击重置密码(如下图),重置密码会强制关机,等一会儿就重启成功了。这里可以使用putty、Xshell、MobaXterm等等远程软件进行连接,我这里使用 Xshell(这些都可以去官网下载,免费、安装方便、不用配置环境、可以立即使用)

4.创建快照,方便后续点错或者其他原因回滚练习,名字可以随意取

5.远程工具连接服务器,成功连接后开始安装数据库。

6.安装 mysql 数据库,

yum install mysql
yum install mysql-server
yum install mysql-devel

安装mysql和mysql-devel都成功,但是安装mysql-server失败,解决方法:官网下载安装mysql-server

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server

(1)安装成功后启动mysql服务

systemctl start mysqld

(2)设置mysql服务开机自启动

systemctl enable mysqld

(3)数据库的相关命令

systemctl disable mysqld      //停止mysql服务开机自启动
systemctl status mysqld     //查看mysql服务当前状态
systemctl restart mysqld     //重启mysql服务
systemctl stop mysqld     //停止mysql服务

(4)初次安装mysql,root账户没有密码,让输入密码的时候直接回车就行

mysql -u root

(5)设置密码(这里密码随意,不要中文)

set password for 'root'@'localhost' =password('root用户密码');

7.防火墙开放 3306 端口,

firewall-cmd --zone=public --add-port=3306/tcp --permanent 
//如果显示 not running 表示已经关闭防火墙,开启就可以了
systemctl start firewalld.service //开启防火墙
继续执行开放3306端口的命令

 //开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#success
 //防火墙重新加载配置
firewall-cmd --reload
#success
 //查看开放的端口
firewall-cmd --list-ports
# 3306/tcp

防火墙相关命令

//查看防火墙状态
firewall-cmd --state
或者
systemctl status firewalld
//如果显示 not running 表示已经关闭防火墙。

systemctl start firewalld.service //开启防火墙
systemctl stop firewalld //关闭防火墙

//重启防火墙
firewall-cmd --relaod
或者
systemctl reload firewalld

systemctl enable firewalld //开机自启动防火墙
systemctl disable firewalld //禁止开机启动防火墙
firewall-cmd --permanent --zone=public --remove-port=8080/tcp #关闭8080端口

//打开端口后查看
firewall-cmd --zone=public --list-ports
 //查看所有打开的端口
 //显示端口已打开:
#8848/tcp 5000/tcp
 
//查看已开启的端口信息
netstat -tulnp | grep :5000  //查看5000端口信息(指定)
netstat -ntlp //查看全部端口信息

8.配置 mysql 默认编码为 UTF-8 ,修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置:

vim /etc/my.cnf
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

输入 vim /etc/my.cnf 进入到这里,按 a 进入编辑模式,把编码配置粘贴到[mysqld]的下面,光标放到[mysqld]下面,鼠标右键点击一下粘贴,会弹出粘贴预览,粘贴后也要检查有没有少字母或者多空格,添加完编码配置,然后按ESC键退出编辑模式,按键盘的shift键+:键,输入字母wq(一定要小写),保存退出(一定要在英文状态下),回车,回到了命令行界面

9.重启 mysql 

systemctl restart mysqld

10.云服务器放行 3306 端口,点击 防火墙-> 添加规则 ->输入3306->点击确定

11.idea 连接数据库

部署前端

进入 nginx 官网 ,点击 download ,下载稳定版,选择中间的,鼠标右键复制链接地址

做点准备工作

//查看当前所在目录
pwd
#/root

// 创建services目录,用来存放所有项目的依赖和安装包
mkdir services

//列出目前工作目录所含之文件及子目录
ls
#mysql-community-release-el7-5.noarch.rpm  services

//把之前的mysql的安装包移动到services目录中
mv mysql-community-release-el7-5.noarch.rpm /root/services

// 进入到services目录中
cd services
ls
#mysql-community-release-el7-5.noarch.rpm

把nginx安装包下载下来,并改名为nginx-1.20.2.tar.gz

curl -o nginx-1.20.2.tar.gz http://nginx.org/download/nginx-1.20.2.tar.gz
#  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
#                                 Dload  Upload   Total   Spent    Left  Speed
#100 1037k  100 1037k    0     0  48743      0  0:00:21  0:00:21 --:--:-- 46562
ls
# mysql-community-release-el7-5.noarch.rpm  nginx-1.20.2.tar.gz

解压nginx

tar -zxvf nginx-1.20.2.tar.gz
ls
# mysql-community-release-el7-5.noarch.rpm  nginx-1.20.2  nginx-1.20.2.tar.gz

进入到nginx目录中

nginx-1.20.2>> cd nginx-1.20.2
nginx-1.20.2>> ls
#auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src

安装相关依赖

nginx-1.20.2>> yum install pcre pcre-devel -y
nginx-1.20.2>> yum install openssl openssl-devel -y

设置系统配置参数

nginx-1.20.2>> ./configure --with-http_ssl_module --with-http_v2_module --with-stream

开始编译

nginx-1.20.2>> make

make报错
make: *** No rule to make target `build', needed by `default'.  Stop.

解决方案:

//安装下面配置
yum -y install make zlib-devel gcc-c++ libtool openssl openssl-devel
//重新configure
./configure 
//编译
make

安装

nginx-1.20.2>> make install

现在命令行输入 nginx 会报错,说找不到命令,需要配置环境变量

nginx-1.20.2>> vim /etc/profile 
// 按下shift+g将光标定位到最后一行,新增以下内容:
export PATH=$PATH:/usr/local/nginx/sbin	

//使文件生效
nginx-1.20.2>> source /etc/profile
nginx-1.20.2>> nginx
//没有报错,环境变量配置完毕
nginx-1.20.2>>

查看当前所有tcp端口/查看启动情况

nginx-1.20.2>> netstat -ntlp
Active Internet connections (only servers)
#Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
#tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8210/nginx: master
#tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1648/sshd      
#tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1120/master    
#tcp6       0      0 :::22                   :::*                    LISTEN      1648/sshd      
#tcp6       0      0 ::1:25                  :::*                    LISTEN      1120/master    
#tcp6       0      0 :::3306                 :::*                    LISTEN      10626/mysqld

复制nginx.conf配置文件.,并重命名为nginx.default.conf

nginx-1.20.2>> ls
#auto     CHANGES.ru  configure  html     Makefile  objs    src    
#CHANGES  conf        contrib    LICENSE  man       README
nginx-1.20.2>> cd /usr/local/nginx/conf
conf>> ls
#fastcgi.conf            koi-utf             nginx.conf           uwsgi_params
#fastcgi.conf.default    koi-win             nginx.conf.default   uwsgi_params.default
#fastcgi_params          mime.types          scgi_params          win-utf
#fastcgi_params.default  mime.types.default  scgi_params.default
conf>> cp nginx.conf nginx.default.conf
conf>> ls
#fastcgi.conf            koi-utf             nginx.conf          scgi_params.default
#fastcgi.conf.default    koi-win             nginx.conf.default  uwsgi_params
#fastcgi_params          mime.types          nginx.default.conf  uwsgi_params.default
#fastcgi_params.default  mime.types.default  scgi_params         win-utf
//查看nginx.conf整个文件内容
conf>> cat nginx.conf
//以下是nginx.conf文件的内容:
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

回到services目录中

conf>> cd /root/services
services>>

前端build一下,打包,上传(xftp)完毕之后,会在可视化目录显示,我们用命令查看也有

把dist改名为user-center-front,现在咱们所有的前端项目的代码已经上传到服务器上了

services>> mv dist user-center-front
services>> ls
#mysql-community-release-el7-5.noarch.rpm  nginx-1.20.2  nginx-1.20.2.tar.gz  user-center-front
services>> cd user-center-front
user-center-front>> ls
#165.1e462d15.chunk.css  p__404.515fbfb7.async.js
#165.e3d26100.async.js   p__404.572eeed8.chunk.css
#272.27714ff6.chunk.css  p__Admin.d79862a3.async.js
#272.be6c6be9.async.js   p__Admin.db241442.chunk.css
#326.873a9cc6.async.js   p__Admin__UserManage.615c6438.async.js
#719.2a859cd0.async.js   p__Admin__UserManage.f59630d6.chunk.css
#799.f321cbac.async.js   pro_icon.svg
#820.0a787cb0.chunk.css  p__TableList.7a82e2b4.async.js
#820.0de8dda5.async.js   p__TableList.e56ebd76.chunk.css
#835.da495036.async.js   p__user__Login.d468acb1.async.js
#868.2cfcdc0e.chunk.css  p__user__Login.e7c9dfd1.chunk.css
#868.a3575653.async.js   p__user__Register.219ee459.async.js
#907.e30beeda.async.js   p__user__Register.c91a7b9e.chunk.css
#918.cadf4497.async.js   p__Welcome.517e0d2d.chunk.css
#admin                   p__Welcome.d1cc9b1f.async.js
#asset-manifest.json     t__plugin-layout__Layout.7abfec92.async.js
#CNAME                   t__plugin-layout__Layout.e2d8f4b7.chunk.css
#favicon.ico             umi.aeb188ce.js
#icons                   umi.cd341d5b.css
#index.html              user
#list                    welcome
#logo.svg

修改配置文件,设置启动用户和前端项目所在路径

user-center-front>> cd /usr/local/nginx/conf
conf>> vim nginx.conf
修改文件内容为:
user  root;(修改的地方)
worker_processes  1;
....(省略)....
location / {
  root   /root/services/user-center-front;(修改的地方)
  index  index.html index.htm;
}
....(省略)....
然后按ESC键退出编辑模式,按 :wq  保存退出

更新配置

conf>> nginx -s reload

可以访问公网ip地址了,会出现nginx页面(访问前要在云服务器网站开放80端口,还要在防火墙
手动增加80端口)

conf>> firewall-cmd --zone=public --add-port=80/tcp --permanent
#success
//防火墙重新加载配置
conf>> firewall-cmd --reload
#success
//查看开放的端口
conf>> firewall-cmd --list-ports
#3306/tcp 80/tcp

然后用服务器的公网IP地址去网页地址栏访问一下,出现了登录页面。

后端部署

java 安装,创建 jdk 目录

mkdir /home/jdk17

下载jdk17并将其放到我们所建立的目录中

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz -P /home/jdk17/

解压文件

tar xf /home/jdk17/jdk-17_linux-x64_bin.tar.gz -C /home/jdk17/

查看安装的jdk具体的版本是什么

cd /home/jdk17/;ls

比如我的是jdk-17.0.7一定要记清楚这个版本号哦,下面修改环境变量的时候要使用的

修改环境变量

vim /etc/profile

注意javahome的路径是我们刚刚设置的那个文件夹

export JAVA_HOME=/home/jdk17/jdk-17.0.7
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH

刷新环境变量

source /etc/profile

测试是否安装成功

java -version

安装maven

conf>> cd /root/services/
services>> curl -o apache-maven-3.8.5-bin.tar.gz https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz
services>> ls
#apache-maven-3.8.5-bin.tar.gz             nginx-1.20.2         user-center-front
#mysql-community-release-el7-5.noarch.rpm  nginx-1.20.2.tar.gz
//解压
services>> tar -zxvf apache-maven-3.8.5-bin.tar.gz
services>> ls
#apache-maven-3.8.5             mysql-community-release-el7-5.noarch.rpm  nginx-1.20.2.tar.gz
#apache-maven-3.8.5-bin.tar.gz  nginx-1.20.2                              user-center-front

进入 maven

services>> cd apache-maven-3.8.5
apache-maven-3.8.5>> cd bin
bin>> ls
#m2.conf  mvn  mvn.cmd  mvnDebug  mvnDebug.cmd  mvnyjp
//这里的mvn是maven的可执行文件,咱们就是用这个文件去构建项目

//复制当前所在的目录路径
bin>> pwd
#/root/services/apache-maven-3.8.5/bin

添加环境变量

bin>> vim /etc/profile
// 按下shift+g将光标定位到最后一行,把刚刚复制的路径粘贴到nginx环境变量后面:
.....nginx/sbin:/root/services/apache-maven-3.8.5/bin
然后按ESC键退出编辑模式,按 :wq 保存退出

//使文件生效
bin>> source /etc/profile

看看环境变量是否配置成功

bin>> cd /root/services/
services>> mvn -v
#Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
#Maven home: /root/services/apache-maven-3.8.5
#Java version: 1.8.0_322, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre
#Default locale: en_US, platform encoding: UTF-8
#OS name: "linux", version: "3.10.0-1160.45.1.el7.x86_64", arch: "amd64", family: "unix"
//可以查看maven命令的帮助
services>> mvn --help

          

现在要把后端项目也放上去,用git拉去或直接把项目拖到services目录中    idea 使用 git
服务器下载git,就可以用git拉取了

services>> yum install -y git

进入到后端项目中

services>> cd user-center-backend
user-center-backend>> ls
#mvnw  mvnw.cmd  pom.xml  README.md  sql  src

用 mvn 编译一下

//打包构建,跳过测试
user-center-backend>> mvn package -DskipTests
//这个构建完之后就是之前后端打包的jar,可以直接用之前的jar
//拖到user-center-backend目录中去执行,因为maven默认会去国外下载依赖,很慢
//直接用我们之前打包好的也行
user-center-backend>> ls
#mvnw  mvnw.cmd  pom.xml  README.md  sql  src  user-center-backend-0.0.1-SNAPSHOT.jar

执行

user-center-backend>> java -jar ./user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

//执行后如果显示没有权限;给这个文件添加可执行权限
user-center-backend>> chmod a+x user-center-backend-0.0.1-SNAPSHOT.jar
//再ls就会发现user-center-backend-0.0.1-SNAPSHOT.jar变成绿色了
user-center-backend>> ls
//再次执行
user-center-backend>> java -jar ./user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

//当然这么用的话,这个窗口就不能做任何事了,被这个命令占满了,按ctrl+c中断它
//让它在后台运行
user-center-backend>> nohup java -jar ./user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &
//可以看见它正在运行
user-center-backend>> jobs
#[1]+  Running                 nohup java -jar ./user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &
//这里可以看到java在8080端口启动了
user-center-backend>> netstat -ntlp
#Active Internet connections (only servers)
#Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
#tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1393/sshd      
#tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1396/master    
#tcp6       0      0 :::3306                 :::*                    LISTEN      1441/mysqld    
#tcp6       0      0 :::8080                 :::*                    LISTEN      4367/java      
#tcp6       0      0 :::22                   :::*                    LISTEN      1393/sshd      
#tcp6       0      0 ::1:25                  :::*                    LISTEN      1396/master 
//用jps也可以看到运行的java程序
user-center-backend>> jps
#7298 Jps
#4367 user-center-backend-0.0.1-SNAPSHOT.jar

Ending: 

        OK,本篇文章就到此结束了,非常感谢你能看到这里,所以如果你觉得这篇文章对你有帮助的话,请点一个大大的赞,支持一下博主,若你觉得有什么问题或疑问,欢迎私信博主或在评论区指出~

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux上部署Spring Boot项目,可以使用Nginx作为代理服务器来实现。 首先,确保你已经在Linux服务器上安装了Java运行环境和Spring Boot项目的JAR文件。接下来,你需要确保Nginx已经安装并运行。你可以使用包管理工具,如apt-get或yum,在Linux上安装Nginx。 安装完成后,你需要在Nginx的配置文件中添加一个新的虚拟主机来处理Spring Boot应用程序的请求。打开Nginx的主配置文件,一般位于/etc/nginx/nginx.conf,并找到"server"块。 在该块中,添加以下配置代码: ``` server { listen 80; # 监听的端口 server_name example.com; # 你的域名 location / { proxy_pass http://localhost:8080; # 转发到Spring Boot应用程序的端口 proxy_set_header Host $host; } } ``` 将"example.com"替换为你的域名。这个配置将监听80端口,并将所有的请求转发到本地的Spring Boot应用程序的8080端口。proxy_set_header配置将Host头信息设置为请求的原始主机,这样Spring Boot应用程序可以正确识别来自Nginx的请求。 保存并关闭配置文件后,重新启动Nginx服务以使更改生效: ``` sudo service nginx restart ``` 现在,当用户访问你的域名时,Nginx将会将请求转发给Spring Boot应用程序。你可以使用日志记录来确保一切正常。你还可以通过配置SSL证书来启用HTTPS,以增强安全性。 这是部署Spring Boot项目的一个简单方法。你可以根据自己的需求进行更复杂的配置,例如负载均衡或缓存设置。希望对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值