SpringBoot项目部署到服务器

SpringBoot项目部署到服务器

1.购买服务器

由于我是自己玩,所以我领了一个月的使用华为云。如果你们也想领取的话可以去华为云官网抢(每天9点开始发放)

这是我领取的华为云服务器,镜像的话建议大家选择CentOS,版本任意即可。

2.终端工具连接服务器

由于重置过系统,所以当你用ssh命令去连接服务器的时候产生一个warning。所以我们要用另外一条指令。

当然如果你是刚购买的,是不需要用下面的命令去获取认证的。

#使用ssh登录服务器
➜  ~ ssh root@124.70.212.164
# ssh-keygen -R 你的服务器地址(公网地址),来帮你获取认证
➜  ~ ssh-keygen -R 124.70.212.164
➜  ~ ssh root@124.70.212.164
[root@hecs-x-medium-2-linux-20200722093047 ~]#

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gB0eOg2r-1596952980417)(/Users/macro/Library/Application Support/typora-user-images/image-20200808155412572.png)]

3.YUM安装JAVA环境

当然新购买的服务器是没有安装JDK的,所以我们就直接跳过检测安装java环境

#	使用yum安装安装jdk1.8.0的所有文件
[root@hecs-x-medium-2-linux-20200722093047 ~]# yum install -y java-1.8.0-openjdk*
#	查看安装的java是否成功,并且安装的java版本,如果跟我一样有下面的提示那么就安装成功了
[root@hecs-x-medium-2-linux-20200722093047 ~]# java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

4.YUM安装MYSQL

系统: CentOS 7(在CentOS 7中默认有安装MariaDB,这个是mysql的分支,一般来说还是使用自己安装的MySQL比较好)

4.1 下载并安装MySQL

#	wget下载MySQL的rpm包
wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
#	安装MySQL的rpm
yum -y install mysql80-community-release-el7-3.noarch.rpm
#	安装MySQL的server
yum -y install mysql-community-server

4.2 启动MySQL

#	启动MySQL服务
systemctl start  mysqld.service
# 查看MySQL服务
systemctl status  mysqld.service

img

4.3 查看登陆MYSQL的root密码

grep "password" /var/log/mysqld.log

img

4.4 登陆MySQL

mysql -uroot -p

img

此时,你需要给你的MySql重新设置密码,因为MySQL默认的就是必须修改密码后才能操作数据库。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Left@zuo123.';

设置密码的时候需要遵守MySQL密码设置规范,如果不符合规范是不能修改成功的。

如下图,我将密码设置为123456,它提示我 密码不符合规范

img

总之呢,我们先将密码设置成比较复杂的就好,比如 Abc@123…,先登录了再说。

如果想要设置简单好记的密码,可以修改密码设置规范,毕竟你不登录你就不能修改规范。

查看密码规范

SHOW VARIABLES LIKE 'validate_password%';

img

密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:
validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
这时候我们将密码设置规范修改一下:
set global validate_password.policy=0;
set global validate_password.length=1;

img

最后一步,设置允许远程连接。

如果直接使用命令:GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY 'password**’;** 会提示一个语法错误,有人说是mysql8的分配权限不能带密码隐士创建账号了,要先创建账号再设置权限。也有的说8.0.11之后移除了grant 添加用户的功能。

创建新用户 admin

创建用户:CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
允许远程连接:GRANT ALL ON *.* TO 'admin'@'%';
本人测试过,使用 update user set host = '%'  where user = 'root'; 也可以修改

img

如果使用客户端连接提示了plugin caching_sha2_password错误,这是因为MySQL8.0的密码策略默认为caching_sha2_password

使用命令修改策略

ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 

箭头指的两个用户是我修改过的

然后关闭防火墙,测试连接成功!!

img

5. YUM安装Nginx

5.1 安装依赖

#gcc安装,nginx源码编译需要
yum install gcc-c++

#PCRE pcre-devel 安装,nginx 的 http 模块使用 pcre 来解析正则表达式
yum install -y pcre pcre-devel

#zlib安装,nginx 使用zlib对http包的内容进行gzip
yum install -y zlib zlib-devel

#OpenSSL 安装,强大的安全套接字层密码库,nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http)
yum install -y openssl openssl-devel

