Centos 服务器部署JavaWeb项目(Springboot+Vue+MySQL+Nginx+https)

一、Centos 服务器安装JDK并配置环境变量

1、在本地电脑下载jdk-11.0.2,并解压。

2、在Centos 服务器新建/home/web/目录。

3、使用FileZilla工具将本地电脑解压的jdk-11.0.2目录上传到Centos 服务器的/home/web/目录下。

4、在Centos 服务器配置jdk-11.0.2环境变量,输入:

vi /etc/profile

在profile文件末尾加入:

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

然后执行更新:source /etc/profile

二、Centos 服务器安装MySQL

执行下面命令自动安装:

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

提示的地方,全部输入y

成功安装之后重启mysql服务

service mysqld restart

初次安装mysql是root账户是没有密码的

设置密码的方法

mysql -uroot
mysql>use mysql;

mysql> UPDATE user SET Password = PASSWORD('123456') WHERE user = 'root';

mysql> flush privileges;

mysql> exit;

重新登陆

mysql -u root -p

查看MYSQL的编码:

show variables like 'character%';

修改编码为UTF-8:

mysql> exit;
# mysql配置文件位置:/etc/my.cnf
vi /etc/my.cnf 

修改为这样:

[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8
 
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

重启MySQL服务

systemctl restart mysql.service

设置MySQL开机启动

systemctl enable mysqld
systemctl daemon-reload

重新登陆

mysql -u root -p

查看MYSQL的编码:

show variables like 'character%';

创建数据库:

CREATE DATABASE ergou;

查看ergou数据库的编码:

show create database ergou;

查看数据表的编码:

show create table <表名>;

MySQL常用命令:

设置MySQL开机启动

systemctl enable mysqld
systemctl daemon-reload

查看MySQL的启动状态

systemctl status mysqld

启动MySQL服务

systemctl start mysqld

关闭mysql

service mysqld stop

Centos 服务器安装docker并配置nginx

拉取镜像:

docker pull nginx

在Centos 服务器的/home/web/目录下新建一个nginx文件夹

cd /home/web/nginx  # 进入nginx文件夹

# 运行容器
docker run --restart=always -p 443:443 -p 80:80 --name mynginx -v $PWD/html:/usr/share/nginx/html -v  $PWD/conf:/etc/nginx/conf.d  -v  $PWD/logs:/var/log/nginx -v  $PWD/ssl:/ssl/ -d nginx

# 查看容器是否正常运行
docker ps

# 如果容器未正常运行,先查看容器id,再查看log日志
docker ps -a  #查看容器的id
docker logs 容器ID  #查看错误日志

运行容器成功后,会在/home/web/nginx目录下,自动生成html,conf,logs,ssl目录

html目录:存放网页文件

conf目录:存放配置文件

logs目录:存放日志文件,自动生成。

ssl目录:存放https证书和秘钥(该https证书和秘钥为域名下的nginx证书文件)

在本地电脑新建一个https配置文件,然后上传到Centos 服务器的/home/web/nginx/conf目录下

https配置文件如下(随便给配置文件取个名):

server {
    listen 443 ssl;
    server_name baidu.com;
    # ssl on;
    root /usr/share/nginx/html;
    index index.html index.htm;
    ssl_certificate  /ssl/1832862_www.baidu.com.pem;
    ssl_certificate_key /ssl/1832862_www.baidu.com.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;
    ssl_prefer_server_ciphers on;
    location / {
        index index.html index.htm;
		try_files $uri $uri/ /index.html last;
    }
    location /api {
        proxy_pass https://baidu.com:8088;
    }
}
server {
    listen 80;
    server_name baidu.com;
    rewrite ^(.*)$ https://$host$1 permanent;
}

接着将生成的vue项目,上传到Centos 服务器的/home/web/nginx/html目录下

然后重启nginx容器

docker ps # 查看运行中的容器的id
docker restart 容器id  #重启nginx容器

到此,浏览器输入baidu.com,即可访问页面了,https的。

打包springboot项目为jar包,并上传到服务器

1、下载baidu.com域名下的tomcat证书文件

2、在springboot项目的application.properties文件下添加:

server.ssl.key-store= 1832862_www.baidu.com.pfx
server.ssl.key-store-password= RTdeFLk3

完整的application.properties文件如下:

server.port=8088
server.ssl.key-store= 1832862_www.baidu.com.pfx
server.ssl.key-store-password= RTdeFLk3
spring.profiles.active=dev
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/ergou?characterEncoding=UTF-8&serverTimezone=GMT
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
logging.level.org.springframework.web= INFO
# logging.level.org.springframework.web= DEBUG

3、在springboot项目的根目录下添加1832862_www.baidu.com.pfx文件。

4、在idea的右侧工具栏maven那,展开Lifecycle,先点击clean,再点击package,进行打包,打包成功后会在项目根目录生成一个target目录,打开target目录,将里面的ergou-0.0.1-SNAPSHOT.jar文件上传到服务器的/home/web/ergou目录下(如果没有该目录,新建一个)

5、接着将1832862_www.baidu.com.pfx文件也上传到服务器的/home/web/ergou目录下。

6、在本地电脑新建三个文件并上传到服务器的/home/web/ergou目录下,三个文件分别如下:

通过创建stop.sh , start.sh ,run.sh这三个脚本文件来实现后台长久运行springboot

run.sh

#!/usr/bin/env bash
echo stop application
source stop.sh
echo start application
source start.sh

start.sh

#!/usr/bin/env bash
nohup java -jar ergou-0.0.1-SNAPSHOT.jar --server.port=8088 &

注意jar的文件名要一致,运行端口也要一致。

stop.sh

#!/usr/bin/env bash
PID=$(ps -ef | grep ergou-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo Application is already stopped
else
    echo kill $PID
    kill $PID
fi

注意jar的文件名要一致

7、在服务器进入/home/web/ergou目录,执行:

./run.sh

如果没执行权限,分别为run.sh,start.sh,stop.sh赋予执行权限:

chmod u+x run.sh
chmod u+x start.sh
chmod u+x stop.sh

u代表所有者,x代表执行权限。 + 表示增加权限。

接着,再执行./run.sh

打包vue项目

主要是vue.config.js文件配置,重点是路径问题

module.exports = {
    //基本路径
    publicPath: '/',
    // 输出文件目录
    outputDir: 'dist',
    // webpack-dev-server 相关配置
    devServer: {
        // host: 'localhost',
        // port: 8081,
        disableHostCheck: true,
        proxy: { // 设置代理
            '/api': {
                target: 'http://127.0.0.1:8088',
                changeOrigin: true,
                pathRewrite: {
                    '^/api': '/api'
                }
            }
        },
    }
};

在项目根目录,输入:npm run build 进行打包(打包前,如果dist目录存在,先删除该目录)。打包后在根目录生成一个dist目录,将里面的文件全部上传到服务器的/home/web/nginx/html目录下。

你可能感兴趣的:(Centos)