5.2 下载Nginx

#下载版本号可根据目前官网最新稳定版自行调整
wget -c https://nginx.org/download/nginx-1.16.1.tar.gz

5.3 安装Nginx

#根目录使用ls命令可以看到下载的nginx压缩包,然后解压
tar -zxvf nginx-1.16.1.tar.gz

#解压后进入目录
cd nginx-1.16.1

#使用默认配置
./configure

#编译安装
make
make install

#查找安装路径,默认都是这个路径
[root@VM_0_12_centos ~]# whereis nginx
nginx: /usr/local/nginx

#启动、停止nginx
cd /usr/local/nginx/sbin/
./nginx     #启动
./nginx -s stop  #停止,直接查找nginx进程id再使用kill命令强制杀掉进程
./nginx -s quit  #退出停止,等待nginx进程处理完任务再进行停止
./nginx -s reload  #重新加载配置文件,修改nginx.conf后使用该命令,新配置即可生效

#重启nginx,建议先停止,再启动
./nginx -s stop
./nginx

#查看nginx进程,如下返回,即为成功
[root@VM_0_12_centos ~]# ps aux|grep nginx
root      5984  0.0  0.0 112708   976 pts/1    R+   14:41   0:00 grep --color=auto nginx
root     18198  0.0  0.0  20552   612 ?        Ss   11:28   0:00 nginx: master process ./nginx
nobody   18199  0.0  0.0  23088  1632 ?        S    11:28   0:00 nginx: worker process

img

直接访问服务器的IP,如果出现如上画面说明成功

5.4 查看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;
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    server {
    	  #监听80端口
        listen       80;
        #域名配置
        server_name  localhost;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

5.5 修改nginx.conf文件,配置多级域名

server {
    listen          80;
    server_name     www.jhappylife.cn;

    location / {
        root    http://127.0.0.1:9002;
        index   index.html index.htm;
    }
}


server {
    listen          80;
    server_name     blog.jhappylife.cn;

    location / {
        root   /root/webapp/blog;
        index  index.html index.htm;
    }
}

server {
    listen          80;
    server_name     blogadmin.jhappylife.cn;

    location / {
        root    /root/webapp/blogadmin;
        index   index.html index.htm;
    }
}

5.6Nginx配置Vue项目

server {
        listen       80;#默认端口是80,如果端口没被占用可以不用修改
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        root        E:/vue/my_project/dist;#vue项目的打包后的dist

        location / {
            try_files $uri $uri/ @router;#需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404
            index  index.html index.htm;
        }
        #对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
        #因此需要rewrite到index.html中,然后交给路由在处理请求资源
        location @router {
            rewrite ^.*$ /index.html last;
        }
  }
  

5.7配置https

#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;

    #keepalive_timeout  0;
    keepalive_timeout  65;


    server {
        listen       80;
	listen 443 ssl;
        server_name  www.51kk.live;
	#ssl on;
	ssl_certificate /etc/letsencrypt/live/www.51kk.live/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/www.51kk.live/privkey.pem;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
	location / {
            proxy_pass http://127.0.0.1:9002;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

    server{
	listen	     80;
	listen 443 ssl;
	server_name  admin.51kk.live;
	#ssl on;
        ssl_certificate /etc/letsencrypt/live/admin.51kk.live/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/admin.51kk.live/privkey.pem;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
	root        /home/apps/vuecliprj/dist;
        location / {
            try_files $uri $uri/ @router;
            index  index.html index.htm;

        }
       location @router{
            rewrite ^.*$/index.html last;
        }
       location /admin/{
	    rewrite ^/admin/(.*) /$1 break;
	     proxy_pass http://127.0.0.1:9002;
	}
    }
    server{
	listen		80;
	listen 443 ssl;
	server_name	images.51kk.live;
	#ssl on;
        ssl_certificate /etc/letsencrypt/live/images.51kk.live/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/images.51kk.live/privkey.pem;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
	location /{
	    root /home/projects/wohuo/;
	    autoindex on;
	}
 	}
    server{
	listen 80;
    	server_name *.51kk.live;
    	rewrite ^(.*)$  https://$host$1 permanent;
    }
}

5.重启Nginx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值